Патент на изобретение №2352001

Published by on




РОССИЙСКАЯ ФЕДЕРАЦИЯ



ФЕДЕРАЛЬНАЯ СЛУЖБА
ПО ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ,
ПАТЕНТАМ И ТОВАРНЫМ ЗНАКАМ
(19) RU (11) 2352001 (13) C2
(51) МПК

G11C11/401 (2006.01)
G06F12/00 (2006.01)

(12) ОПИСАНИЕ ИЗОБРЕТЕНИЯ К ПАТЕНТУ

Статус: по данным на 08.09.2010 – действует

(21), (22) Заявка: 2005106847/09, 11.09.2003

(24) Дата начала отсчета срока действия патента:

11.09.2003

(30) Конвенционный приоритет:

13.09.2002 US 10/243,104

(43) Дата публикации заявки: 27.03.2006

(46) Опубликовано: 10.04.2009

(56) Список документов, цитированных в отчете о
поиске:
US 5851149 А, 22.12.1998. RU 94029732 А1, 20.06.1996. GB 2308471 А, 25.06.1997. JP 58213281 А, 12.12.1983. US 5551020 А, 27.08.1996. ЕР 1046996 А, 25.10.2000. US 6065148 А, 16.05.2000. US 5344144 А, 06.09.1994.

(85) Дата перевода заявки PCT на национальную фазу:

11.03.2005

(86) Заявка PCT:

US 03/28748 20030911

(87) Публикация PCT:

WO 2004/025655 20040325

Адрес для переписки:

125040, Москва, пр-т Ленинградский, 23, патентно-лицензионная фирма “Транстехнология”, пат.пов. Н.И.Золотых, рег. 484

(72) Автор(ы):

НЕЛЬСОН Дуайн Р. (US)

(73) Патентообладатель(и):

АйДжиТи (US)

(54) ДИНАМИЧЕСКАЯ ЭНЕРГОНЕЗАВИСИМАЯ ПАМЯТЬ С ПРОИЗВОЛЬНЫМ ДОСТУПОМ

(57) Реферат:

Изобретение относится к способу и устройству для динамического хранения критических данных игровой машины путем распределения и освобождения области памяти в игровой машине. Техническим результатом является сохранение критических данных даже в случае сбоя в игровой машине, например прерывания подачи питания. В одном или более примерах осуществления описывается загрузка или удаление новой игры из игровой машины, при которых все существующие критические данные в памяти NV-RAM остаются неповрежденными. В одном примере осуществления изобретения раскрываются способ и устройство для динамического распределения и освобождения области памяти, позволяющего обеспечить как постоянное, так и временное хранение данных в NV-RAM. Предлагаются способ и устройство для осуществления мониторинга доступной области памяти и динамического изменения размера памяти в NV-RAM. В одном примере осуществления раскрывается способ выполнения контроля целостности NV-RAM и определения появления ошибки в критических данных. В одном или более примерах осуществления описываются способы уплотнения и перемещения содержимого NV-RAM, позволяющие объединить доступную область памяти или предотвратить несанкционированный доступ к памяти NV-RAM. 3 н. и 12 з.п. ф-лы, 12 ил.

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

Настоящее изобретение относится к управлению памятью и, в частности, к способу и устройству для динамического хранения критических данных путем распределения и освобождения области памяти в игровой машине.

ПРЕДПОСЫЛКИ К СОЗДАНИЮ ИЗОБРЕТЕНИЯ

Достижения в технологии позволили создать игровые машины с возможностью предоставления игроку ряда различных игр. Как удобство для игрока и как способ продления времени его/ее игры многоигровые машины могут приносить казино существенную выгоду. Одна игровая машина с возможностью предоставления ряда различных игр позволяет существенно сократить затраты владельца казино. Помимо снижения добавочных затрат для владельца казино такая машина будет способна создавать у игрока более богатые впечатления.

Для изменения игр, хранимых в игровой машине, должна быть загружена новая игра. Это часто требует удаления существующей игры с игровой машины. При выполнении операции удаления содержимое энергонезависимой памяти с произвольным доступом (NV-RAM) должно быть подвергнуто модифицированию. В системах прототипа модифицирование требует, чтобы существующая память NV-RAM была подвергнута очистке и замене на вновь компилированную карту памяти, отражающую добавление или удаление конкретной игры (игр).

Процесс перекомпиляции или переинициализации содержимого NV-RAM ведет к нежелательному удалению всей информации, относящейся к критическим данным игровой машины. Такие критические данные могут содержать информацию об истории игр, бухгалтерскую информацию, информацию о безопасности, информацию о трекинге игрока или информацию любого другого типа о состоянии за длительный период времени.

Информация об истории игр может обеспечивать запись результатов в течение ряда раундов игры для игры на игровой машине. Например, информация об истории игр может быть использована для проверки выплат игровой машины, чтобы обеспечить возможность выполнения проверки выигрышного джекпота перед выплатой в случае распознавания подозрительных действий. История игр может быть также использована, например, для аудита типов джекпотов, генерируемых по определенному числу раундов игры или обеспечения свидетельства взлома игровой машины. Следовательно, информация этого типа является критической для владельца казино или игровой машины.

Информация, обеспечивающая текущий подсчет или историю кредитов, вносимых в игровую машину и выдаваемых игровой машиной, может являться источником ценной бухгалтерской информации. Например, совокупное число кредитов игровой машины может быть основано на собранных банкнотах или монетах, сумме кредитов, генерированных с вставленной кредитной карточки, или бонусных кредитах, созданных путем ввода ПИН (персонального идентификационного номера). Данные этого типа являются чрезвычайно важными для владельца казино, потому что обеспечивают получение дохода, который игровая машина генерирует в течение периода времени.

Информации о безопасности может обеспечивать информацию, связанную с событием взлома в игровой машине. Среди элементов этой информации могут быть время дня, тип игры, сумма ставок, определенный результат и любая рабочая информация типа диагностической, связанной с состоянием игровой машины при взломе.

Информации по трекингу игрока также крайне необходима для обеспечения полезной обратной связи, касающейся предпочтений игрока. Казино может отслеживать информацию об игроке, чтобы обеспечить наилучшую и наиболее благоприятную игровую среду для игрока. Тип игры, название игры, длительность игры, сумма розыгрыша или т.п. – эти факторы обеспечивают владельца казино неоценимой информацией о том, каким образом ему/ей лучше завлекать игрока и поддерживать его интерес к игре.

Следовательно, надежная поддержка различных предварительно описанных критических данных в процессе добавления или удаления игры с игровой машины и во все остальные периоды времени имеет важное значение. Стирание критических данных из NV-RAM приводит к многочисленным отрицательным последствиям.

Что касается упомянутого выше процесса из известного уровня техники, то добавление или удаление игры из игровой машины требует полной перекомпиляции памяти NV-RAM и создания новой фиксированной карты. Эта процедура является трудоемкой, потому что может потребовать осторожного удаления и замены существующей NV-RAM в игровой машине. Предполагается, что NV-RAM может быть перепрограммирована без удаления из игровой машины; однако этот процесс может вызывать непроизводительные потери времени и беспокойство клиента и приводить к потере дохода казино. Для выполнения этой работы на каждой игровой машине требуются дополнительное время и рабочая сила. В результате добавочные затраты на машину могут быть существенными.

В системах-прототипах используется принцип фиксированной карты памяти, который не допускает динамического использования области памяти NV-RAM. Следовательно, фиксированная карта памяти резервирует память, которая часто не используется и не нужна для игры, во время составления карты. Если бы эта область памяти не была резервирована, то ее можно было бы использовать для хранения критических данных, ассоциированных с другой игрой или созданных в результате добавления нового игрового программного обеспечения. Эта процедура распределения памяти является препятствием на пути обеспечения эффективных и целесообразных изменений в играх на игровой машине.

Следовательно, специалистам в данной области техники требуется создание способа и устройства для управления памятью игровой машины, которые позволят преодолеть недостатки прототипа.

КРАТКОЕ ИЗЛОЖЕНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ

В одном примере осуществления изобретение содержит способ и устройство для загрузки игры в игровую машину без изменения или удаления критических данных, не связанных с добавляемой игрой. Описываемый способ позволяет динамически проверять и распределять достаточную область памяти для загрузки информации о критических данных в энергонезависимую память с произвольным доступом (NV-RAM). В одном примере осуществления после записи данных в NV-RAM содержимое NV-RAM подвергается проверке.

В одном примере осуществления изобретение содержит способ и устройство для удаления игры из игровой машины без изменения или удаления критических данных, не связанных с удаляемой игрой. После удаления критические данных, связанных с удаляемой игрой, происходит динамическое изменение размера NV-RAM, обеспечивающее увеличение размера доступной памяти. В одном примере осуществления после записи данных в NV-RAM содержимое NV-RAM подвергается проверке.

В одном примере осуществления предлагаются способ и устройство для динамического распределения и освобождения области памяти, позволяющие обеспечить хранение в NV-RAM как временных, так и постоянных данных. После выполнения распределения или освобождения размер доступной памяти изменяется. Временная область памяти используется только на время рабочей транзакции, требуемой игровой машиной, что увеличивает использование области памяти, обеспечиваемой NV-RAM, до максимума. Предлагается пример осуществления мониторинга размера доступной памяти в NV-RAM и динамического изменения размера распределенных областей памяти, позволяющий удовлетворить требованиям любой критической игровой транзакции для игровой машины.

В одном примере осуществления предлагаются способ и устройство для идентификации и замены ошибочных данных, хранимых в NV-RAM, на скорректированные данные, без изменения или удаления критических данных, не связанных с ошибочными данными.

Дополнительные цели, признаки и преимущества настоящего изобретения над прототипом очевидны из следующего ниже подробного описания чертежей с прилагаемыми фигурами.

ОПИСАНИЕ ЧЕРТЕЖЕЙ

Фиг.1 иллюстрирует блок-схему типичного примера осуществления энергонезависимой памяти с произвольным доступом.

Фиг.2А иллюстрирует блок-схему последовательности этапов в типичном способе загрузки игры в игровую машину.

Фиг.2В иллюстрирует блок-схему последовательности этапов в типичном способе проверки содержимого энергонезависимой памяти с произвольным доступом после загрузки игры в игровую машину.

Фиг.3 иллюстрирует рабочую блок-схему последовательности этапов в типичном способе управления памятью во время удаления игры из игровой машины.

Фиг.4А иллюстрирует рабочую блок-схему последовательности этапов в типичном способе распределения и освобождения области памяти во время критической игровой транзакции.

Фиг.4В иллюстрирует рабочую блок-схему последовательности этапов в типичном способе мониторинга и динамического изменения размера области доступной памяти внутри энергонезависимой памяти с произвольным доступом.

Фиг.5 иллюстрирует рабочую блок-схему последовательности этапов в типичном способе выполнения контроля целостности данных в энергонезависимой памяти с произвольным доступом.

Фиг.6А иллюстрирует рабочую блок-схему последовательности этапов в типичном способе уплотнения или реорганизации области памяти в энергонезависимой памяти с произвольным доступом.

Фиг.6В иллюстрирует рабочую блок-схему последовательности этапов в альтернативном типичном способе уплотнения или реорганизации области памяти в энергонезависимой памяти с произвольным доступом.

Фиг.6С иллюстрирует рабочую блок-схему последовательности этапов в альтернативном типичном способе уплотнения или реорганизации области памяти в энергонезависимой памяти с произвольным доступом.

Фиг.7 иллюстрирует рабочую блок-схему последовательности этапов в типичном способе переупорядочивания данных в памяти.

Фиг.8 иллюстрирует рабочую блок-схему последовательности этапов в типичном способе шифрования данных до записи данных в память.

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ

В изобретении предлагаются способ и устройство для динамической загрузки или удаления игры (игр), хранимой в игровой машине, без изменения или удаления “критических данных”, не связанных с добавляемой или удаляемой игрой (играми). Термин «критические данные» может быть определен как данные, которые регистрируют прошлые и настоящие состояния игровой машины. Примеры таких состояний включают в себя историю игры, бухгалтерский учет, информацию о безопасности или т.п. Критические данные этого типа могут храниться в энергонезависимой памяти или энергонезависимом запоминающем устройстве игровой машины постоянно или временно. В одном примере осуществления при загрузке или удалении игры (игр) в игровой машине критические данные добавляются или удаляются путем распределения или освобождения области памяти в энергонезависимой памяти с произвольным доступом (NV-RAM) игровой машины.

Один пример осуществления изобретения относится к способу загрузки игры в игровую машине без изменения или удаления критических данных, не относящихся к добавляемой игре. Ряд примеров осуществления изобретения касается способов максимального использования свободной области памяти в NV-RAM в ходе работы и технического обслуживания игровой машины. Ряд примеров осуществления изобретения относится к способам эффективного использования области памяти в NV-RAM при загрузке или удалении игры из игровой машины. Один пример осуществления изобретения относится к способу динамического определения размера области памяти NV-RAM на основе технических требований к игровой машине. Один пример осуществления изобретения относится к способу идентификации ошибочных данных внутри NV-RAM, удаления ошибочных данных и восстановления корректных данных в NV-RAM. Ряд примеров осуществления изобретения касается манипулирования данными во времени для подавления преднамеренного модифицирования критических данных незарегистрированным пользователем. В рассматриваемых ниже примерах осуществления для обеспечения всестороннего описания настоящего изобретения приведены многочисленные специальные подробности. Однако специалисту в данной области техники понятно, что настоящее изобретение может быть осуществлено и без этих специальных подробностей. В других случаях подробное описание известных признаков опущено, чтобы не затруднять выявления предмета изобретения.

Фиг.1 иллюстрирует блок-схему последовательности этапов в типичном примере осуществления энергонезависимой памяти с произвольным доступом. В одном примере осуществления NV-RAM 104 состоит из ряда запоминающих элементов, выстроенных в строки и столбцы. С целью обсуждения проблемы базовый запоминающий элемент описывается как блок 108 хипа. Как показано на фиг.1, вся NV-RAM 104 содержит блоки 108 хипа, выстроенные в строки и столбцы. Конкретный блок 108 хипа может быть точно определен путем указания его номеров строки и столбца. Для простоты рассматриваемая NV-RAM 104 физически разделена на 10 строк и 10 столбцов, что в сумме дает 100 блоков хипа для NV-RAM 104. Например, на первый блок 112 хипа, локализованный в верхней части стека памяти, можно ссылаться по его физическому положению в памяти как на блок хипа, размещенный в положении (строка 1, столбец 1), в то время как на последний блок 116 хипа можно ссылаться по его положению, определяемому (строкой 10, столбцом 10).

NV-RAM 104 играет значительную роль в нормальной работе игровой машины. Блоки 108 хипа хранят данные, которые можно классифицировать как постоянные или временные. Данные постоянного типа описываются в этом документе как критические данные. Критические данные содержат данные, рассматриваемые как в высшей степени важные. Критические данные хранят информацию, относящуюся к текущему(им) или предыдущему(им) состоянию(ям) игровой машины. Среди примеров критических данных можно назвать информацию по истории игр, информацию о безопасности, бухгалтерскую информацию, информацию о трекинге игрока, информацию из глобальной сети прогрессивных игр, информацию об игровом состоянии или любые “критические” данные, относящиеся к игре. Критические данные, такие как сумма денежных средств, отданных в кредит игровой машине или выплаченных игровой машиной, могут храниться постоянно в NV-RAM 104 как бухгалтерская информация. Эта критическая бухгалтерская информация отражает текущее и предшествующее состояния машины на протяжении последующих раундов игры. Для владельца казино эта информация имеет важное значение при определении доходности казино.

В отличие от постоянной временная область может быть использована для обработки важных команд, относящихся к текущему состоянию или текущим операциям игровой машины. После обработки команд временная область может быть распределена для других целей типа хранения критических данных. Например, операции, которые являются необходимыми при передаче кредитов с дебетной карточки в игровую машину, могут потребовать использования данных, хранимых временно в NV-RAM 104. Эти временные или некритические данные могут быть использованы в качестве части последовательности транзакций или инструкций, подлежащих исполнению. Однако после завершения операций содержимое памяти может быть подвергнуто стиранию, в результате которого будет генерирована дополнительная область памяти.

NV-RAM 104 может поддерживать содержимое своей памяти на протяжении некоторого времени с помощью батареи как источника питания и, таким образом, независимо от внешнего питания. В результате NV-RAM может продолжать хранение данных типа критических данных до тех пор, пока будет подаваться питание. Как правило, NV-RAM содержит свой собственный внутренний батарейный источник питания.

Фиг.2А иллюстрирует типичный способ загрузки новой игры в игровую машину без разрушения или удаления существующих критических данных. Это – всего лишь один возможный способ проведения операции и не следует считать, что настоящий пример осуществления ограничен этим типичным способом. На этапе 204 программный клиент запрашивает новый игровой код. В одном примере осуществления запрос передается с помощью интерфейса устройства типа клавишной панели, сенсорной панели или считывателя карточек в игровой машине. В других случаях новый игровой код может быть передан с удаленного вычислительного устройства (т.е. рабочей станции, сервера или т.п.) или портативным устройством (т.е. ПК-блокнотом, персональным электронным помощником, ручным компьютером или т.п.), которое может обмениваться информацией с игровой машиной. Передача может осуществляться посредством беспроводной или проводной связи. Программный клиент может содержать коммуникационный менеджер, диспетчер банков, диспетчер виртуального трекинга игрока, диспетчер распределения событий, диспетчер событий или диспетчер определения бросков напряжения. Более полно термин “программный клиент” рассматривается в родовой заявке 09/690931 под названием «Высокоскоростной интерфейс RAM с батарейной поддержкой» (“High Performance Battery Backed RAM Interface”), включенной в данное изобретение путем ссылки.

На этапе 208 программный клиент передает критические данные в диспетчер NV-RAM или из диспетчера. В одном примере осуществления диспетчер NV-RAM содержит программное обеспечения управления энергонезависимой памятью или энергонезависимым запоминающим устройством с возможностью эффективного управления энергонезависимой памятью или энергонезависимым запоминающим устройством. Хранение и доступ к критическим данным могут осуществляться программно управляемой файловой системой энергонезависимой памяти или энергонезависимого запоминающего устройства. Файловая система энергонезависимой памяти или энергонезависимого запоминающего устройства облегчает просмотр и модифицирование данных, постоянно хранящихся в NV-RAM. Файловая система энергонезависимой памяти или энергонезависимого запоминающего устройства может рассматриваться как система распределения файлов, находящихся в операционных системах компьютера, где файлы организованы в каталоги, подкаталоги и файлы. Диспетчер NV-RAM передает запросы на функции в NV-RAM. Запросы на функции могут включать в себя запрос на распределение или освобождение области памяти, открытие или закрытие файлов или данных и считывание, запись, изменение размера и перемещение блоков хипов внутри памяти NV-RAM. В используемом в данном изобретении смысле термин система управления NV-RAM содержит комбинацию диспетчера NV-RAM, файловой системы энергонезависимой памяти или энергонезависимого запоминающего устройства и NV-RAM, поддерживаемую процессами, исполняемыми операционной системой, постоянно хранимой в игровой машине. Операционная система может содержать операционную систему производства компаний типа Microsoft, Apple или LINUX. Система управления NV-RAM может использовать стандартные прикладные инструменты типа программы текстового процессора для просмотра содержимого в NV-RAM. Предполагается, что любой текстовой процессор в сочетании с файловой системой энергонезависимой памяти или энергонезависимого запоминающего устройства может облегчить отображение, добавление, удаление и модификацию критических данных, ассоциированных с добавлением или удалением конкретной игры (игр) внутри NV-RAM. В качестве примера программа текстового процессора включает в себя Corel Word Perfect или Microsoft Word. Система управления NV-RAM оставляет существующие критические данные на постоянное хранение в NV-RAM неповрежденными во время любого добавления или удаления критических данных.

На этапе 212 диспетчер NV-RAM динамически взаимодействует с NV-RAM, чтобы выполнить запросы на функции, относящиеся к распределению или освобождению блоков хипа, которые относятся к записи или удалению критических данных. Запросы на функции выполняются с участием программного клиента и могут содержать любой из запросов, упомянутых в предшествующем параграфе.

На этапе 216 диспетчер NV-RAM распределяет объем NV-RAM, требуемый для новой игры. Предполагается, что программа, исполняемая программным клиентом или аппаратным устройством, может определять размер игры, подлежащей загрузке в NV-RAM. Обмен этой информацией может осуществляться с диспетчером любым способом. Затем диспетчер NV-RAM проверяет существование достаточной области памяти и выдает запрос на распределение памяти. Диспетчер NV-RAM может выполнить открытый запрос на функцию для доступа к существующему узлу памяти NV-RAM. Узел представляет собой совокупность связанных блоков хипа в NV-RAM. Прочитанный в NV-RAM запрос на функцию обеспечивает дескриптор (или адрес) для интересующего узла NV-RAM, ассоциированного с совокупностью блоков хипа. Блоки хипа содержат используемые или неиспользованные блоки памяти, ассоциированные с конкретным дескриптором. В итоге соответствующие блоки хипа распределяются диспетчером NV-RAM для следующей функции записи.

На этапе 220 принимается решение о том, является ли размер памяти достаточным или нет. Если размер памяти не является достаточным, процесс переходит к этапу 224, на котором процесс, называемый уплотнением, описываемый ниже более подробно, выполняется заданное число раз, в этом примере осуществления N раз, для реорганизации (или дефрагментации) памяти. Процесс уплотнения генерирует неиспользованную непрерывную память размером, достаточным для хранения новых критических данных. На этапе 228 операция определяет, достигает ли число выполненных процедур уплотнения N или нет и продолжает операцию до n=N. Если размер доступной памяти все еще является недостаточным, то процесс заканчивается на этапе 232, как показано, переходом в режим конфликтной ситуации. Затем следует этап 236, указывающий на возникновение необходимости вмешательства человека в работу игровой машины.

В другом варианте изобретения, если на этапе 240 память достаточного размера является доступной, то происходит переход к этапу 240, на котором доступные блоки хипа идентифицируются и происходит динамическое распределение блоков хипа. Соответствующее число блоков хипа назначается на узел вместе с уникальным дескриптором. На этапе 244 диспетчер NV-RAM выполняет функцию записи критических данных, ассоциированных с новой игрой, в соседние блоки хипа в NV-RAM.

Фиг.1 может способствовать пониманию процесса, описанного этапами 204-244 на фиг.2А. Как показано, вторая игра добавляется в NV-RAM 104; NV-RAM предварительно содержала элементы критические данных, ассоциированных с существующей игрой #1. Как показано, элементы критические данных, соответствующие первой игре, хранились в первых 8 блоках 108 хипа NV-RAM 104 (т.е. строка 1, столбцы 1-8). Как часть описанного выше процесса, диспетчер NV-RAM решает, что критические данные требуют 12 блоков хипа. Диспетчер NV-RAM облегчает распределение 12 соседних блоков хипа в NV-RAM. Как показано на фиг.1, следующие 12 последовательных блоков хипа распределяются в соответствии с последними двумя блоками хипа в строке 1 и всеми блоками строки 2.

Далее следует продолжение описания способа, иллюстрируемого фиг.2, сопровождавшегося ссылками на фиг.2А, касающееся проверки целостности данных. На этапе 248 диспетчер NV-RAM извлекает копию исходных критических игровых данных из интерфейса устройства и пересылает ее в программный клиент, где эта копия хранится в первой ячейке в памяти типа SDRAM или любого другого запоминающего устройства.

SDRAM – синхронная динамическая память с произвольным доступом, которая может быть использована для хранения данных, требуемых для немедленной обработки, выполняемой процессором в игровой машине. Память с произвольным доступом этого типа обеспечивает более быстрое считывание и запись циклов памяти, но не подходит для использования при долговременном хранении информации о критических данных в игровой машине. После этого, на этапе 252 программный клиент сохраняет копию данных, извлеченных из NV-RAM в SDRAM.

Затем на этапе 256 программный клиент сравнивает исходные критические игровые данные в SDRAM с критическими игровыми данными, хранимыми в NV-RAM. Предполагается, что для подтверждения отсутствия изменения данных как исходные критические игровые данные, так и данные, хранимые в NV-RAM, могут быть подвергнуты контролю CRC. После этого на этапе 260 принимается решение о том, совпадают ли данные, хранимые в SDRAM, с данными, хранимыми в NV-RAM. Если данных совпадают, то происходит переход к этапу 264. В противном случае, если данные не совпадают, игровая машина переходит в режим конфликтной ситуации, как показано на этапе 268, и на этапе 272 наступает состояние ожидания. Этот процесс обеспечивает запись критических данных, ассоциированных с новым игровым программным обеспечением, в NV-RAM перед ведением игры без ошибок.

Рассмотренные выше этапы представляют способ динамического распределения области памяти NV-RAM, содержащий запоминание критической игровой информации, связанное с добавлением новой игры. Преимущество этого способа над прототипом заключается в том, что добавление новой игры не задевает никакие критические данные, ранее записанные в NV-RAM, типа данных, ассоциированных с другой игрой. Следовательно, способ обеспечивает сохранение существующей критической игровой информации в NV-RAM и не требует повторной инициализации и повторного составления карты содержимого всей памяти NV-RAM.

Фиг.3 иллюстрирует рабочую блок-схему последовательности этапов в типичном способе освобождения памяти или удаления критических данных, ассоциированных с удаляемой игрой, из многоигровой машины. При удалении игры из игровой машины могут быть удалены критические данные, ассоциированные с конкретной игрой. Преимущество этого способа состоит в том, что удаление игры из игровой машины может быть осуществлено без нарушения хранения других данных в игровой машине типа критических данных. В результате удаление игр из игровой машины может производиться быстро и эффективно. Кроме того, эти операции могут выполняться техниками по обслуживанию и не требуют привлечения экспертов программного обеспечения.

На этапе 304 программный клиент принимает запрос на удаление игры из игровой машины. Затем на этапе 308 программный клиент инициирует запрос на функцию к диспетчеру NV-RAM, чтобы идентифицировать дескриптор или узел критических данных, ассоциированных с игрой, подлежащей удалению. На этапе 312 блоки хипа памяти, соответствующие к узлу, тегируются для удаления. На этапе 316 диспетчер NV-RAM удаляет блоки хипа NV-RAM путем освобождения соответствующей совокупности блоков хипа. В качестве части этого процесса блок хипа может быть подвергнут открытию и считыванию.

После удаления данных, содержащихся в совокупности блоков хипа, как показано на этапе 320, происходит изменение размера остающихся доступных блоков хипа в памяти, что, таким образом, обеспечивает потенциально большую область памяти для будущего хранения критические данных. На этапе 324 диспетчер NV-RAM или любое другое устройство, система или программное обеспечение проверяет точность критических данных, хранимых в NV-RAM.

Фиг.4А иллюстрирует рабочую блок-схему типичного способа динамического изменения размера доступной области памяти в игровой машине. Преимущества применения этого способа заключаются в распределении и освобождении требуемой области памяти. Когда память требуется для выполнения рабочей транзакции, область памяти распределяется только в тот период времени, когда это необходимо. Когда память освобождается, происходит изменение размера памяти, что обеспечивает увеличенную доступную область памяти для последующего использования.

На этапе 404 происходит инициирование критической игровой транзакции. Среди примеров критических игровых транзакций можно назвать считывание кредитной информации с дебетной карточки, пополнение суммы кредита в игровой машине и прием денег от игрока. Для критической игровой транзакции может потребоваться использование NV-RAM как временного, так и более постоянного. NV-RAM может хранить значения данных временно в качестве промежуточного этапа в процессе вычисления критических данных. Например, при приеме денег от игрока банкнотоприемник может определить стоимость денег в целых числах долларов. Эта информация может храниться в NV-RAM временно в качестве промежуточного рабочего этапа до определения числа кредитов, выданных в игровой машине. Если бы игра содержала игру на 25 центов, число вычисленных кредитов соответствовало бы сорока кредитам, если бы игрок вставил банкноту в десять долларов. В этом примере критические данные, хранимые постоянно в NV-RAM, могут содержать число кредитов (сорок), несмотря на то, что число долларов (десять) составляло бы промежуточное рабочее значение при вычислении числа кредитов. Вследствие этого промежуточное значение «десять» может содержать данные, которые хранятся временно в NV-RAM и удаляются после вычисления значения критических данных «сорок», которое может храниться постоянно в NV-RAM.

На этапе 408 диспетчер NV-RAM распределяет память, чтобы облегчить критическую игровую транзакцию. Диспетчер NV-RAM может распределять память при подготовке к хранению типичных критических данных, ассоциированных с загрузкой игры, или может освобождать память (как при удалении содержимого из временной памяти NV-RAM), если конкретные данные больше не требуются в игровой машине. Как правило, при критической игровой транзакции диспетчер NV-RAM распределяет область памяти или временно, или постоянно, как показано на этапе 412. Новые данные будут постоянно находиться в памяти в течение периода времени, определяемого их функцией. На этапе 416 данные рабочей транзакции загружаются на временное хранение в область NV-RAM. Как было указано ранее, эти данные могут использоваться на промежуточном этапе как части вычисления критических данных. После этого на этапе 420 результирующие критические данные сохраняются постоянно в памяти NV-RAM. На этапе 424 данные, созданные, сохраненные или использованные для промежуточных рабочих транзакций, могут быть разрушены, и область памяти NV-RAM может быть освобождена.

Как показано на фиг.4В, на этапе 428 игровая машина может перейти в режим ведения игры. В ходе ведения игры в игровой машине может возникнуть ряд различных событий типа приема денег, конфликтной ситуации с накопителем, конфликтной ситуации с барабаном, конфликтной ситуации в системе защиты, потери питания, ввода карточки игрока, извлечение карточки игрока, ввода персональной идентификации, вращения барабана, изменения стоимости денежных знаков, конфликтной ситуации с джекпотом и т.п. Во время этих транзакционных событий требования, предъявляемые игрой или игровой машиной к временной или постоянной энергонезависимой памяти или энергонезависимому запоминающему устройству, могут меняться. В соответствии с этим на этапе 428 распределенные области памяти подвергаются непрерывному мониторингу. На этапе 432 принимается решение о достаточности памяти в любой момент времени в процессе работы игровой машины.

Если памяти достаточно, игровая машина возобновляет проведение игры путем возврата к этапу 424. В противном случае, если на этапе 532 система определяет, что область памяти или размер распределенных областей являются недостаточными, то происходит операция перехода к этапу 436. На этапе 436 происходит операция динамического изменения размера памяти, чтобы облегчить проведение игр или любой другой рабочей транзакции. Процесс может заключаться в уплотнении, описываемом ниже более подробно, для обеспечения непрерывной памяти, достаточно большой для осуществления конкретной транзакции.

На фиг.1 временная область памяти NV-RAM показана как первые четыре блока хипа в третьей строке 120 NV-RAM 104. Предполагается, что эти блоки используются, чтобы хранить промежуточные данные, требуемые при генерации критических данных. Например, критические данные, ассоциированные со второй игрой, содержащиеся в блоках хипа, размещенных в строке 2 и столбцах 1-10, могли быть генерированы с помощью данных, хранимых во временной области NV-RAM. После использования содержимое во временной области 120 NV-RAM может быть удалено, и ассоциированные блоки хипа могут быть освобождены.

Фиг.5 иллюстрирует рабочую блок-схему последовательности этапов в типичном способе выполнения контроля целостности данных в энергонезависимой памяти с произвольным доступом. В одном примере осуществления этот способ используется, чтобы обнаружить и фиксировать изменения в данных, которые могут быть вызваны проблемами с электричеством типа статического разряда или высоких выбросов напряжения. Этот процесс может начаться при включении игровой машины. Это показано на этапе 504. Игровая машина выполняет инициализацию NV-RAM, которая может включать в себя проверку целостности памяти.

В одном примере осуществления проверка целостности осуществляется по алгоритму CRC (циклического контроля избыточности) или другим способом, например по контрольной сумме, чтобы определить, содержит ли элемент критических данных, хранимый в NV-RAM, ошибку. Когда игровая машина включается, состояние машины до ее включения фиксируется в заголовке NV-RAM. Информация о состоянии может содержать особую подпись, которая может быть распознана во время контроля целостности. Например, особая подпись может указывать, что игровая машина имеет особую неисправность или что во время предыдущей операции подача питания была прервана. Если подписи, генерированные для заголовка NV-RAM, не соответствуют подписям, хранимым в заголовке NV-RAM, в критических данных могла произойти ошибка типа взлома игровой машины или каких-либо других аппаратных средств или сбоя программного обеспечения. Дальнейший контроль блоков хипа NV-RAM может указать на ошибки в критических данных. В случае, когда подпись указывает, что происходило пропадание сетевого напряжения, диспетчеру NV-RAM может быть предписано, кроме того, выполнить проверку целостности содержимого памяти внутри блока хипа, который содержит критические данные, ассоциированные с конкретной операцией во время пропадания сетевого напряжения.

После этого на этапе 508 диспетчер NV-RAM выполняет контроль целостности в NV-RAM и определяет ошибки в элементе критических данных. На этапе 512 диспетчер NV-RAM идентифицирует дескриптор элемента ошибочных критических данных и определяет соответствующие блоки хипа, которые содержат элемент ошибочных критических данных. В одном примере осуществления диспетчер NV-RAM при этом выполняет запрос функции открытия на доступ к памяти, содержащей задетые блоки хипа. Запрос функции считывания может затем генерировать соответствующие совокупности блоков хипа, которые требуют удаления.

На этапе 516 диспетчер NV-RAM выполняет запрос функции удаления, позволяющий NV-RAM удалить блоки хипа, ассоциированные с обнаруженной ошибкой. На этапе 520 все блоки хипа, содержащие элементы несвязанных критических данных, остаются внутри NV-RAM неповрежденными, поскольку диспетчер NV-RAM перезагружает задетые данные в соответствующих ячейках в NV-RAM, чтобы восстановить целостность критических данных. В одном примере осуществления после перезагрузки или перезаписи восстановленные данные могут быть подвергнуты повторной проверке. В одном примере осуществления после удаления поврежденных данных может быть генерировано предупреждение.

Преимущество этого примера осуществления заключается в том, что в процессе удаления ошибки из энергонезависимой памяти или энергонезависимого запоминающего устройства происходит стирание минимального подмножества всех элементов критических данных. В результате процесс, описанный со ссылками на фиг.5, обычно удаляет ошибочный элемент критические данных и оставляет неповрежденными все другие элементы критические данных, которые являются не связанными с ошибочным элементом критические данных.

В прототипе при ошибке в элементе данных требовалась переинициализация или стирание всей NV-RAM, что приводило к потере всех данных, не связанных с ошибкой. Это является нежелательным вследствие потери всех критических данных или необходимости перезагрузки.

Фиг.6А-6С иллюстрируют типичные способы уплотнения NV-RAM. Уплотнение – процесс реорганизации используемой и свободной памяти внутри NV-RAM, осуществляемый для объединения свободной области памяти в память большего размера или в непрерывную память максимально возможного размера. В процессе уплотнения диспетчер NV-RAM записывает связанные критические данные по ряду соседних блоков хипа. Результатом процесса является более эффективное выполнение диспетчером NV-RAM функций записи и считывания. Вследствие этого происходит значительное улучшение эффективности работы со связанными данными, хранимыми по соседству. Кроме того, уплотнение обеспечивает более эффективное использование памяти, так как позволяет записывать блок данных по соседству.

Фиг.6А иллюстрирует дополнительный пример осуществления способа уплотнения или реорганизации памяти в NV-RAM. Его можно реализовать путем отделения использованных блоков хипа от неиспользованных блоков хипа. На этапе 604 диспетчер NV-RAM последовательно анализирует блоки хипов NV-RAM. Предполагается, что диспетчер NV-RAM начинает анализ в положении первого блока хипа (строка 1, столбец 1) NV-RAM, как показано на фиг.1, или в любом положении. На этапе 608 определяется, используется ли блок хипа (содержит данные) или нет. Если блок хипа используется, то на этапе 612 блок хипа перемещается или размещается в верхней части стека памяти NV-RAM. Используемые блоки хипа, перемещенные в верхнюю часть NV-RAM, могут быть подвергнуты сортировке на основе типа критических данных, хранимых внутри блока хипа. Среди критериев сортировки можно назвать тип критических данных (например, данные бухгалтерского учета или истории игр), тип игры или любой другой фактор.

На этапе 616 проводится изменение размеров узлов, чтобы отобразить число блоков хипа, ассоциированных с конкретным узлом. Узел рассматривается в родовой заявке 09/690931, «Высокоскоростной интерфейс RAM с батарейной поддержкой» (High Performance Battery Backed RAM Interface). После этого на этапе 620 анализируется следующий блок хипа, и процесс повторяется путем возврата к этапу 604. После уплотнения всей памяти NV-RAM процесс может быть приостановлен или остановлен.

На этапе 608, если блок хипа не используется, процесс возвращается назад к шагу 604, где следующий блок хипа подвергается анализу. Предполагается, что управление процессом перемещения блоков хипа может осуществляться программным клиентом во взаимодействии с диспетчером NV-RAM. Предполагается, что факторами начала и окончания процесса могут быть время дня, частота использования NV-RAM, раунды игры на игровой машине или некоторые другие критерии.

Фиг.6В иллюстрирует дополнительный пример осуществления способа для уплотнения или реорганизации памяти в NV-RAM. Его можно реализовать путем перемещения блоков в верхнюю или нижнюю часть стека памяти NV-RAM. На этапе 624 диспетчер NV-RAM последовательно анализирует блоки хипов в NV-RAM. Как описано со ссылками на фиг.6А, диспетчер NV-RAM может начать анализ с первого блока хипа, локализованного в положении (строка 1, столбец 1) NV-RAM или с любого другого положения. На этапе 628 принимается решение о том, используется ли блок хипа или нет.

Если блок хипа используется, процесс переходит к этапу 632, на котором блок хипа перемещается в верхнюю часть NV-RAM. Если блок хипа не используется, процесс переходит к этапу 636, и блок хипа перемещается в нижнюю часть стека памяти NV-RAM. После этого в обоих случаях изменяются размеры ассоциированных узлов, чтобы отобразить новую реорганизацию или новые совокупности используемых или неиспользуемых блоков хипа. Это показано на этапах 640 и 644. На этапе 648 следующий блок хипа подвергается анализу, и процесс повторяется. Поскольку перемещение блоков хипа выполняется как применительно к используемым, так и применительно к неиспользуемым блокам хипа, предполагается, что система, описанная со ссылками на фиг.6В, может обеспечивать более быстрый способ уплотнения по сравнению с системой, описанной со ссылками на фиг.6А.

Фиг.6С иллюстрирует дополнительный пример осуществления системы уплотнения или реорганизации памяти в NV-RAM. Его можно реализовать путем перемещения блоков хипа в верхнюю часть стека памяти NV-RAM на основе особых критериев. На этапе 652 диспетчер NV-RAM последовательно анализирует блоки хипа в NV-RAM. На этапе 656 принимается решение о том, используется ли блок хипа или нет. Если блок хипа содержит данные, процесс переходит к этапу 660. Затем принимается решение относительно критериев размера блока. Например, критериями размера может быть то, чтобы размер блока хипа перед перемещением не превышал 200 килобайтов. Этот тип критериев может облегчить перемещение меньших блоков по сравнению с перемещением больших блоков, и критерии могут контролироваться, например, служащим казино. На этапе 664 используемый блок хипа, удовлетворяющий требуемым критериям, перемещается в верхнюю часть стека памяти в NV-RAM. Предполагается блок хипа может быть перемещен в часть памяти, отличную от верхней части, описываемую в этом примере осуществления. На этапе 668 изменяются размеры совокупности доступных блоков хипов, чтобы отобразить дополнительную доступную область памяти. Затем на этапе 672 процесс повторяется, и диспетчер NV-RAM анализирует следующий блок хипа.

Предполагается, что перемещение блоков хипа, описываемое со ссылками на фиг.6А-6С, может быть выполнено путем перемещения данных в другую часть памяти, отличную от верхней или нижней части стека памяти NV-RAM. Способы перемещения в конкретное положение, описываемые в этих примерах осуществления, являются типичными и служат для целей обсуждения. Кроме того, предполагается, что уплотнение может происходить более легко, когда доступность неиспользуемой NV-RAM находится на низком уровне. Предполагается также, что уплотнение может происходить периодически или в особые моменты времени дня, или в особые дни недели. Как часть инициализации NV-RAM предполагается, что уплотнение NV-RAM осуществляется при первом запуске диспетчера NV-RAM.

Фиг.7 иллюстрирует типичный способ перемещения содержимого блоков хипа в различные положения внутри памяти NV-RAM. Этот процесс может происходить для обеспечения дополнительной безопасности путем реорганизации данных в памяти, чтобы предотвратить несанкционированный доступ к данным. Непрерывное или периодическое изменение положения данных в памяти позволяет уменьшить возможность доступа отдельного человека к данным конкретного типа.

На этапе 704 диспетчер NV-RAM произвольным образом генерирует запись узла. Запись узла хранит дескриптор для NV-RAM который может быть уникальным дескриптором. Этот дескриптор, используемый программным клиентом, может предоставлять указатель на положение постоянного нахождения узла или записи в NV-RAM. Кроме того, запись узла может предоставлять размер файла, имя файла и информацию, относящуюся к статусу файла. Предполагается статус может быть флагом, который указывает на возможное изменение размера или удаление данных в NV-RAM и обеспечивает возможность осуществления этих операций. На этапе 708 осуществляется выбор ассоциированного блока хипа или произвольного блока хипа, соответствующего записи узла. На этапе 712 блоки хипа размещаются в нижней части стека памяти в NV-RAM. Предполагается, что данные могут быть перемещены в части стека памяти, отличные от нижней части. Фиг.1 иллюстрирует физическое положение блока хипа в результате перемещения данных в нижнюю часть стека памяти (показанного в качестве блока хипа в положении (строка 10, столбец 10)).

Затем на этапе 716 может быть применена процедура уплотнения, описанная со ссылками на фиг.6А-С. Этот процесс препятствует возможности несанкционированного пользователя идентифицировать содержимое конкретного блока хипа, так как что содержимое блоков хипа, выбираемых произвольным образом, непрерывно перемещается в новое положение внутри NV-RAM.

Фиг.8 иллюстрирует рабочую блок-схему последовательности этапов в дополнительном способе работы системы для предотвращения несанкционированного доступа к данным, записанным в NV-RAM. На этапе 808 критические игровые данные, ассоциированные с игровым кодом, подвергаются идентификации и сохранению в SDRAM. На этапе 812 диспетчер NV-RAM облегчает процесс обработки критических данных путем поставки критических данных в диспетчер NV-RAM. На этапе 816 диспетчер NV-RAM идентифицирует и распределяет блоки хипа для хранения критических данных. На этапе 820 NV-RAM облегчает шифрование и последующее хранение критических данных в SDRAM. Шифрование может представлять собой шифрование любого простого типа. В одном примере осуществления шифрование содержит умножение критических данных на уникальное для игровой машины число. Это позволяет создать уникальный ключ шифрования, который не будет известен потенциальным мошенником. На этапе 824 зашифрованные критические данные записываются в NV-RAM.

Предполагается, что описанное выше программное обеспечение может быть реализовано в машиночитаемом коде типа кода программного обеспечения и компьютерных программах, исполняемых процессором.

Понятно, что описанные выше конфигурации устройства и способ следует рассматривать исключительно в качестве иллюстрации применения принципов этого изобретения и что допускается возможность предложения многих других примеров осуществления и внесения изменений, не выходящих за пределы существа и объема изобретения, определенных формулой изобретения.

Формула изобретения

1. Система распределения энергонезависимой памяти для хранения критических данных в игровой машине, содержащая:
энергонезависимую память, имеющую область памяти, конфигурируемую для хранения критических данных для множества типов игр, проводимых на игровой машине, где первые критические данные содержат 1) информацию о текущем состоянии машины, генерируемую во время проведения одной или более из множества типов букмекерских игр; и 2) информацию о предыдущем состоянии машины, включающую в себя кредитную информацию, ассоциированную с предыдущим проведением одной или более из множества типов букмекерских игр;
диспетчер энергонезависимой памяти, сконфигурированный для распределения и освобождения области памяти в энергонезависимой памяти для первых критических данных, ассоциированных с первой игрой, без изменения или модифицирования существующих вторых критических данных, также хранимых в энергонезависимой памяти.

2. Система по п.1, отличающаяся тем, что содержит файловую систему данных для доступа к данным и организации данных, хранимых в энергонезависимой памяти.

3. Система по п.1, отличающаяся тем, что энергонезависимая память содержит память с батарейной поддержкой.

4. Система по п.1, отличающаяся тем, что диспетчер энергонезависимой памяти содержит машиночитаемый код.

5. Система по п.1, отличающаяся тем, что данные идентифицируются файлами с помощью файловой системы.

6. Система по п.5, отличающаяся тем, что дополнительно содержит прикладное инструментальное средство для доступа к файлам в файловой системе.

7. Способ инсталляции игры на игровой машине, содержащий этапы:
генерации первых критических данных, ассоциированных с исполнением первого игрового кода для первой букмекерской игры, инсталлированной на игровой машине, распределяющей область памяти в энергонезависимой памяти для первых критических данных с помощью системы энергонезависимой памяти;
записи первых критических данных в энергонезависимую память, где первые критические данные содержат 1) информацию о текущем состоянии машины, генерируемую во время проведения первой букмекерской игры; и 2) информацию о предыдущем состоянии машины, включающую в себя кредитную информацию, ассоциированную с предыдущим проведением первой букмекерской игры;
приема второго игрового кода, где первый игровой код ассоциирован со второй букмекерской игрой, инсталлируемой на игровой машине;
сохранения второго игрового кода в запоминающем устройстве на игровой машине;
генерации вторых критических данных, ассоциированных со вторым игровым кодом;
распределения области памяти в энергонезависимой памяти для вторых критических данных с помощью системы распределения энергонезависимой памяти;
записи вторых критических данных в энергонезависимую память, где вторые критические данные содержат 1) информацию о текущем состоянии машины, генерируемую во время проведения второй букмекерской игры; и 2) информацию о предыдущем состоянии машины, включающую в себя кредитную информацию, ассоциированную с предыдущим проведением второй букмекерской игры; причем
энергонезависимая память включает в себя первые критические данные; и первые критические данные остаются после инсталляции второго игрового кода неповрежденными.

8. Способ по п.7, отличающийся тем, что дополнительно содержит этап проверки точности первых данных, записанных в энергонезависимую память, после записи.

9. Способ по п.7, отличающийся тем, что распределение дополнительно содержит этап проверки существования достаточной области памяти в энергонезависимой памяти.

10. Способ по п.7, отличающийся тем, что дополнительно содержит этап уплотнения энергонезависимой памяти для генерации дополнительной области памяти.

11. Способ удаления первой букмекерской игры из игровой машины, содержащий этапы:
сохранения вторых критических данных, ассоциированных со второй букмекерской игрой, в энергонезависимой памяти, где генерация второй букмекерской игры осуществляется с помощью второго игрового кода, и вторые критические данные содержат 1) информацию о текущем состоянии машины, генерируемую во время проведения второй букмекерской игры; и 2) информацию о предыдущем состоянии машины, включающую в себя кредитную информацию, ассоциированную с предыдущим проведением одной второй букмекерской игры;
идентификации более ненужной части первых критических данных, ассоциированных с первой букмекерской игрой, где генерация первой букмекерской игры осуществляется с помощью первого игрового кода, и первые критические данные содержат 1) информацию о текущем состоянии машины, генерируемую во время проведения первой букмекерской игры; и 2) информацию о предыдущем состоянии машины, включающую в себя кредитную информацию, ассоциированную с предыдущим проведением одной первой букмекерской игры;
идентификации области памяти, хранящей более ненужную часть первых критических данных, в энергонезависимой памяти путем использования диспетчера энергонезависимой памяти;
удаления части первых критических данных, ассоциированных с первой букмекерской игрой, где удаление не препятствует использованию вторых критических данных, также хранимых в энергонезависимой памяти; и
освобождения области памяти, ранее занятой первыми критическими данными.

12. Способ по п.11, отличающийся тем, что дополнительно содержит этап изменения размера области памяти, оставшейся в результате стирания первых критических данных.

13. Способ по п.11, отличающийся тем, что дополнительно содержит этап проверки точности вторых критических данных в энергонезависимой памяти после удаления первых критических данных.

14. Способ по п.11, отличающийся тем, что диспетчер энергонезависимой памяти содержит машиночитаемый код.

15. Способ по п.11, отличающийся тем, что освобождение выполняется диспетчером памяти.

РИСУНКИ

Categories: BD_2352000-2352999