УСТРОЙСТВО ДОСТУПА К ПОЛУПРОВОДНИКОВОЙ КАРТЕ ПАМЯТИ, КОМПЬЮТЕРНО-СЧИТЫВАЕМЫЙ НОСИТЕЛЬ ЗАПИСИ, СПОСОБ ИНИЦИАЛИЗАЦИИ И ПОЛУПРОВОДНИКОВАЯ КАРТА ПАМЯТИ Российский патент 2005 года по МПК G06F12/14 G11B20/12 

Описание патента на изобретение RU2257609C2

Область техники, к которой относится изобретение

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

Уровень техники

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

Таким образом, полупроводниковая карта памяти имеет уникальную аппаратную структуру (физический уровень), которая коренным образом отличается от структуры, используемой в магнитных или оптических дисках. Однако модель уровней, показанная на фиг.1А, как и в случае магнитного или оптического диска, предусматривает наличие физического уровня, уровня файловой системы и уровня приложений. На фиг.1В изображена подробная схема физического уровня. Согласно чертежу, физический уровень содержит область тома, образованную совокупностью очищаемых блоков. Каждый очищаемый блок состоит из 32 секторов и имеет длину данных 16 КБ. На фиг.1С изображена схема уровня файловой системы, в качестве которой обычно выступает, так называемая, файловая система FAT (таблица размещения файлов). Файловая система FAT оперирует областью тома как совокупностью, так называемых, кластеров. В начале области тома располагается информация управления томом, а непосредственно после информации управления томом находится пользовательская область, предназначенная для записи пользовательских данных. Информация управления томом включает головную загрузочную запись, таблицу разделов, загрузочный сектор раздела, дублированную таблицу размещения файлов (FAT) и элемент корневого каталога. Дублированная FAT указывает связи между множеством кластеров, из которых состоит область тома. Благодаря наличию такого рода уровня файловой системы, можно сохранять данные на уровне приложений в виде иерархической структуры, образованной каталогами и файлами. Такая модель уровней дает возможность устройству доступа применять при обращении к полупроводниковой карте памяти ту же процедуру, что и при обращении к носителю записи типа магнитного или оптического диска, невзирая на различия, имеющие место на физическом уровне.

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

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

В общем случае, когда 32 секторами управляют как одним кластером, запись данных в кластер можно осуществить за 32× 200 мкс (200 мкс это время, необходимое для записи каждого сектора), если место под запись уже очищено. Если же место под запись нужно сначала очистить, то добавляется период очистки в 2 мс. Если кластер перекрывает границу между двумя очищаемыми блоками, то нужно очищать оба блока, и очистка места под запись занимает 4 мс. В результате, время, затрачиваемое на запись данных, заметно возрастает.

Сущность изобретения

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

Полупроводниковые карты памяти типа SD (цифровой защиты) позволяют достичь больших успехов в решении вышеупомянутых задач снижения времени обработки и повышения срока службы энергонезависимой памяти по следующим причинам. В карте памяти типа SD предусмотрена так называемая защищенная область, которую обычный пользователь не может использовать. Эта защищенная область предназначена для хранения секретной информации, например, шифровального ключа, используемого для шифрования данных, информации по счетам, используемой для предоставления пользователю счета за воспроизведение материала, охраняемого авторским правом, и т.п. Объем данных, подлежащих засекречиванию, варьируется в зависимости от типа используемой прикладной программы, так что размер защищенной области должен изменяться в соответствии с типом прикладной программы. Если размер защищенной области изменяется, это значит, что схема области тома также изменяется в соответствии с типом прикладной программы. При подобном изменении схемы области тома, нередко случается так, что кластеры перекрывают границы между очищаемыми блоками, из-за чего решение вышеупомянутой задачи становится крайне необходимым. Для решения этой задачи можно предложить следующую структуру устройства доступа к полупроводниковой карте памяти. Устройство доступа осуществляет доступ к файлам, хранящимся на полупроводниковой карте памяти, которая содержит область памяти, состоящую из множества секторов, оперируя данными в каждой группе из 2j секторов (j - равно 0 или положительному целому числу) как кластером, и оперируя одним или несколькими кластерами как файлом. В данном случае, каждая группа из 2i последовательных секторов области памяти образует блок (i равно 0 или положительному целому числу), который является наименьшей областью памяти, на которой можно осуществлять операцию стирания данных. Устройство доступа содержит вычислительный модуль, резервирующий модуль и записывающий модуль. Вычислительный модуль вычисляет размер информации управления томом на основании количества кластеров в области памяти, которыми нужно оперировать. В данном случае, информация управления томом содержит таблицу размещения файлов, которая указывает для каждого файла связи между кластерами, соответствующими файлу. Резервирующий модуль резервирует первую область для записи информации управления томом и вторую область для записи пользовательских данных. Первая область характеризуется размером данных, превышающим вычисленный размер информации управления томом, и состоит из mх2i секторов (m - положительное целое число), тогда как вторая область состоит из блоков, следующих за первой областью. Записывающий модуль записывает информацию управления томом в первую область, пользовательские данные - во вторую область и оперирует информацией управления томом и пользовательскими данными как совокупностью кластеров. Устройство доступа резервирует в области тома область размером в m кластеров (m - положительное целое число) для записи информации управления томом, что не дает возможности, при сохранении кластера, перекрывать границу между двумя очищаемыми блоками. Границы кластеров можно выравнивать по границам очищаемых блоков, и границы информации управления томом можно выравнивать по границам очищаемых блоков. Поэтому при перезаписи кластера требуется очищать только один очищаемый блок, что позволяет снизить количество операций очистки очищаемого блока. Снижение количества операций очистки блока дает возможность сократить время записи данных в полупроводниковую карту памяти, и увеличить срок службы энергонезависимой памяти.

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

В данном случае, вычислительный модуль может вычислять сумму SUM, суммируя количество секторов, используемых для записи информации загрузочного сектора раздела, таблицы размещения файлов и элементов корневого каталога. Резервирующий модуль резервирует первую область, вычисляя значение m на основании уравнения (1): NOM+SUM=2j×m. В данном случае, NOM это количество секторов. Записывающий модуль вычисляет определенное количество секторов, вычитая 1 из количества секторов NOM. Даже если размер таблицы размещения файлов изменяется, первая область, размер которой превышает размер информации управления томом, кратна размеру очищаемого блока, остается постоянной. Таким образом, для первой области резервируют необходимый минимальный размер, не зависящий от вычисленного размера таблицы размещения файлов.

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

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

Согласно одному из предпочтительных вариантов осуществления упомянутого устройства доступа, вычислительный модуль выполнен с возможностью вычислять сумму SUM, суммируя количество секторов, используемых для записи информации загрузочного сектора раздела, таблицы размещения файлов и элемента корневого каталога, при этом первая область состоит из m× 2j секторов (m - положительное целое), резервирующий модуль выполнен с возможностью резервировать первую область посредством вычисления значения m на основании уравнения NOM + SUM=m× 2j, где NOM - количество секторов, а записывающий модуль выполнен с возможностью вычислять предварительно определенное количество секторов вычитанием 1 из количества секторов NOM. Предпочтительно, количество секторов, используемых для записи таблицы размещения файлов, вычисляется на основании количества кластеров в области памяти, которыми нужно оперировать.

Помимо этого, согласно этому предпочтительному варианту осуществления, таблица размещения файлов содержит множество элементов, причем количество элементов равно количеству кластеров, подлежащих записи во вторую область, и каждый элемент из множества элементов указывает связь с другим кластером того же файла. При этом устройство доступа включает в себя приемный модуль, выполненный с возможностью принимать установочные значения суммарного количества секторов и суммарного количества кластеров в области памяти. Вычислительный модуль включает в себя модуль первого вычисления, выполненный с возможностью вычислять суммарное количество кластеров путем деления суммарного количества секторов в области памяти на количество секторов 2j и вычислять размер таблицы размещения файлов путем умножения суммарного количества кластеров на длину элемента в битах, а резервирующий модуль включает в себя модуль второго вычисления, выполненный с возможностью вычислять сумму SUM путем суммирования размера таблицы размещения файлов с количествами секторов, образующих, соответственно, информацию загрузочного сектора раздела и элемент корневого каталога, и вычислять значение m путем подстановки значения суммы SUM в уравнение NOM + SUM=m× 2j.

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

Согласно одному из предпочтительных вариантов осуществления упомянутой полупроводниковой карты памяти, первая область состоит из m× 2j секторов (m - положительное целое), предварительно определенное количество секторов вычисляется вычитанием 1 из количества секторов NOM, которое удовлетворяет уравнению NOM + SUM=m× 2j, при этом сумма SUM вычисляется суммированием количества секторов, используемых для записи информации загрузочного сектора раздела, таблицы размещения файлов и элемента корневого каталога. Предпочтительно, количество секторов, используемых для записи таблицы размещения файлов, вычисляется на основании количества кластеров в области памяти, которыми нужно оперировать.

Помимо этого, согласно этому предпочтительному варианту осуществления, таблица размещения файлов содержит множество элементов, причем количество элементов равно количеству кластеров, и каждый элемент из множества элементов указывает связь с другим кластером того же файла. При этом размер таблицы размещения файлов вычисляется посредством вычисления суммарного количества кластеров путем деления суммарного количества секторов в области памяти на количество секторов 2j и умножения суммарного количества кластеров на длину элемента в битах, а значение m вычисляется посредством вычисления суммы SUM суммированием размера таблицы размещения файлов с количествами секторов, образующих, соответственно, информацию загрузочного сектора раздела и элемент корневого каталога, и подстановкой значения суммы SUM в уравнение NOM + SUM=m× 2j.

Для решения вышеизложенной задачи изобретения предоставляется способ инициализации компьютера, позволяющий компьютеру осуществлять доступ к файлам, хранящимся в полупроводниковой карте памяти, которая содержит область памяти, состоящую из множества секторов, оперируя данными в каждой группе из 2j секторов (j равно 0 или положительному целому числу) как кластером, и оперируя одним или несколькими кластерами как файлом, причем каждая группа из 2i последовательных секторов области памяти образует блок (i равно 0 или положительному целому числу), который является наименьшей областью памяти, на которой можно осуществлять операцию стирания данных. Согласно данному способу вычисляют размер информации управления томом на основании количества кластеров в области памяти, которыми нужно оперировать, причем информация управления томом включает головную загрузочную запись, таблицу разделов, информацию загрузочного сектора раздела, таблицу размещения файлов, элемент корневого каталога, причем таблица размещения файлов указывает для каждого файла связи между кластерами, соответствующими файлу. Также согласно данному способу резервируют первую область, используемую для записи информации управления томом, и вторую область, используемую для записи пользовательских данных, причем первая область характеризуется размером данных, превышающим вычисленный размер информации управления томом, и включает два или более блоков, а вторая область состоит из блоков, следующих за первой областью. Кроме того, согласно данному способу записывают информацию управления томом в первую область, а пользовательские данные - во вторую область, и записывают головную загрузочную запись и таблицу разделов в первый сектор первого блока первой области, пропускают предварительно определенное количество секторов и затем записывают информацию загрузочного сектора раздела, таблицу размещения файлов и элемент корневого каталога в последующие секторы для выравнивания конца первой области с концом элемента корневого каталога, при этом информацию загрузочного сектора раздела, таблицу размещения файлов и элемент корневого каталога записывают в по меньшей мере один блок, который отличается от первого блока.

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

Согласно одному из предпочтительных вариантов осуществления упомянутого носителя записи, при упомянутом вычислении вычисляется сумма SUM посредством суммирования количества секторов, используемых для записи информации загрузочного сектора раздела, таблицы размещения файлов и элемента корневого каталога; при упомянутом резервировании резервируется первая область посредством вычисления значения m на основании уравнения NOM + SUM=m× 2j, где NOM - количество секторов; и при упомянутой записи вычисляется предварительно определенное количество секторов посредством вычитания 1 из количества секторов NOM. Предпочтительно, количество секторов, используемых для записи таблицы размещения файлов, вычисляется на основании количества кластеров в области памяти, которыми нужно оперировать.

Помимо этого, согласно этому предпочтительному варианту осуществления, таблица размещения файлов содержит множество элементов, причем количество элементов равно количеству кластеров, подлежащих записи во вторую область, и каждый элемент из множества элементов указывает связь с другим кластером того же файла. При этом программа на носителе записи дополнительно позволяет компьютеру принимать установочные значения суммарного количества секторов и суммарного количества кластеров в области памяти. Предпочтительно, упомянутое вычисление включает в себя первое вычисление для вычисления суммарного количества кластеров путем деления суммарного количества секторов в области памяти на количество секторов 2j и вычисления размера таблицы размещения файлов путем умножения суммарного количества кластеров на длину элемента в битах, а упомянутое резервирование включает в себя второе вычисление для вычисления суммы SUM путем суммирования размера таблицы размещения файлов с количествами секторов, образующих, соответственно, информацию загрузочного сектора раздела и элемент корневого каталога, и вычисления значения m путем подстановки значения суммы SUM в уравнение NOM + SUM=m× 2j.

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

NOM + SUM=m× 2j.

Краткое описание чертежей

Фиг.1А - модель уровней, предусматривающая наличие физического уровня, уровня файловой системы, отвечающей стандарту ISO/IEC9293, и уровня приложений.

Фиг.1В и 1С - формат физического уровня и уровня файловой системы.

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

Фиг.2А - внешний вид полупроводниковой карты памяти.

Фиг.2В и 2С - внешние виды устройств доступа.

Фиг.3А - внутренняя структура полупроводниковой карты памяти и устройства доступа.

Фиг.3В - модель уровней для программного обеспечения, используемого устройством доступа.

Фиг.4 - формат хранения данных, отвечающий стандарту ISO/IEC9293, используемому энергонезависимой памятью 1.

Фиг.5 - структура области управления разделом, системной области и пользовательской области, входящих в область тома.

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

Фиг.6В - структура загрузочного сектора раздела.

Фиг.7А - структура дублированной FAT.

Фиг.7В - структура элемента корневого каталога.

Фиг.7С - структура пользовательской области.

Фиг.8 - пример способа сохранения файлов.

Фиг.9 - пример задания элемента корневого каталога и FAT при сохранении файла AOB001.SA1 во множестве кластеров.

Фиг.10А - соотношение между очищаемыми блоками и кластерами.

Фиг.10В - кластеры, когда n=1.

Фиг.10С - кластеры, когда n=16.

Фиг.11А - случай, когда для записи информации управления томом выделены m кластеров из s очищаемых блоков.

Фиг.11В - количество кластеров, выделенных для записи информации управления томом, когда n=1.

Фиг.11С - количество кластеров, выделенных для записи информации управления томом, когда n=16.

Фиг.12 - чертеж, полученный построением области управления разделом, системной области и кластеров, размеры которых вычислены с использованием уравнений (11) и (12).

Фиг.13 - блок-схема процедуры инициализации для области тома.

Фиг.14 - структура устройства доступа к полупроводниковой карте памяти согласно второму варианту осуществления.

Фиг.15 - внутренняя структура модуля 11 безопасной обработки.

Фиг.16 - подробная схема структуры области тома, снабженной защищенной областью.

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

Фиг.18 - иллюстративная схема защищенной области.

Фиг.19 - внутренняя структура модуля 2 управления доступом согласно третьему варианту осуществления.

Фиг.20А и 20В - последовательность обработки, осуществляемая при перезаписи очищаемого блока.

Фиг.21 - внутренняя структура модуля 9 операций файловой системы согласно третьему варианту осуществления.

Фиг.22 - подробная блок-схема обработки, осуществляемой модулем 9 операций файловой системы согласно третьему варианту осуществления.

Фиг.23А и 23В - процесс очистки, осуществляемый на очищаемом блоке согласно третьему варианту осуществления.

Фиг.24 - внутренняя структура модуля 2 управления доступом согласно четвертому варианту осуществления.

Фиг.25 - подробная блок-схема обработки, осуществляемой модулем 9 операций файловой системы согласно четвертому варианту осуществления.

Фиг.26А и 26В - процесс очистки, осуществляемой на очищаемом блоке согласно четвертому варианту осуществления.

Фиг.27А и 27В - причинно-следственная связь между фрагментацией и непроизводительными затратами при выдаче команды.

Фиг.28 - подробная блок-схема последовательности обработки для устранения фрагментации, осуществляемой по логическому адресу.

Фиг.29А-29D - модели, рассмотренные для каждой из переменных s, t, u, v и y, показанных на блок-схеме, изображенной на фиг.28.

Фиг.30А-30С показывают, как устраняют фрагментацию согласно пятому варианту осуществления.

Фиг.31 - новые расширенные атрибуты, заданные с использованием расширенного атрибута использования реализации в UDF.

Фиг.32 - внутренняя структура полупроводниковой карты памяти, снабженной дублирующей областью.

Фиг.33 - внутренняя структура полупроводниковой карты памяти согласно шестому варианту осуществления.

Фиг.34А-34С - содержание обработки, осуществляемой модулем 9 операций файловой системы согласно седьмому варианту осуществления.

Предпочтительные варианты осуществления изобретения

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

На фиг.2А показан внешний вид полупроводниковой карты 100 памяти, а на фиг.2В и 2С показаны внешние виды устройств доступа. На фиг.3А показана внутренняя структура полупроводниковой карты 100 памяти и устройства 200 доступа.

Полупроводниковая карта 100 памяти, изображенная на фиг.2А, имеет длину 32.0 мм, ширину 24.0 мм и толщину 2.1 мм: т.е. размерами сравнима с почтовой маркой и настолько мала, что пользователь может удерживать ее на кончике пальца. Полупроводниковая карта 100 памяти имеет девять разъемов для подключения к устройству 200 доступа, с одной стороны на ней установлен переключатель защиты записи, с помощью которого пользователь может разрешать или запрещать запись поверх записанных данных. Как показано в нижней части фиг.3А, полупроводниковая карта 100 памяти содержит энергонезависимую память 1, представляющую собой ЭППЗУ типа Не_И, модуль 2 управления доступом и оперативную память 3. Модуль 2 управления доступом записывает данные в энергонезависимую память 1, считывает данные из энергонезависимой памяти 1 и стирает данные в соответствии с командами, поступающими от устройства 200 доступа. Оперативная память 3 предназначена для временного хранения данных, считываемых из энергонезависимой памяти, перед повторной записью данных в энергонезависимую память.

Теперь опишем устройство 200 доступа, в качестве которого может выступать бытовая аудиосистема, изображенная на фиг.2В, или устройство обработки информации типа персонального компьютера, изображенного на фиг.2С. Такое устройство 200 доступа содержит разъем 4 под карту, вторичную память 5, ЦП 6 и первичную память 7. Разъем 4 под карту предназначен для подключения полупроводниковой карты 100 памяти. Вторичная память 5 предназначена для хранения разнообразного программного обеспечения, необходимого для обеспечения доступа к полупроводниковой карте 100 памяти. ЦП 6 осуществляет общее управление устройством 200 доступа. Первичная память 7 предназначена для временного хранения FAT и элемента корневого каталога при обращении к полупроводниковой карте 100 памяти. На фиг.3В изображена модель уровней для программного обеспечения, используемого в устройстве 200 доступа. Согласно чертежу, программное обеспечение устройства доступа содержит прикладную программу 8, модуль 9 операций файловой системы и драйвер 10 устройства. Прикладная программа 8 осуществляет обработку, например воспроизведение аудио- и видеоматериала, соответствующую назначению устройства 200 доступа. Модуль 9 операций файловой системы осуществляет операции считывания файлов, записи файлов, стирания файлов и изменения (перезаписи) файлов, предусмотренные файловой системой, в соответствии с предписаниями прикладной программы 8. Драйвер 10 устройства осуществляет операции файловой системы, выдавая полупроводниковой карте 100 памяти команды считывания и записи.

Теперь рассмотрим иллюстративный формат хранения данных в энергонезависимой памяти 1. Энергонезависимая память 1 осуществляет хранение данных в формате, показанном на фиг.4. На чертеже вся энергонезависимая память 1 представлена как область тома. Область тома делится на кластеры, которые являются элементарными областями, подлежащими управлению, и содержит область управления разделом и сам раздел (именуемый также регулярной областью). Раздел делится на системную область и пользовательскую область, что изображено в правой части фиг.4.

Начальный адрес пользовательской области следует сразу же после системной области. Однако размер дублированной FAT, хранящейся в системной области, зависит от размера пользовательской области, поэтому начальный адрес пользовательской области соответствующим образом меняется, как было объяснено в разделе “Уровень техники”. Каждый сектор области тома указан физическим адресом относительно начала области тома.

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

Область управления разделом содержит сектор головной загрузочной записи и таблицы разделов, а также области 1/2 и 2/2 резервной информации. На фиг.6А подробно показана структура сектора головной загрузочной записи и таблицы разделов. На чертеже содержимое сектора головной загрузочной записи и таблицы разделов показано в иерархическом порядке между двумя стрелками ky1. Сектор головной загрузочной записи и таблицы разделов содержит головную загрузочную запись, четыре таблицы разделов 1, 2, 3, 4 и сигнатурное слово.

Головная загрузочная запись это признак, указывающий устройству 200 доступа, что последующая область, с физической точки зрения, представляет собой единичный носитель (единичный физический носитель). Согласно фиг.6А, область тома содержит единственную головную загрузочную запись, в соответствии с чем, устройство 200 доступа распознает область тома как единичный физический носитель. Если бы в области тома присутствовали две головные загрузочные записи, то устройство 200 доступа распознавало бы два физических носителя.

Таблица разделов - это таблица, в которой записана информация по разделам. Как показывают стрелки ky2, когда полупроводниковая карта 100 памяти играет роль загрузочного диска, таблица разделов содержит следующие поля: “индикатор загрузки”, “начальная головка”, “начальный сектор/начальный цилиндр”, “ИД системы”, “конечная головка”, “конечный сектор/конечный цилиндр”, “количество секторов смещения” и “суммарное количество секторов”. Поле “индикатор загрузки” задают равным '0× 80'. Поле “начальная головка” задает начальную головку раздела. Поле “начальный сектор/начальный цилиндр” задает начальный сектор и начальный цилиндр раздела. Поле “ИД системы” задает тип файловой системы, и его задают равным '01', когда размер раздела меньше 32680 байт, и '04', когда размер раздела меньше 65536 байт. Поле “конечный сектор/конечный цилиндр” задает конечный сектор и конечный цилиндр раздела. Поле “количество секторов смещения” задает количество секторов, имеющих место перед начальным сектором раздела. Поле “суммарное количество секторов” задает количество секторов в области тома.

Теперь рассмотрим раздел полупроводниковой карты 100 памяти. Раздел состоит из системной области, после которой следует пользовательская область, но мы начнем с описания пользовательской области, ссылаясь на фиг.7С.

В пользовательской области файлы хранятся в элементарных областях хранения не меньших, чем кластер. Стрелка ff2 на фиг.7С показывает совокупность кластеров 002, 003, 004, 005,... , входящих в состав пользовательской области. Номера 002, 003, 004, 005, 006, 007, 008,... , используемые на фиг.7С, представляют собой трехзначные шестнадцатеричные номера кластеров, каждый из которых однозначно идентифицирует тот или иной кластер. Поскольку элементарной областью доступа является один кластер, позиции хранения в пользовательской области указывают с помощью номеров кластеров.

Системная область содержит загрузочный сектор раздела, дублированную таблицу размещения файлов и элемент корневого каталога. Рассмотрим загрузочный сектор раздела, дублированную FAT и элемент корневого каталога со ссылкой, соответственно, на фиг.6В, 7А и 7В.

В загрузочном секторе раздела установлен расширенный дескриптор КГД (контроллера дисководов гибких дисков), информационные поля которого показаны на фиг.6В. Расширенный дескриптор КГД содержит следующие поля: “команда перехода”, “создание идентификатора системы”, “размер сектора”, “количество секторов на кластер”, “счетчик резервных секторов”, “количество FAT” (количество FAT, входящих в состав дублированной FAT), “количество элементов корневого каталога” (длина данных элемента корневого каталога), “суммарное количество секторов”, “идентификатор носителя”, “количество секторов на FAT”, “количество секторов на дорожку”, “количество сторон”, “количество скрытых секторов”, “суммарное количество секторов” (суммарное количество секторов в системной области и пользовательской области), “номер физического диска”, “расширенная сигнатура загрузочной записи”, “ИД номер тома”, “метка тома”, “тип файловой системы” и “сигнатурное слово”.

Дублированная FAT состоит из двух FAT в соответствии со стандартом ISO/IEC (Международная организация по стандартизации/Международная электротехническая комиссия) 9293. Каждая FAT содержит совокупность элементов FAT, каждый из которых связан с кластером. Элемент FAT указывает, используется ли соответствующий кластер, и принимает значение, равное '0', если кластер не используется, или номеру соответствующего кластера, если этот кластер используется. Номер кластера указывает связь со следующим кластером, который следует считывать после данного кластера. Стрелка ff1 на фиг.7А показывает совокупность элементов 002, 003, 004, 005,... , образующих FAT. Числовые значения 002, 003, 004, 005,... , присвоенные каждому элементу FAT, указывают номер соответствующего кластера.

Элемент корневого каталога содержит совокупность файловых элементов для совокупности файлов, присутствующих в корневом каталоге. Каждый файловый элемент содержит “имя файла” для существующего файла, “идентификатор файла”, “номер первого кластера файла”, т.е. номер кластера, в котором хранится начало файла, “атрибут файла”, “время записи” и “дату записи”, указывающие, когда был записан файл, и “длину файла”.

Теперь опишем способ сохранения файла, показав, со ссылкой на фиг.8, как файл под именем “AOB001.SA1” сохраняют в корневом каталоге. Поскольку элементарной областью обращения в пользовательской области является один кластер, файл “AOB001.SA1” нужно сохранять в области данных в виде сегментов, не меньших, чем один кластер. Поэтому, при сохранении файл “AOB001.SA1” нужно сначала разбить на кластеры. Согласно фиг.8, файл “AOB001.SA1” разбивают на пять сегментов в соответствии с размером кластера, и полученные сегменты сохраняют в кластерах под номерами 003, 004, 005, 00А и 00С.

На фиг.9 показан один пример того, как нужно задавать элемент корневого каталога и FAT при сохранении файла “AOB001.SA1” путем разбиения его на сегменты. Согласно чертежу, начало файла “AOB001.SA1” сохраняют в кластере 003, поэтому номер кластера 003 записывают в поле “номер первого кластера файла” элемента корневого каталога, чтобы указать кластер, в котором хранится первый сегмент файла. Последующие сегменты файла “AOB001.SA1” сохраняют в кластерах 004 и 005. Таким образом, элемент FAT 003 (004) соответствующий кластеру 003, в котором хранится первый сегмент файла “AOB001.SA1”, указывает на кластер 004, в котором хранится следующий сегмент файла “AOB001.SA1”. Аналогично, элементы FAT 004 (005) и 005 (00А), соответственно, соответствуют кластерам 004 и 005, в которых хранятся следующие сегменты файла “AOB001.SA1”, эти элементы, соответственно, указывают на кластер 005 и на кластер 00А, в которых хранятся следующие сегменты файла “AOB001.SA1”. Считывая кластеры, номера которых записаны в этих элементах FAT, в порядке, указанном на фиг.9 стрелками fk1, fk2, fk3, fk4, fk5... , можно считать все сегменты, полученные разбиением файла “AOB001.SA1”. Как было объяснено выше, доступ к пользовательской области полупроводниковой карты 100 памяти осуществляют от кластера к кластеру, каждый из которых связан с тем или иным элементом FAT. Заметим, что элементу FAT, соответствующему кластеру, в котором хранится последний сегмент файла АОВ (в примере, показанном на фиг.9, это - кластер 00С) присваивают номер кластера 'FFF', чтобы показать, что в соответствующем кластере хранится последний сегмент файла.

Вышеприведенное объяснение представляет собой беглый обзор файловой системы энергонезависимой памяти 1, отвечающей настоящему изобретению. Теперь сосредоточимся на основных задачах, которые решают варианты осуществления, и перейдем к описанию того, как выравнивать границы кластеров и границы очищаемых блоков, иными словами, как выравнивать границу между системной областью и пользовательской областью с границей между двумя очищаемыми блоками. Для реализации этого выравнивания границ, варианты осуществления предусматривают два усовершенствования. Первое из них сводится к тому, что размер кластера задают равным 1/n-й размера очищаемого блока (n равно 1, 2, 4, 8, 16 или 32). На фиг.10А показано соотношение между очищаемыми блоками и кластерами. В данном случае, размер кластера равен 1/n размера очищаемого блока, т.е. 1/n от 16 КБ (1/n от 32 секторов). На фиг.10В показан случай n=1, a на фиг.10С - случай n=16.

Второе усовершенствование заключается в том, что для записи информации управления томом в области тома выделяют область, размер которой в m раз превышает размер кластера. На фиг.11А представлен случай, когда для записи информации управления томом, из s· n кластеров, входящих в состав s очищаемых блоков, выделяют m кластеров. Если для записи информации управления томом выделено m кластеров, то из s очищаемых блоков, информацией управления томом занято m/n очищаемых блоков, а остальные (s· n-m)/n очищаемых блоков выделено под пользовательскую область.

Задавая размер информации управления томом таким образом, чтобы он был в m раз больше размера кластера, информацию управления томом и s· n-m кластеров можно разместить так, что кластеры не перекрывают границы между двумя очищаемыми блоками.

На фиг.11В показано, сколько кластеров выделяется под информацию управления томом, когда n=1, а на фиг.11С показано, сколько кластеров выделяется под информацию управления томом, когда n=16. Из этих чертежей явствует, что при выделении области под информацию управления томом, множество кластеров точно умещается во множестве очищаемых блоков, так что ни один кластер не перекрывает границу между очищаемыми блоками. Подробная схема области тома, размер которой отрегулирован подобным образом, показана на фиг.5. Согласно чертежу, размер области управления разделом (в секторах) равен NOM, размер загрузочного сектора раздела (в секторах) равен RSC, размер дублированной FAT (в секторах) равен Size1× 2, размер элемента корневого каталога (в секторах) равен RDE, суммарное количество секторов равно TS и количество секторов в кластере равно SC.

Согласно фиг.5, размер Size1 отдельной FAT, входящей в состав дублированной FAT, определяют, исходя из суммарного размера секторов TS. Конкретнее, это значение вычисляют с помощью нижеприведенного уравнения (11).

Уравнение (11)

Для FAT12: Size1=(((((TS-(RSC+RDE))/SC)+2)× 12/8)+511)/512

Для FAT16: Size1=(((((TS-(RSC+RDE))/SC)+2)× 16/8)+511)/512

В данном случае, обозначение FAT12 указывает тип файловой системы, в которой под каждый элемент FAT выделено 12 бит, а FAT16 обозначает тип файловой системы, в которой под каждый элемент FAT выделено 16 бит.

В уравнении (11) выражение (TS-(RSC+RDE))/SC представляет количество кластеров, необходимое для записи, осуществляемой пользовательской областью. К этому числу прибавляют количество индикаторов 2, и полученное значение умножают на длину элемента FAT в битах (12 или 16), а затем делят на 8 для получения длины FAT в байтах. К результату этого вычисления прибавляют значение смещения, равное 511 байт, и полученное выражение делят на длину сектора в байтах, т.е. 512, чтобы вычислить количество секторов, необходимых для сохранения одной FAT. Если бы длина данных FAT была равна 1 байт, то (целочисленное) деление этой величины на 512 дало бы значение '0', т.е. количество секторов, выделенное под FAT было бы равно нулю. Поэтому, прибавляя значение смещения, 511, в уравнении 11, мы гарантируем, что вычисление Size1 даст, как минимум, один сектор.

Рассматривая фиг.5, следует отметить один важный момент, состоящий в том, что размер области управления разделом равен NOM. Значение NOM задают равным SC+α , и подбирают α так, чтобы область управления разделом и системная область размещались в разных кластерах. Значение NOM задают подобным образом, чтобы избежать сбоев при изменении кластеров в системной области из-за “набивки” в области управления разделом. Иными словами, если сектор головной загрузочной записи и таблицы разделов в области управления разделом будет поврежден в результате такого сбоя изменения, то устройство 200 доступа не сможет распознавать полупроводниковую карту 100 памяти, как пригодный к использованию носитель записи. Во избежание такого наихудшего сценария развития событий, значение NOM задают равным SC+α .

Значение SC+α задают следующим образом. Чтобы получить значение α , находят остаток целочисленного деления (RSC+RDE+Size1x2) на SC и вычитают полученную величину из SC. Таким образом, NOM вычисляют в соответствии с уравнением (12).

Уравнение (12)

NOM=(SC-(RSC+RDE+Size1× 2)%SC)+SC

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

Рассмотрим пример вычисления NOM и Size1, когда размер кластера, SC, равен 32 секторам (16 КБ), размер элемента корневого каталога, RDE, равен 32 секторам, размер загрузочного сектора раздела, RSC, равен 1 сектору, а суммарное количество секторов, TS, составляет 65600 секторов. Если дублированная FAT относится к типу FAT12, то Size1 находят из уравнения (11) следующим образом.

Size1=(((((TS-(RSC+RDE))/SC)+2)× 12/8)+511)/512=

=(((((65600-(1+32))/32+2)× 12/8)+511)/512=7 секторов.

Теперь, согласно уравнению (12), вычислим NOM.

NOM=(SC-(RSC+RDE+Size1× 2)%SC)+SC=

=(32-(1+32+7× 2)%32)+32=49 секторов.

На фиг.12 показаны область управления разделом, системная область и кластеры в соответствии с вычисленными размерами. Сектор головной загрузочной записи и таблицы разделов и резервная информация 1/2 размещаются в секторах PSN000-PSN031, а резервная информация 2/2, загрузочный сектор раздела и дублированная FAT размещаются в секторах PSN032-PSN063. Элемент корневого каталога размещен в секторах PSN064-PSN095. Один очищаемый блок области тома состоит из 32 секторов, поэтому головная загрузочная запись, таблица разделов и резервная информация 1/2 размещаются в первом очищаемом блоке 001, резервная информация 2/2, загрузочный сектор раздела и дублированная FAT размещаются во втором очищаемом блоке 002, и элемент корневого каталога размещается в третьем очищаемом блоке 003. Элемент корневого каталога хранится в очищаемом блоке того же размера, поэтому граница между пользовательской областью и системной областью совпадает с границей между очищаемыми блоками.

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

На этапе S1 модуль 9 операций файловой системы определяет размер кластера в соответствии с размером области, подлежащей форматированию (TS), и суммарной емкостью памяти полупроводниковой карты 100 памяти, операционной системой, используемой устройством 200 доступа, и предписаниями пользователя.

После того, как определен размер кластера, на этапе S2 модуль 9 операций файловой системы, на основании размера кластера SC и суммарного количества секторов TS, выбирает для использования файловую систему FAT12 или FAT16. После того как определена необходимая файловая система, FAT12 или FAT16, на этапе S3 модуль 9 операций файловой системы определяет длину RDE элемента корневого каталога (согласно рассматриваемым вариантам осуществления, длина RDE имеет фиксированное значение 32 сектора), после чего, на этапе S4, определяет длину RSC загрузочного сектора раздела (согласно рассматриваемым вариантам осуществления, длина RSC имеет фиксированное значение 1 сектор). После того, как определены RDE и RSC, модуль 9 операций файловой системы, с помощью уравнения (11), вычисляет длину данных FAT на этапе S5. Затем, на этапе S6, модуль 9 операций файловой системы, с помощью уравнения (12), находит такое значение NOM, при котором головная загрузочная запись и загрузочный сектор раздела располагаются в разных кластерах.

Обработка, осуществляемая на вышеупомянутых этапах S5 и S6 полностью отвечает ранее описанным уравнениям (11) и (12). Однако обработка, осуществляемая на этапах S7 и S8, упоминается в данной блок-схеме впервые. На этапе S7 модуль 9 операций файловой системы вычисляет количество кластеров CN в пользовательской области с помощью уравнения (13).

Уравнение (13)

CN=(TS-(RSC+RDE+Size1× 2+NOM))/SС

На этапе S8 модуль 9 операций файловой системы повторно вычисляет длину данных FAT, с помощью уравнения (14).

Уравнение 14

Для FAT12: Size2=(((CN+2)× 12/8+511)/512

Для FAT16: Size2=(((CN+2)× 16/8+511)/512

На этапе S9 модуль 9 операций файловой системы сравнивает Size1, полученный на этапе S5, и Size2, полученный на этапе S8, и, если эти два значения совпадают, заканчивает обработку. Если же эти значения не совпадают, то модуль 9 операций файловой системы, на этапе S10, заменяет значение Size1 значением Size2, переходит к этапу S6 и повторно вычисляет NOM. Поскольку, в результате замены Size1 имеет другое значение, то вычисление, повторно производимое на этапе S6, может дать другой результат. После этого модуль 9 операций файловой системы повторно вычисляет Size2 на этапе S8, исходя из вновь вычисленного значения NOM, и, если на этапе S9 оказывается, что Size1 и Size2 равны между собой, заканчивает обработку.

Значение NOM, вычисленное с использованием вышеозначенной процедуры, помещают в поле “количество секторов смещения” таблицы разделов, указывающее количество секторов, находящихся перед начальным сектором раздела, а значение TS помещают в поле “суммарное количество секторов” таблицы разделов.

Значение SC помещают в поле “количество секторов на кластер” таблицы разделов, указывающее количество секторов в каждом кластере. Кроме того, значение RDE, указывающее количество секторов, умножают на длину сектора, равную 512 байтам, после чего делят на 32, чтобы получить количество файловых элементов, и это число помещают в поле “количество элементов корневого каталога” загрузочного сектора раздела. Значение Size1 помещают в поле “количество секторов на FAT” загрузочного сектора раздела, указывающее количество секторов в каждой FAT. Устройство 200 доступа обращается к этим значениям, заданным в таблице разделов и загрузочном секторе раздела, при выделении места для дублированной FAT, элемента корневого каталога и пользовательской области.

На этом объяснения, касающиеся блок-схемы, изображенной на фиг.13, закончены. Теперь рассмотрим пример вычислений, иллюстрирующий, как вычисляют размер области раздела и системной области, когда TS равно 65568.

На основании значения TS, равного 65568, на этапе S1 модуль 9 операций файловой системы задает размер кластера равным 32 секторам. После того, как определено, что размер кластера равен 32 секторам, на этапе S2 модуль 9 операций файловой системы, исходя из размера кластера SС и суммарного количества кластеров ТS, определяет что надлежит использовать файловую систему FAT12. Согласно рассматриваемым вариантам осуществления, размеры RDE и RSC имеют фиксированные значения, соответственно, 32 сектора и 1 сектор, поэтому вычисления на этапах S3 и S4 не производят. На этапе S5 модуль 9 операций файловой системы находит длину данных FAT из уравнения (11). Поскольку, в данном случае, FAT представляет собой FAT12, используют следующий вариант расчета

Size1=(((((TS-(RSC+RDE))/SC)+2)× 12/8)+511) /512=(((((65568-(1+32))/32)+2)× 12/8)+511)/512=7 секторов

После того, как вычислен Size1, на этапе S6 модуль 9 операций файловой системы, с помощью уравнения (12), находит такое значение NOM, при котором головная загрузочная запись и загрузочный сектор раздела располагаются в разных кластерах.

NOM=(SC-(RSC+RDE+Size1× 2)%SC)+SC=

=(32-(1+32+7× 2)%32)+32=49 секторов.

После того, как вычислен NOM, модуль 9 операций файловой системы на этапе S7 вычисляет количество кластеров в пользовательской области с помощью уравнения (13)

CN=(TS-(RSC+RDE+Size1× 2+NOM))/SC=

=(65568-(1+32+7× 2+49))/32=2046 кластеров.

На этапе S8 модуль 9 операций файловой системы повторно вычисляет длину данных FAT с помощью уравнения (14).

Для FAT12: Size2=(((CN+2)× 12/8)+511)/512=

=(((2046+2)× 12/8)+511)/512=6 секторов.

На этапе S9 модуль 9 операций файловой системы сравнивает Size1, вычисленный на этапе S5, и Size2, вычисленный на этапе S8. В данном случае, Size1 равен 7 секторам, a Size2 равен 6 секторам.

Поскольку эти значения не равны друг другу, то модуль 9 операций файловой системы возвращается к этапу S6 и повторно вычисляет NOM.

NOM=(SC-(RSC+RDE+Size1× 2)%SC)+SC=

=(32-(1+32+6× 2)%32)+32=51 сектор.

После того, как вычислен NOM, на этапе S7 модуль 9 операций файловой системы вычисляет количество кластеров в регулярной области.

CN=(TS-(RSC+RDE+Size1× 2+NOM))/SC=

=(65568-(1+32+6× 2+49))/32=2046 кластеров. На этапе S8 вычисляют длину данных FAT. Для FAT12: Size2=(((CN+2)× 12/8)+511)/512=

=(((2046+2)× 12/8)+511)/512=6 секторов.

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

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

Второй вариант осуществления

Согласно второму варианту осуществления, в области тома выделяют область, предназначенную для доступа со стороны обычного пользователя (область пользовательских данных), и область, предназначенную для хранения защищенных данных (защищенную область). На фиг.14 показана структура устройства 200 доступа и полупроводниковой карты 100 памяти в соответствии со вторым вариантом осуществления. Внутренняя структура, показанная на чертеже, отличается от показанной на фиг.3А тем, что энергонезависимая память 1 содержит защищенную область, и, кроме того, полупроводниковая карта 100 памяти и устройство 200 доступа снабжены, соответственно, модулями 11 и 12 защищенной обработки.

Теперь рассмотрим модуль 11 защитной обработки, предусмотренный для осуществления защищенного считывания из защищенной области энергонезависимой памяти 1 и защищенной записи в нее. Согласно фиг.15, модуль 11 защищенной обработки содержит системную область 13, скрытую область 14, модуль 15 ОПК, модуль 16 Ks-дешифровки и модуль 17 Ks-шифровки.

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

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

Модуль 15 ОПК (опознавания и передачи ключа) осуществляет взаимное опознавание устройства 200 доступа и полупроводниковой карты 100 памяти методом вызова-ответа, проверяет подлинность ответного устройства и, если ответное устройство непригодно, останавливает процедуру. Если же ответное устройство пригодно, то устройство 200 доступа и полупроводниковая карта 100 памяти получают возможность совместного использования шифровального ключа (ключа сеанса Ks). Устройство 200 доступа производит опознавание в три этапа. Сначала, на этапе первого вызова, устройство 200 доступа генерирует случайное число, шифрует случайное число с помощью шифровального ключа Kmu и передает зашифрованное случайное число полупроводниковой карте 100 памяти в качестве вызывного значения А. Затем, на этапе первого ответа, полупроводниковая карта 100 памяти использует хранящийся в ней шифровальный ключ Kmu для дешифровки вызывного значения А и передает дешифрованное значение устройству 200 доступа в качестве ответного значения В. После этого, на этапе первой проверки, устройство 200 доступа дешифрует хранящееся в нем вызывное значение А с помощью своего шифровального ключа Kmu и сравнивает дешифрованное значение с ответным значением В, полученным от полупроводниковой карты 100 памяти.

Полупроводниковая карта 100 памяти также производит опознавание в три этапа. Сначала, на этапе второго вызова, полупроводниковая карта 100 памяти генерирует случайное число, шифрует случайное число с помощью шифровального ключа Kmu и передает зашифрованное случайное число устройству 200 доступа в качестве вызывного значения С. Затем, на этапе второго ответа, устройство 200 доступа использует хранящийся в нем шифровальный ключ Kmu для дешифровки вызывного значения С и передает дешифрованное значение полупроводниковой карте 100 памяти в качестве ответного значения D. После этого, в этапе второй проверки, полупроводниковая карта 100 памяти дешифрует хранящееся в ней вызывное значение С с помощью шифровального ключа Kmu и сравнивает дешифрованное значение с ответным значением D, полученным от устройства 200 доступа.

Если устройство 200 доступа использует для осуществления взаимного опознавания непригодный шифровальный ключ Kmu, то на этапе первой проверки будет установлено, что вызывное значение А не совпадает с ответным значением В, а на этапе второй проверки будет установлено, что вызывное значение С не совпадает с ответным значением D, и на этом процедура взаимного опознавания прекратится. В случае подтверждения подлинности опознающих друг друга устройств, модуль 15 ОПК осуществляет логическую операцию “Исключающее ИЛИ” над вызывным значением А и ответным значением С и получает ключ сеанса Кs, дешифровав результат операции “Исключающее ИЛИ” с помощью шифровального ключа Kmu.

Когда устройство 200 доступа, к которому подключена полупроводниковая карта 100 памяти, выводит зашифрованные данные, подлежащие записи в защищенную область, модуль 16 Ks-дешифровки использует ключ сеанса Ks для дешифровки этих данных, которые были зашифрованы с помощью ключа сеанса Ks до того, как были выведены. Данные, полученные в результате такой дешифровки, записывают в защищенную область в качестве исходных данных.

Модуль 17 Ks-шифровки принимает от устройства 200 доступа, к которому подключена полупроводниковая карта 100 памяти, команду на считывание данных, шифрует данные, хранящиеся в защищенной области, с помощью ключа сеанса Ks, после чего выводит зашифрованные данные на устройство 200 доступа. Считывание данных из защищенной области и запись данных в нее осуществляют после дешифровки, произведенной модулем 16 Ks-дешифровки, и шифровки, произведенной модулем 17 Ks-шифровки, поэтому доступ к защищенной области возможен только после того, как полупроводниковая карта 100 памяти и подключенное к ней устройство 200 доступа успешно завершили операцию ОПК.

Теперь опишем формат области тома согласно второму варианту осуществления, со ссылкой на фиг.16, где изображена подробная схема области тома, в состав которой включена защищенная область. Согласно схеме, если суммарный размер области тома равен “Размер_тома”, то под область пользов44444441ательских данных выделяют область, размер которой равен “Размер тома× (1-β )”, и которая начинается с начала области тома, а под защищенную область выделяют область, размер которой равен “Размер тома× β ”, следующую после области пользовательских данных. В данном случае β представляет собой величину, минимальное значение которой равно 0.01. Пусть, например, размер тома равен 64 МБ, а β равно 0.01. Тогда размер защищенной области составляет 640 КБ. Формат области пользовательских данных и защищенной области реализуется тогда, когда модуль 9 операций файловой системы выполняет процедуру инициализации, представленную на фиг.9.

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

Исходя из значения TS, равного 124160, модуль 9 операций файловой системы определяет на этапе S1, что размер кластера равен 32 секторам. После того, как определено, что размер кластера равен 32 секторам, на этапе S2 модуль 9 операций файловой системы, на основании размера кластера SC и суммарного количества секторов TS, определяет, что надлежит использовать файловую систему FAT12. В рассматриваемых вариантах осуществления размеры RDE и RSC имеют фиксированные значения, соответственно, 32 секторов и 1 сектор, поэтому вычисления на этапах S3 и S4 не производят. На этапе S5 модуль 9 операций файловой системы вычисляет длину данных FAT с помощью уравнения (11). Поскольку, в данном случае, FAT представляет собой FAT12, выполняют следующие вычисления.

Size1=(((((TS-(RSC+RDE))/SC)+2)× 12/8)+511)/512=(((((124160-(1+32))/32)+2)× 12/8)+511)/512=12 секторов.

После того, как вычислен Size1, на этапе S6 модуль 9 операций файловой системы, с помощью уравнения (12), находит такое значение NOM, при котором головная загрузочная запись и загрузочный сектор раздела располагаются в разных кластерах

NOM=(SC-(RSC+RDE+Size1× 2)%SC)+SC=

=(32-(1+32+12× 2)%32)+32=39 секторов.

После того, как вычислен NOM, модуль 9 операций файловой системы на этапе S7 вычисляет количество кластеров в пользовательской области с помощью уравнения (13)

CN=(TS-(RSC+RDE+Size1× 2+NOM))/SC=

=(124160-(1+32+12× 2+39))/32=3877 кластеров.

На этапе S8 модуль 9 операций файловой системы повторно вычисляет длину данных FAT с помощью уравнения (14).

Для FAT12: Size2=(((CN+2)× 12/8)+511)/512=

=(((3877+2)× 12/8)+511)/512==12 секторов.

На этапе S9 модуль 9 операций файловой системы сравнивает Size1, вычисленный на этапе S5, и Size2, вычисленный на этапе S8. В данном случае, оба вычисленных значения, Size1 и Size2, равны 12 секторам, из чего следует, что эти значения одинаковы, и процедура, представленная блок-схемой, завершается.

Схема области пользовательских данных, в которой размеры системной области и области управления разделом установлены в соответствии с TS, Size1 и NOM, полученными путем вышеприведенных вычислений, показана на фиг.17. Сравнив эту фигуру с фиг.12, можно увидеть, что, поскольку размер дублированной FAT увеличился с 14 до 24 секторов, а размер резервной информации 2/2 уменьшился с 17 до 7 секторов, то область управления разделом и системная область, по прежнему, точно умещаются в три очищаемых блока.

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

Исходя из значения TS, равного 1280, модуль 9 операций файловой системы на этапе S1 определяет, что размер кластера равен 2 секторам (1 КБ памяти, т.е. всего лишь 1/16 размера кластера в области пользовательских данных). После того, как определено, что размер кластера равен 2 секторам, на этапе S2 модуль 9 операций файловой системы, на основании размера кластера SС и суммарного количества секторов ТS, определяет, что надлежит использовать файловую систему FAT12. Согласно рассматриваемым вариантам осуществления, размеры RDE и RSC имеют фиксированное значение, соответственно, 32 сектора и 1 сектор, поэтому вычисления на этапах S3 и S4 не производят. На этапе S5 модуль 9 операций файловой системы вычисляет длину данных FAT с помощью уравнения (11). Поскольку, в данном случае, FAT представляет собой FAT12, выполняют следующие вычисления.

Size1=(((((TS-(RSC+RDE))/SС)+2)× 12/8)+511)/512=

=(((((1280-(1+32))/2)+2)× 12/8)+511)/512=2 сектора.

После того, как вычислен Size1, на этапе S6 модуль 9 операций файловой системы, с помощью уравнения (12), находит такое значение NOM, при котором головная загрузочная запись и загрузочный сектор раздела располагаются в разных кластерах.

NOM=(SC-(RSC+RDE+Size1× 2)%SC)+SC=

=(2-(1+32+2× 2)%2)+2=3 сектора.

После того, как вычислен NOM, модуль 9 операций файловой системы на этапе S7 вычисляет количество кластеров в пользовательской области с помощью уравнения (13)

CN=(TS-(RSC+RDE+Size1× 2+NOM))/SC=

=(1280-(1+32+2× 2+3))/2=620 кластеров.

На этапе 38 модуль 9 операций файловой системы повторно вычисляет длину данных FAT с помощью уравнения (14). Для FAT12: Size2=(((CN+2)× 12/8)+511)/512=(((620+2)× 12/8)+511)/512=2 сектора.

На этапе S9 модуль 9 операций файловой системы сравнивает Size1, вычисленный на этапе S5, и Size2, вычисленный на этапе S8. В данном случае, оба вычисленных значения, Size1 и Size2, равны 2 секторам, откуда следует, что эти значения одинаковы, и процедура, представленная блок-схемой, завершается.

Схема защищенной области, в которой размеры системной области и области управления разделом установлены в соответствии с TS, Size1 и NOM, полученными путем вышеприведенных вычислений, показана на фиг.18. Согласно рассматриваемым вариантам осуществления, как область пользовательских данных, так и защищенная область содержит область управления разделом, системную область и пользовательскую область, поэтому устройство 200 доступа обращается к каждой из этих двух областей как к независимому физическому носителю. Таким образом, хотя область пользовательских данных и защищенная область характеризуются разным размером кластера, границы кластеров в области пользовательских данных и в защищенной области можно выравнивать с границами очищаемых блоков.

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

Третий вариант осуществления

Третий вариант осуществления предусматривает усовершенствованную процедуру стирания данных, хранящихся в очищаемых блоках, управление которыми осуществляют посредством логических адресов и физических адресов. На фиг.19 изображена структура модуля 2 управления доступом в соответствии с третьим вариантом осуществления. Согласно чертежу, модуль 2 управления доступом содержит модуль 21 декодирования команд, модуль 22 преобразования логического/физического адреса, модуль 23 управления считыванием, модуль 24 изменения выделения, модуль 25 управления записью, модуль 26 управления очисткой и модуль 27 управления изменением.

Модуль 21 декодирования команд принимает команду, выданную устройством 200 доступа, и восстанавливает исходное содержание команды на момент выдачи. Получив команду считывания, модуль 21 декодирования команд предписывает модулю 23 управления считыванием считать данные из энергонезависимой памяти 1 (Считать). Получив команду записи, модуль 21 декодирования команд предписывает модулю 25 управления записью записать данные в энергонезависимую память 1 (Записать). Если полученная команда записи задает в качестве цели доступа неочищенный блок, то модуль 21 декодирования команд предписывает модулю 27 управления изменением изменить (перезаписать) данные, хранящиеся в энергонезависимой памяти 1 (Изменить). Получив команду получения статуса, модуль 21 декодирования команд предписывает модулю 24 изменения выделения считать (описанный ниже) список очищенных блоков. Получив команду очистки, модуль 21 декодирования команд предписывает модулю 24 изменения выделения очистить заданный очищаемый блок.

Модуль 22 преобразования логического/физического адреса содержит таблицу соответствия адресов, которая устанавливает соответствие между логическими и физическими адресами очищаемых блоков. Получив от устройства 200 доступа логический адрес доступа, модуль 22 преобразования логического/физического адреса обращается к таблице соответствия адресов, находит там физический адрес, соответствующий указанному логическому адpecу, и выводит найденный физический адрес на модуль 23 управления считыванием, модуль 24 изменения выделения и модуль 27 управления изменением.

Когда устройство 200 доступа выдает команду считывания, модуль 23 управления считыванием осуществляет управление таким образом, чтобы устройство 200 доступа могло считать данные, хранящиеся по адресу считывания, заданному командой считывания.

Модуль 24 изменения выделения поддерживает список очищенных блоков, в котором физические адреса очищаемых блоков, которые были очищены, организованы в формате “первым вошел, первым вышел” (FIFO). Когда устройство 200 доступа выдает команду записи, модуль 24 изменения выделения проверяет в списке очищенных блоков наличие физического адреса, соответствующего логическому адресу записи. В случае наличия такого физического адреса, модуль 24 изменения выделения выводит физический адрес на модуль 25 управления записью и удаляет этот физический адрес из списка очищенных блоков. Если соответствующий физический адрес указывает на очищаемый блок, который еще не очищен, то модуль 24 изменения выделения выделяет логическому адресу записи физический адрес, находящийся в начале списка очищенных блоков, и передает выделенный физический адрес модулю 25 управления записью, а физический адрес, который был ранее выделен логическому адресу записи, добавляет в конец списка очищенных блоков. Если устройство 200 доступа выдает команду получения статуса, то модуль 24 изменения выделения, с помощью таблицы соответствия адресов, заменяет физические адреса, указанные в списке очищенных блоков, на логические адреса и выводит на устройство 200 доступа список очищенных блоков, в котором они указаны посредством логических адресов. Если устройство 200 доступа выдает команду очистки с указанием логического адреса, то модуль 24 изменения выделения определяет физический адрес, соответствующий этому логическому адресу, и добавляет его в список очищенных блоков.

Модуль 25 управления записью, при поступлении команды записи, предписывающей записать блок, записывает данные в энергонезависимую память 1 по физическому адресу, полученному от модуля 24 изменения выделения.

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

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

В исходном состоянии, показанном на фиг.20А, данные хранятся в блоках, обозначенных штриховкой (с физическими адресами 001, 002, 004, 007-015), а остальные блоки 003, 005 и 006 очищены. Физические адреса очищенных блоков помещены в список очищенных блоков. Согласно таблице соответствия адресов, устанавливающей соответствие между логическими и физическими адресами, логические адреса 001, 002, 003, 004 и 005 отвечают, соответственно, физическим адресам 001, 002, 003, 004 и 005.

Пусть, например, устройство 200 доступа выдает команду записи, в которой указан логический адрес 001 очищаемого блока, в который нужно записать новое значение. Тогда модуль 21 управления изменением переносит данные, ранее записанные в блок, указанный логическим адресом 001, из энергонезависимой памяти 1 в оперативную память 3 (см. стрелку Считать на фиг.20А). Затем, модуль 27 управления изменением изменяет данные, загруженные в оперативную память 3 (см. стрелку Изменить на фиг.20А) из блока, указанного логическим адресом 001.

Затем, согласно фиг.20В, модуль 27 управления изменением считывает [получает от модуля 24 изменения выделения] физический адрес 003, находящийся в начале списка очищенных блоков, что отражено стрелкой BN1, и записывает измененные данные в блок, указанный физическим адресом 003, что отражено стрелкой Записать. Затем, согласно фиг.20С, модуль 24 изменения выделения помещает физический адрес 001, указывающий блок, подлежащий очистке, в список очищенных блоков, как показано стрелкой .

Наконец, модуль 24 изменения выделения изменяет график соответствия между логическими адресами и физическими адресами, как показано на фиг.20D. В данном случае, физический адрес 003 выделяют логическому адресу 001, а физический адрес 001 выделяют логическому адресу 003. Таким образом, перезаписать данные по логическому адресу 001 можно, записав данные по физическому адресу 003 и изменив график соответствия между логическими и физическими адресами.

Продолжим рассмотрение внутренней структуры устройства 200 доступа. На фиг.21 показана внутренняя структура модуля 9 операций файловой системы, входящего в состав устройства 200 доступа, согласно третьему варианту осуществления. Модуль 9 операций файловой системы, показанный на чертеже, содержит модуль 28 удаления файлов и модуль 29 управления упреждающей очисткой.

Модуль 28 удаления файлов удаляет файлы путем обновления FAT, считанной в первичную память 7, и записи обновленной FAT в полупроводниковую карту 100 памяти. Если прикладная программа 8 предписывает удалить файл, то модуль 28 удаления файлов выполняет удаление файла, задавая элементы FAT, соответствующие кластерам, в которых хранятся сегменты этого файла, равными '0', указывая тем самым, что эти кластеры не используются. Однако, при этом, кластеры (очищаемые блоки), в которых хранятся сегменты файла, не обязательно возвращаются в пустое состояние, поэтому, прежде чем записать в те же кластеры другой файл, эти кластеры нужно очистить. В результате, чем больше требуется удалять старые файлы и записывать новые файлы, тем больше времени отнимают операции очистки.

Модуль 29 управления упреждающей очисткой, выдав полупроводниковой карте 100 памяти команду получения статуса, предписывающую ей считать список свободной очищенной памяти (список очищенных блоков), ожидает предписаний прикладной программы 8. После того как команда выдана, и список свободной очищенной памяти выведен, модуль 29 управления упреждающей очисткой принимает выведенный список свободной очищенной памяти и сравнивает его с FAT, чтобы выявить очищаемые блоки, соответствующие кластерам, заданным в FAT как неиспользуемые. (Когда один очищаемый блок содержит совокупность кластеров, можно выявлять только те очищаемые блоки, которые образованы исключительно неиспользуемыми кластерами). Затем, среди этих очищаемых блоков, выявляют блоки, которые не указаны в списке очищенных блоков. Выявленные блоки представляют собой очищаемые блоки, которые не используются, но все еще не очищены, и модуль 29 управления упреждающей очисткой выдает полупроводниковой карте 100 памяти команду очистки, предписывающую очистить эти блоки. Команда очистки содержит логический адрес и предписание добавить физический адрес, соответствующий этому логическому адресу, к списку очищенных блоков. При добавлении физического адреса к списку очищенных блоков по такой команде очистки, блок, указанный в этой команде очистки, очищают таким же образом, как и другие неочищенные неиспользуемые блоки, когда модуль 26 управления очисткой осуществляет опрос. Все неочищенные неиспользуемые блоки проходят одну и ту же процедуру. Блок-схема, изображенная на фиг.22, помогает подробно описать работу модуля 29 управления упреждающей очисткой.

Согласно данному варианту осуществления, после активации, модуль 29 управления упреждающей очисткой осуществляет цикл, содержащий этапы S21, S22. На этапе S21 модуль 29 управления упреждающей очисткой проверяет, поступила ли от прикладной программы 8 команда доступа, а на этапе S22 определяет, истек ли определенный период опроса. Если команда от прикладной программы 8 поступила, то модуль 29 управления упреждающей очисткой переходит к этапу S23 и осуществляет операцию файловой системы и доступ к полупроводниковой карте 100 памяти, в соответствии с командой. Если определенный период опроса истек, то модуль 29 управления упреждающей очисткой переходит от этапа S22 к этапу S24 и выдает на полупроводниковую карту 100 памяти команду получения статуса, чтобы считать список очищенной свободной памяти. После этого, на этапе S25, модуль 29 управления упреждающей очисткой ожидает поступления списка очищенных блоков. Считав список очищенных блоков, модуль 29 управления упреждающей очисткой, на этапе S26, выявляет логические адреса всех очищаемых блоков, которые образованы кластерами, указанными в FAT как неиспользуемые, и которые отсутствуют в списке очищенных блоков.

На этапе S27 модуль 29 управления упреждающей очисткой проверяет наличие неиспользуемых очищаемых блоков, которые еще не очищены, и, если таких блоков нет, возвращается к циклу, содержащему этапы S21 и S22. Если такие блоки существуют, то модуль 29 управления упреждающей очисткой осуществляет цикл, содержащий этапы S28-S30. Иными словами, модуль 29 управления упреждающей очисткой выдает полупроводниковой карте 100 памяти команды очистки, обуславливающие стирание данных по каждому из физических адресов, указывающих неиспользуемые, но еще не очищенные очищаемые блоки, выявленные на этапе S26. В соответствии с этими командами, физические адреса всех этих блоков попадают в список очищенных блоков, а значит, эти блоки подлежат очистке.

Теперь проиллюстрируем работу модуля 29 управления упреждающей очисткой на примере, приведенном на фиг.2ЗА и 23В. В исходном состоянии, показанном на фиг.23А, очищаемый блок по адресу 0001 указан в FAT как используемый, и физические адреса 0003, 0005 и 0006 помещены в список очищенных блоков как адреса очищенных блоков. Данные хранятся в блоках энергонезависимой памяти, которые обозначены на чертеже штриховкой (адреса 0000, 0001, 0002, 0004). Если, при этом, от прикладной программы 8 не поступает предписаний, то, по истечении определенного периода опроса (этап S21 - Нет, этап S22 - Да), модуль 9 операций файловой системы, входящий в состав устройства 200 доступа, считывает список очищенных блоков, для чего выдает полупроводниковой карте 100 памяти команду получения статуса (этап S24), и сравнивает считанный список очищенных блоков с FAT (этап S25). Такое сравнение позволяет выявить блоки, которые указаны в FAT как неиспользуемые, и чьи логические адреса отсутствуют в списке очищенных блоков (очищаемые блоки с адресами 0000, 0002, 0004). Поскольку эти блоки не используются, то модуль 9 операций файловой системы выдает полупроводниковой карте 100 памяти команды очистки, чтобы очистить эти очищаемые блоки (этапы S28-S30). Таким образом, адреса 0000, 0002 и 0004 попадают в список очищенных блоков, как показано на фиг.23В, следствием чего является очистка блоков, указанных этими адресами.

Согласно вышеописанному варианту осуществления, устройство 200 доступа считывает список очищенных блоков из полупроводниковой карты 100 памяти и сравнивает FAT со считанным списком очищенных блоков, выявляя неиспользуемые очищаемые блоки, которые еще не очищены, в результате чего, предписывает полупроводниковой карте 100 памяти очистить эти блоки. Таким образом, модуль 9 операций файловой системы может очищать неиспользуемые очищаемые блоки, которые еще не очищены, в промежутках между выполнением предписаний прикладной программы 8, что позволяет более эффективно осуществлять очистку неиспользуемых блоков.

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

Согласно данному варианту осуществления, устройство 200 доступа считывает из полупроводниковой карты 100 памяти список очищенных блоков и выявляет блоки, которые не используются, но еще не очищены. Однако модуль 26 управления очисткой, входящий в состав модуля 2 управления доступом, входящего в состав полупроводниковой карты 100 памяти, может, обращаясь к FAT, сам выявлять блоки, которые являются неиспользуемыми и, одновременно, неочищенными, а затем очищать эти блоки. В данном случае, модуль 2 управления доступом заменяет физические адреса, входящие в список очищенных блоков, логическими адресами и передает замененные адреса устройству 200 доступа. Однако устройству 200 доступа можно передавать список очищенных блоков в совокупности с таблицей соответствия адресов, и производить замену физических адресов логическими адресами на устройстве 200 доступа. Стирание данных можно осуществлять при удалении файла или параллельно выполнению другой команды. Кроме того, вместо списка очищенных блоков, в котором указаны физические адреса очищенных блоков, можно использовать другую информацию, например, список неочищенных блоков, в котором указаны физические адреса неочищенных очищаемых блоков. Данный вариант осуществления описан применительно к FAT, но информацию можно хранить в виде списка или в ином аналогичном формате.

Четвертый вариант осуществления

Четвертый вариант осуществления предусматривает усовершенствование третьего варианта осуществления, заключающееся в использовании таблицы очистки блоков вместо списка очищенных блоков. На фиг.24 показана внутренняя структура устройства 200 доступа согласно четвертому варианту осуществления. Если эту фигуру сравнить с фиг.19, то можно заметить, что список очищенных блоков заменен таблицей очистки блоков. Таблица очистки блоков, согласно четвертому варианту осуществления, состоит из элементов, соответствующих каждому очищаемому блоку. Если блок очищен, то соответствующий элемент принимает значение '1', а если блок не очищен, то соответствующий элемент принимает значение '0'. В таблице очистки блоков состояние очистки каждого очищаемого блока указано значением '1' или '0'.

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

Когда устройство 200 доступа генерирует команду записи, модуль 25 управления записью, согласно четвертому варианту осуществления, обращается к таблице очистки блоков и проверяет, очищен ли блок по адресу записи, и является ли этот блок неиспользуемым. Если блок, в который надлежит произвести запись, является неиспользуемым блоком, то модуль 25 управления записью предписывает модулю 26 управления очисткой стереть данные из этого блока, а потом записывает в этот блок новые данные. Иными словами, модуль 25 управления записью, согласно четвертому варианту осуществления, сначала стирает данные, а затем записывает данные.

Теперь рассмотрим работу модуля 29 управления упреждающей очисткой, согласно четвертому варианту осуществления. Модуль 29 управления упреждающей очисткой осуществляет очистку очищаемых блоков, когда не занят выполнением предписаний прикладной программы 8. Процедура очистки аналогична описанной в третьем варианте осуществления и представлена блок-схемой, изображенной на фиг.25. Эта блок-схема идентична изображенной на фиг.22 за исключением того, что слова “список очищенных блоков” заменены словами “таблица очистки блоков”, и, поскольку в контексте нет заметных изменений, подробное описание блок-схемы мы опустим. Теперь рассмотрим работу модуля 29 управления упреждающей очисткой на примере, приведенном на фиг.26А и 26В.

В исходном состоянии, показанном на фиг.26А, блок с адресом 0001 указан как используемый блок, а блоки с адресами 0003, 0005 и 0006 указаны в таблице очистки блоков, как блоки, из которых удалены данные. Данные хранятся в блоках энергонезависимой памяти, которые обозначены на чертеже штриховкой (адреса 0000, 0001, 0002, 0004). Если, в этом исходном состоянии, существуют блоки, которые не используются, но содержат данные, то, при наличии команды записи, предписывающей запись данных в эти неиспользуемые блоки, необходима операция стирания данных. Согласно данному варианту осуществления, если модуль 29 управления упреждающей очисткой ожидает предписаний прикладной программы 8, то, по истечении определенного периода опроса (этап S21 - Нет, этап S22 - Да), модуль 29 управления упреждающей очисткой считывает таблицу очистки блоков, выдавая полупроводниковой карте 100 памяти команду получения статуса (этап S24) и сравнивает таблицу очистки блоков с FAT (этап S25). Это сравнение позволяет выявить блоки, которые указаны в FAT как неиспользуемые, и чьи логические адреса не помечены в таблице очищенных блоков (очищаемые блоки с адресами 0000, 0002, 0004) (этап S26). Согласно фиг.26, значение '0' присвоено в FAT и в таблице очищенных блоков, блокам с адресами 0000, 0002 и 0004, т.е. эти блоки не используются, но еще не очищены. Поскольку эти блоки не используются и, таким образом содержащиеся в них данные можно стереть, не опасаясь потерять полезную информацию, то модуль 29 управления упреждающей очисткой выдает команды очистки, в соответствии с которыми каждому из соответствующих адресов в таблице очистки блоков должно быть присвоено значение '1', указывающее, что эти блоки подлежат очистке (этапы S28-S30). В результате все данные в неиспользуемых блоках стираются, и эти блоки помечаются в таблице очистки блоков как очищенные блоки. После этого можно осуществлять вышеописанную процедуру записи данных путем выделения неиспользуемых блоков, которая не требует операции очистки и позволяет достичь высокоскоростной записи данных.

Пятый вариант осуществления

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

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

1. Непроизводительные издержки, связанные с выдачей команд

Чтобы лучше понять, как фрагментация влияет на непроизводительные издержки, связанные с выдачей команд, обратимся к фиг.27А и 27В. На фиг.27А представлен случай, когда файл размером 48 КБ, разделенный на три сегмента файла размером 16 КБ, хранится в трех произвольно выбранных областях памяти. На фиг.27В представлен случай, когда файл размером 48 КБ хранится в следующих друг за другом областях памяти. Согласно фиг.27А и 27В, модуль 9 операций файловой системы, осуществляя считывание данных из энергонезависимой памяти, выдает полупроводниковой карте памяти команду считывания в формате “Считать (адрес, размер)”. Здесь параметр “адрес” выражает логический адрес блока, из которого надлежит произвести считывание, а параметр “размер” указывает размер данных, подлежащих считыванию. Время, затрачиваемое каждой командой считывания, равно сумме промежутка времени, необходимого для считывания данных, который пропорционален длине считываемых данных, и фиксированного промежутка времени, связанного с непроизводительными издержками при выдаче команды считывания. При размещении данных, показанном на фиг.27А, для считывания файла 1 необходимо выдать три команды считывания: “Считать (0000, 16 КБ)”, “Считать (0002, 16 КБ)” и “Считать (0004, 16 КБ)”. Это значит, что время, затрачиваемое при считывании этого файла, составляет 36 мс (=(8+4)× 3). Если же данные размещены согласно фиг.27В, то все 48 КБ данных файла можно считать, выдав одну команду “Считать (0000, 48 КБ)”. Следовательно, время, затрачиваемое при считывании файла, равно в этом случае, 28 мс (=(8× 3+4)). Таким образом, можно видеть, что непроизводительные издержки, связанные с выдачей команд, увеличиваются пропорционально степени произвола при выборе блоков для хранения сегментов файла.

2. Кэширование FAT

Кэширование FAT это предварительное считывание FAT, размещенной в системной области полупроводниковой карты 100 памяти, во внутреннюю память устройства 200 доступа, которое позволяет повысить скорость обращения к FAT за счет осуществления доступа к внутренней памяти. Если устройство 200 доступа представляет собой портативное устройство с малым объемом внутренней памяти, то частота кэширования FAT велика. Кэширование FAT осуществляют путем считывания сегментов FAT в том порядке, в котором они хранятся в памяти. Однако в случае фрагментации FAT, при кэшировании FAT приходится по порядку считывать во внутреннюю память как сегменты FAT, так и сегменты других данных. В случае считывания других данных, помимо FAT, происходит загрузка во внутреннюю память большого объема данных, не подлежащих кэшированию, т.е. имеет место кэш-промах. Чем больше происходит таких кэш-промахов, тем больше требуется осуществлять операций считывания во внутреннюю память, а следовательно, возрастают затраты времени на считывание FAT.

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

Таким образом устройство 200 доступа может считывать файл размером 48 КБ, разделенный на три сегмента размером 16 КБ и хранящийся в трех отдельных областях (блоках) памяти, как показано на фиг.27А, при том, что логические адреса блоков следуют один за другим. При этом для осуществления считывания требуется лишь одна команда считывания, в которой указан первый из совокупности логических адресов, и длина данных файла (в данном случае 48 КБ). Кроме того, если FAT разделена на три сегмента и хранится в трех областях памяти (блоках), то устройство 200 доступа может упорядоченно считывать во внутреннюю память сегменты FAT, хранящиеся в произвольном порядке, в том случае, когда логические адреса блоков следуют один за другим. В данном случае, для осуществления считывания требуются команды считывания, в которых, в качестве адреса считывания, по очереди указан каждый из последовательных логических адресов. Такая обработка исключает всякую возможность возникновения кэш-промахов. Таким образом, даже если множественные сегменты файла или FAT хранятся в произвольно выбранных областях, этим областям можно выделить последовательные логические адреса, что решает проблему непроизводительных издержек, связанных с выдачей команд считывания, и позволяет избежать возникновения кэш-промахов.

На фиг.28 изображена блок-схема процедуры устранения фрагментации посредством операций над логическими адресами, осуществляемой модулем 29 управления упреждающей очисткой. На фиг.29 изображены иллюстративные объекты, которым соответствуют переменные t, u, v и у, присутствующие в блок-схеме. На этапе S50 модуль 29 управления упреждающей очисткой задает исходные значения переменных х и y (х← 1, y← 1). Это значит, что обработке подлежит первый сегмент первого файла. Затем, на этапе S51, модуль 29 управления упреждающей очисткой сравнивает логический адрес s блока, в котором хранится y-й сегмент х-го файла, и логический адрес t блока, в котором хранится (y+1)-й сегмент х-го файла, чтобы определить порядок следования этих блоков. Если, как показано на фиг.29А, y-й сегмент и (y+1)-й сегмент хранятся в порядке следования у→ y+1, что соответствует результату “Да” на этапе S52, и, притом, не в соседних очищаемых блоках, то модуль 29 управления упреждающей очисткой переходит к этапу S54.

Если сегменты хранятся в порядке у+1→ у, как показано на фиг.29В, то модуль 29 управления упреждающей очисткой переходит к этапу S53 и выделяет логическому адресу t физический адрес u, а логическому адресу s - физический адрес v. В результате, выделение физических адресов логическим адресам изменяется, как показано на фиг.29В стрелками rv1 и rv2. Затем, на этапе S54, модуль 29 управления упреждающей очисткой проверяет, следует ли логический адрес очищаемого блока, в котором хранится (y+1)-й сегмент, непосредственно после логического адреса очищаемого блока, в котором хранится y-й сегмент. Если очищаемый блок, в котором хранится (y+1)-й сегмент, следует непосредственно после очищаемого блока, в котором хранится y-й сегмент, как показано на фиг.29С, то соотношение s+1=t справедливо, что соответствует результату “Да” этапа S54, и процедура переходит к этапу S56. Если очищаемые блоки, в которых хранятся y-й сегмент и (y+1)-й сегмент, не являются соседними, то соотношение s+1=t несправедливо, что соответствует результату “Нет” этапа S54, и процедура переходит к этапу S55. В данном случае, если логическому адресу s+1 соответствует физический адрес w, то на этапе S55 физический адрес v очищаемого блока, в котором хранится (y+1)-й сегмент, выделяют логическому адресу s+1, а физический адрес w выделяют логическому адресу t. При выполнении этапа S55, когда y-й и (y+1)-й сегменты хранятся, как показано на фиг.29D, график соответствия адресов изменяется, как показано стрелками rv3 и rv4.

По завершении вышеописанных операций, на этапе S56 модуль 29 управления упреждающей очисткой выясняет, является ли переменная 'y' номером последнего сегмента. Если 'y' не является номером последнего сегмента, то модуль 29 управления упреждающей очисткой на этапе S57 увеличивает у на единицу, и процедура возвращается к этапу S51. Этапы S51-S57 процедуры повторяют для каждого сегмента х-го файла, каждый раз осуществляя проверку на этапе S56 и сообщая 'y' единичное приращение на этапе S57.

Если же этап S56 дает результат “Да”, то модуль 29 управления упреждающей очисткой на этапе S58 выясняет, является ли 'х' номером последнего файла, и, в случае отрицательного результата, переходит к этапу S59, т.е. увеличивает переменную х (х← х+1) и, на этапе S60, присваивает переменной у исходное значение. Таким образом, этапы S51-S57 повторяют для всех файлов, каждый раз осуществляя проверку на этапе S58 и сообщая переменной 'х' единичное приращение на этапе S59.

Теперь рассмотрим решение проблемы фрагментации, предложенное в данном варианте осуществления, на конкретном примере, приведенном на фиг.30. В исходном состоянии, показанном на фиг.30А, сегменты 1-1/3, 1-2/3 и 1-3/3, образующие файл 1, хранятся в очищаемых блоках, соответствующих логическим адресам 0000, 0001 и 0004. Кроме того, сегменты 2-1/4, 2-2/4, 2-3/4 и 2-4/4, образующие файл 2, хранятся в очищаемых блоках, соответствующих логическим адресам 0002, 0003, 0005 и 0006.

Сегмент файла 2-1/4 хранится в очищаемом блоке, соответствующем адресу (логическому адресу 0002), следующему за логическим адресом 0001, указывающему блок, в котором хранится сегмент файла 1-2/3, а сегмент файла 1-3/3 хранится в очищаемом блоке, соответствующем логическому адресу 0004.

Если применить процедуру, представленную блок-схемой, изображенной на фиг.28, к примеру, приведенному на этой схеме, то она установит, что порядок следования сегментов файла 1-1/3 и 1-2/3 совпадает с порядком следования соответствующих им логических адресов 0000 и 0001, так что соответствие между ними следует сохранить. Однако если рассмотреть порядок следования сегментов файла 1-2/3 и 1-3/3, можно увидеть, что, хотя очищаемый блок, в котором хранится сегмент файла 1-2/3, соответствует логическому адресу 0001, но в очищаемом блоке, соответствующем логическому адресу 0002, хранится сегмент файла 2-1/4. Следовательно этап S54 дает результат “Нет”, и процедура переходит к этапу S55. На этапе S55, логический адрес, который прежде соответствовал физическому адресу очищаемого блока, в котором хранится сегмент файла 1-3/3, ставят в соответствие физическому адресу очищаемого блока, в котором хранится сегмент файла 2-1/4, и наоборот. Теперь сегменты файла 1-2/3 и 1-3/3 указаны последовательными логическими адресами, так что физический адрес 0002 очищаемого блока, в котором хранится сегмент файла 2-1/4, выделен логическому адресу 0004 и, наоборот, физический адрес 0004 очищаемого блока, в котором хранится сегмент файла 1-3/3, выделен логическому адресу 0002. График соответствия между логическими и физическими адресами, полученный в результате этого изменения, показан на фиг.30В. По завершении обработки в отношении сегмента файла 1-3/3, осуществляют обработку в отношении сегмента файла 2-2/4. Согласно фиг.30В, соотношение между сегментами файла 2-1/4 и 2-2/4 таково, что сегмент файла 2-1/4 хранится в очищаемом блоке, соответствующем логическому адресу 0004, а следующий сегмент файла 2-2/4 хранится в очищаемом блоке, соответствующем логическому адресу 0003. Таким образом логические адреса, присвоенные этим сегментам, следуют в обратном порядке. В результате, на этапе S52 получают ответ “Нет”, и обработка переходит к этапу S53, на котором порядок следования адресов, соответствующих сегментам файла 2-1/4 и 2-2/4, меняют на противоположный. В данном случае, физическому адресу 0002, соответствующему очищаемому блоку, в котором хранится сегмент файла 2-1/4, выделяют логический адрес 0003, а физическому адресу 0003, соответствующему очищаемому блоку, в котором хранится сегмент файла 2-2/4, выделяют логический адрес 0004. В результате этой обработки, сегменты файла, образующие файлы 1 и 2, указаны последовательными логическими адресами.

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

Шестой вариант осуществления

Шестой вариант осуществления предусматривает усовершенствование, применяемое при записи в энергонезависимую память разнообразного материала с помощью службы распространения и при воспроизведении записанного материала на портативном проигрывателе. В этом случае, в полупроводниковую карту 100 памяти чаще всего записывают файлы с разнообразными атрибутами, а именно, музыку, изображения, игры и текст. Поскольку, в зависимости от типа файла, его считывание и редактирование осуществляется по-разному, модуль 9 операций файловой системы, входящий в состав устройства 200 доступа, должен проверять содержимое файла перед осуществлением чтения или редактирования. Необходимость производить такую проверку всякий раз перед чтением или редактированием файла затрудняет работу модуля 9 операций файловой системы. Поэтому универсальный дисковый формат (УДФ) хранения данных на цифровых универсальных дисках (DVD) предусматривает для каждого файла расширенный атрибут, позволяющий мгновенно распознавать тип данных, хранящихся в файле, не проверяя содержимого файла.

На фиг.31 показан пример расширенного атрибута. Атрибут, показанный на чертеже, представляет собой новый тип расширенного атрибута, сформированный на основании расширенного атрибута использования реализации, предусмотренного в УДФ. Расширенный атрибут содержит поле 2000 типа атрибута, поле 2010 подтипа атрибута, резервную область 2020, поле 2030 длины атрибута, поле 2040 длины использования реализации, поле 2050 идентификатора реализации (они идентичны полям расширенного атрибута использования реализации в УДФ, поэтому более подробное объяснение здесь опущено) и поле 2060 использования реализации. Поле 2060 использования реализации содержит поле 2061 контрольной суммы заголовка, в котором хранится контрольная сумма заголовочного сегмента расширенного атрибута, поле 2063 имени, в котором хранится имя файла, и поле 2062 флага, в котором хранится атрибут файла. Каждый бит флага

2062 задают равным '0' или '1', чтобы указать атрибут файла. Первый бит флага 2062 указывает является ли данный файл текстовым файлом, второй бит указывает является ли данный файл файлом изображения, а область, начинающаяся с третьего файла, является резервной областью.

Хранение такого расширенного атрибута в полупроводниковой карте 100 памяти сталкивается с очевидной трудностью. Дело в том, что информация управления томом, хранящаяся в полупроводниковой карте 100 памяти, отвечает структуре данных, заданной вышеупомянутым стандартом ISO/IEC 9293, который не предусматривает снабжение каждого файла расширенным атрибутом.

Согласно данному варианту осуществления, расширенный атрибут хранится в защищенной области и/или в дублирующей области. Защищенная область была описана применительно ко второму варианту осуществления, поэтому, в дальнейшем, мы не будем ее рассматривать. Дублирующей областью управляют отдельно от нормального раздела области пользовательских данных. Если в области пользовательских данных энергонезависимой памяти появляется поврежденный сектор, то модуль 24 изменения выделения выбирает сектор из дублирующей области, чтобы заменить поврежденный сектор. На фиг.32 показана внутренняя структура полупроводниковой карты 100 памяти, в которой предусмотрена дублирующая область. Новые расширенные атрибуты, которые невозможно задать в файловой системе FAT, можно задать для каждого файла, сохранив эти атрибуты в защищенной области или в дублирующей области. Кроме того, поскольку в пользовательской области и в области пользовательских данных, используемых обычным пользователем, применяется традиционная файловая система, которая никак не связана с нововведенными расширенными атрибутами, система совместима с другими системами. Кроме того, поскольку устройство 200 доступа должно только реализовать операции, необходимые для каждого типа файла, то устройство 200 доступа реализует меньшее количество операций, что позволяет снизить объем памяти устройства 200 доступа. Кроме того, поскольку тип файла для каждого файла можно определить, просто обратившись к информации расширенного атрибута, вместо того, чтобы обращаться к содержимому файла, можно повысить скорость выполнения операций.

Седьмой вариант осуществления

Этот вариант осуществления предусматривает дополнительное усовершенствование защиты файлов за счет установления для файлов в файловой системе FAT запрета на запись и запрета на чтение. Традиционная файловая система FAT предусматривает установление для отдельных файлов таких атрибутов, как запрет на запись или запрет на чтение в файловых элементах. Модуль 9 операций файловой системы, входящий в состав устройства 200 доступа, будучи подключенным к полупроводниковой карте 100 памяти, считывает и сохраняет информацию управления томом и обращается к атрибуту отдельного файла, чтобы определить, допустимо ли чтение или запись этого файла. Если прикладная программа 8, заложенная в устройство 200 доступа, обращается к полупроводниковой карте 100 памяти посредством модуля 9 операций файловой системы, то атрибуты, заданные в файловых элементах, имеют значение. Если же прикладная программа 8 обращается к полупроводниковой карте 100 памяти в обход модуля 9 операций файловой системы и осуществляет операции записи или считывания, выдавая команды записи или считывания непосредственно полупроводниковой карте 100 памяти, то какие-либо атрибуты запрета на запись или запрета на чтение, заданные в файловых элементах, не имеют никакой силы. Данный вариант осуществления предусматривает структуру полупроводниковой карты 100 памяти, изображенную на фиг.33, благодаря чему, атрибуты запрета на запись и запрета на чтение остаются в силе, даже при непосредственном обращении прикладной программы 8 к полупроводниковой карте 100 памяти. На фиг.33 показана внутренняя структура полупроводниковой карты 100 памяти, согласно седьмому варианту осуществления. Отличительные особенности этого чертежа заключаются в том, что в дублирующей области энергонезависимой памяти 1 хранится таблица атрибутов блоков.

Таблица атрибутов блоков состоит из элементов, соответствующих очищаемым блокам, входящим в состав области тома. Когда элемент равен '1', это значит, что соответствующий блок защищен от записи. Когда элемент равен '2', это значит, что соответствующий блок защищен от чтения. Модуль 9 операций файловой системы и модуль 2 управления доступом, описанные согласно пятому варианту осуществления, осуществляют операции на таблице атрибутов блоков, а также на файловых элементах. Если прикладная программа 8 предписывает модулю 9 операций файловой системы открыть файл, чтобы установить для него атрибут, то модуль 9 операций файловой системы задает атрибут в файловом элементе, соответствующем этому файлу. Например, если прикладная программа 8 предписывает установить для файла защиту от записи, то в соответствующем файловом элементе задают атрибут запрета на запись. Если прикладная программа 8 предписывает установить для файла защиту от считывания, то в соответствующем файловом элементе задают атрибут запрета на чтение. Если прикладная программа 8 предписывает сделать файл скрытым, то модуль 9 операций файловой системы задает в соответствующем файловом элементе атрибут запрета на чтение.

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

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

Если устройство 200 доступа выдает команду записи, то модуль 25 управления записью или модуль 27 управления изменением обращается к элементу таблицы атрибутов блоков, соответствующему адресу записи. Если элемент указывает, что запись разрешена, то модуль 25 управления записью или модуль 27 управления изменением записывает данные в блок, указанный адресом записи, а если элемент указывает, что запись запрещена - не записывает данные в блок, указанный адресом записи.

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

На фиг.34 приведен конкретный пример действия модуля 9 операций файловой системы согласно данному варианту осуществления. Согласно фиг.34А, данные, содержащиеся в файле 1, хранятся в очищаемых блоках по адресам 0000, 0002 и 0003, данные, содержащиеся в файле 2, хранятся в очищаемых блоках по адресам 0001 и 0004, данные, содержащиеся в файле 3, хранятся в очищаемом блоке по адресу 0005, и данные, содержащиеся в файле 4, хранятся в очищаемом блоке по адресу 0006. На фиг.34В показан случай, когда для файла 1 установлен атрибут запрета на запись. В таблице атрибутов блоков, элементам, соответствующим блокам, в которых хранятся сегменты файла 1 (идентифицированные адресами 0000, 0002 и 0003), присвоено значение '1', что соответствует атрибуту запрета на запись. Если таблица атрибутов блоков задана таким образом, то модуль 25 управления записью будет игнорировать команды на осуществление операций записи в блоки по адресам 0000, 0002 и 0003.

На фиг.34С показан случай, когда в энергонезависимой памяти 1 сохраняют файл 2 с атрибутом запрета на чтение. При этом, элементам таблицы атрибутов блоков, которые соответствуют файлу 2, присваивают значение, соответствующее атрибуту запрета на чтение. Затем файл 2 делят на совокупность сегментов и сохраняют эти сегменты в совокупности блоков пользовательской области. Если сегменты файла 2 хранятся в блоках, указанных логическими адресами 0001 и 0004, то элементы таблицы атрибутов блоков, соответствующие этим блокам, содержат значение '2', указывая наличие атрибута запрета на чтение. Если таблица атрибутов блоков задана таким образом, то модуль 23 управления считыванием игнорирует команды на считывание данных из блоков по адресам 0001 и 0004.

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

Согласно данному варианту осуществления, флаг, указывающий атрибут запрета на запись, имеет значение '1', а флаг, указывающий атрибут запрета на чтение, имеет значение '2', но это лишь иллюстративный вариант, никак не ограничивающий объем патентной защиты изобретения. Кроме того, согласно данному варианту осуществления, для присвоения каждому блоку энергонезависимой памяти 1 атрибутов запрета на запись и чтение, используют таблицу атрибутов блоков, но, поскольку атрибут устанавливают для каждого блока в отдельности, можно также использовать список или аналогичную структуру. Согласно данному варианту осуществления, описан способ задания в энергонезависимой памяти 1 атрибутов запрета на чтение и запись, но в качестве атрибутов блока можно также использовать информацию, отличную от описанной в вышеприведенных вариантах осуществления. Возможно такое управление блоками, при котором доступ получают только пользователи, обладающие корневыми привилегиями, когда каждому блоку сопоставляют ИД пользователя, и доступ получают только пользователи, обладающие этим ИД, или каждому отдельному пользователю присваивают привилегии доступа к блокам. Согласно вышеприведенному описанию, в качестве файловой системы используют файловую систему FAT, но аналогичные результаты можно получить с использованием других традиционных файловых систем, например, УДФ или файловой системы Windows NT™ (NTFS), или специализированной файловой системы. Кроме того, согласно вышеприведенным вариантам осуществления, в одном очищаемом блоке содержится 32 сектора, но это значение выбрано исключительно для примера, и количество секторов в одном очищаемом блоке может быть больше или меньше этого числа.

Промышленное применение

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

Похожие патенты RU2257609C2

название год авторы номер документа
ДИНАМИЧЕСКОЕ ОПРЕДЕЛЕНИЕ СОВМЕСТИМОСТИ ФАЙЛОВЫХ СИСТЕМ В РЕАЛЬНОМ ВРЕМЕНИ 2020
  • Жданов, Иван
  • Зудин, Александр
  • Комаров, Константин
RU2808634C1
ПЛАТА ПОЛУПРОВОДНИКОВОЙ ПАМЯТИ, УСТРОЙСТВО ВОСПРОИЗВЕДЕНИЯ, УСТРОЙСТВО ЗАПИСИ, СПОСОБ ВОСПРОИЗВЕДЕНИЯ, СПОСОБ ЗАПИСИ И СЧИТЫВАЕМЫЙ ПОСРЕДСТВОМ КОМПЬЮТЕРА НОСИТЕЛЬ ЗАПИСИ 2000
  • Хирота Теруто
  • Тагава Кендзи
  • Мацусима Хидеки
  • Исикава Томоказу
  • Иноуе Синдзи
  • Козука Масаюки
RU2255382C2
УСТРОЙСТВО ДЛЯ РЕДАКТИРОВАНИЯ, СПОСОБ РЕДАКТИРОВАНИЯ И НОСИТЕЛЬ ЗАПИСИ 2000
  • Иида Кенити
RU2263954C2
Накопитель магнитный с разделёнными областями 2020
  • Носков Александр Георгиевич
RU2757659C1
РАСШИРЯЕМАЯ ФАЙЛОВАЯ СИСТЕМА 2005
  • Збиковски Марк Дж.
  • Тхинд Равиндер С.
  • Пудипедди Рависанкар В.
  • Хавевала Сарош С.
  • Готдже Висхал В.
RU2420794C2
СПОСОБ ЗАПИСИ, СПОСОБ УПРАВЛЕНИЯ И УСТРОЙСТВО ДЛЯ ЗАПИСИ 2000
  • Иида Кенити
  • Ямада Ейити
  • Охбаяси Судзи
RU2242805C2
РАСШИРЯЕМАЯ ФАЙЛОВАЯ СИСТЕМА 2005
  • Збиковски Марк Дж.
  • Тхинд Равиндер С.
  • Пудипедди Рависанкар В.
  • Хавевала Сарош С.
  • Готдже Висхал В.
RU2574824C2
ПЛАТА ПОЛУПРОВОДНИКОВОЙ ПАМЯТИ, УСТРОЙСТВО ВОСПРОИЗВЕДЕНИЯ, УСТРОЙСТВО ЗАПИСИ, СПОСОБ ВОСПРОИЗВЕДЕНИЯ, СПОСОБ ЗАПИСИ И СЧИТЫВАЕМЫЙ ПОСРЕДСТВОМ КОМПЬЮТЕРА НОСИТЕЛЬ ИНФОРМАЦИИ 2000
  • Тагава Кендзи
  • Мацусима Хидеки
  • Хирота Теруто
  • Исикава Томоказу
  • Иноуе Синдзи
  • Козука Масаюки
RU2259604C2
КАРТА ПОЛУПРОВОДНИКОВОЙ ПАМЯТИ И УСТРОЙСТВО СЧИТЫВАНИЯ ДАННЫХ 2000
  • Хирота Теруто
  • Татебаяси Макото
  • Югава Тайхеи
  • Минами Масатака
  • Козука Масаюки
RU2251752C2
УСТРОЙСТВО И СПОСОБ РЕДАКТИРОВАНИЯ 2000
  • Кихара Нобуюки
  • Екота Теппей
RU2252448C2

Иллюстрации к изобретению RU 2 257 609 C2

Реферат патента 2005 года УСТРОЙСТВО ДОСТУПА К ПОЛУПРОВОДНИКОВОЙ КАРТЕ ПАМЯТИ, КОМПЬЮТЕРНО-СЧИТЫВАЕМЫЙ НОСИТЕЛЬ ЗАПИСИ, СПОСОБ ИНИЦИАЛИЗАЦИИ И ПОЛУПРОВОДНИКОВАЯ КАРТА ПАМЯТИ

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

Формула изобретения RU 2 257 609 C2

1. Устройство доступа для осуществления доступа к файлам, хранящимся в полупроводниковой карте памяти, которая содержит область памяти, состоящую из множества секторов, причем устройство доступа оперирует данными в каждой группе из 2j секторов (j равно 0 или положительному целому числу) как кластером и оперирует одним или несколькими кластерами как файлом, причем каждая группа из 2i последовательных секторов области памяти образует блок (i равно 0 или положительному целому числу), который является наименьшей областью памяти, на которой можно осуществлять операцию стирания данных, включающее вычислительный модуль, выполненный с возможностью вычислять размер информации управления томом на основании количества кластеров в области памяти, которыми нужно оперировать, причем информация управления томом содержит головную загрузочную запись, таблицу разделов, информацию загрузочного сектора раздела, таблицу размещения файлов и элемент корневого каталога, при этом таблица размещения файлов указывает для каждого файла связи между кластерами, соответствующими этому файлу, резервирующий модуль, выполненный с возможностью резервировать первую область, используемую для записи информации управления томом, и вторую область, используемую для записи пользовательских данных, причем первая область характеризуется размером данных, превышающим вычисленный размер информации управления томом, и включает два или более блоков, а вторая область состоит из блоков, следующих за первой областью, и записывающий модуль, выполненный с возможностью записывать информацию управления томом в первую область, а пользовательские данные - во вторую область и записывать головную загрузочную запись и таблицу разделов в первый сектор первого блока первой области, пропускать предварительно определенное количество секторов и затем записывать информацию загрузочного сектора раздела, таблицу размещения файлов и элемент корневого каталога в последующие секторы для выравнивания конца первой области с концом элемента корневого каталога, при этом информация загрузочного сектора раздела, таблица размещения файлов и элемент корневого каталога записываются в по меньшей мере один блок, который отличается от первого блока.2. Устройство доступа по п.1, отличающееся тем, что первый блок первой области состоит из первого сектора и первой группы сегментов, используемых для записи части зарезервированной информации, и по меньшей мере один блок, отличающийся от первого блока, состоит из секторов, используемых для записи информации загрузочного сектора раздела, таблицы размещения файлов и элемента корневого каталога, и второй группы сегментов, используемых для записи другой части зарезервированной информации.3. Устройство доступа по п.1, отличающееся тем, что вычислительный модуль выполнен с возможностью вычислять сумму SUM, суммируя количество секторов, используемых для записи информации загрузочного сектора раздела, таблицы размещения файлов и элемента корневого каталога, первая область состоит из m·2j секторов (m – положительное целое) резервирующий модуль выполнен с возможностью резервировать первую область посредством вычисления значения m на основании уравнения (1)

где NOM - количество секторов,

записывающий модуль выполнен с возможностью вычислять предварительно определенное количество секторов вычитанием 1 из количества секторов NOM.

4. Устройство доступа по п.3, отличающееся тем, что записывающий модуль выполнен с возможностью задавать количество секторов NOM в таблице разделов при записи информации управления томом.5. Устройство доступа по п.3, отличающееся тем, что количество секторов, используемых для записи таблицы размещения файлов, вычисляется на основании количества кластеров в области памяти, которыми нужно оперировать.6. Устройство доступа по п.5, отличающееся тем, что таблица размещения файлов содержит множество элементов, причем количество элементов равно количеству кластеров, подлежащих записи во вторую область, и каждый элемент из множества элементов указывает связь с другим кластером того же файла, устройство доступа включает в себя приемный модуль, выполненный с возможностью принимать установочные значения суммарного количества секторов и суммарного количества кластеров в области памяти, вычислительный модуль включает в себя модуль первого вычисления, выполненный с возможностью вычислять суммарное количество кластеров путем деления суммарного количества секторов в области памяти на количество секторов 2j и вычислять размер таблицы размещения файлов путем умножения суммарного количества кластеров на длину элемента в битах, резервирующий модуль включает в себя модуль второго вычисления, выполненный с возможностью вычислять сумму SUM путем суммирования размера таблицы размещения файлов с количествами секторов, образующих соответственно информацию загрузочного сектора раздела и элемент корневого каталога, и вычислять значение m путем подстановки значения суммы SUM в уравнение (1).7. Устройство доступа по п.6, отличающееся тем, что область памяти включает защищенную область, доступную устройству, подключенному к полупроводниковой карте памяти, только после подтверждения подлинности подключенного устройства, и область пользовательских данных, доступную устройству, подключенному к полупроводниковой карте, вне зависимости от результата проверки подлинности подключенного устройства, причем приемный модуль выполнен с возможностью принимать от источника, внешнего по отношению к устройству доступа, установочные значения количества секторов и количества кластеров, подлежащих выделению защищенной области и области пользовательских данных, модуль первого вычисления выполнен с возможностью на основании принятых установочных значений вычислять размер таблицы размещения файлов для защищенной области и размер таблицы размещения файлов для области пользовательских данных, модуль второго вычисления выполнен с возможностью вычислять две суммы SUM для каждой из защищенной области и области пользовательских данных соответственно путем суммирования размера таблицы размещения файлов защищенной области и размера таблицы размещения файлов области пользовательских данных с количеством секторов, образующих информацию загрузочного сектора раздела, и количеством секторов, образующих элемент корневого каталога, и вычислять значение m для каждой из защищенной области и области пользовательских данных путем подстановки соответствующего значения суммы SUM в уравнение (1).8. Устройство доступа по п.7, отличающееся тем, что кластеры в защищенной области отличаются по размеру от кластеров в области пользовательских данных.9. Устройство доступа по п.6, отличающееся тем, что записывающий модуль выполнен с возможностью записывать во вторую область пользовательские данные, разделенные на множество сегментов, в виде совокупности кластеров, причем каждый сегмент из множества сегментов хранится во второй области в виде одного из совокупности кластеров, задавать множество элементов таблицы размещения файлов, причем каждый элемент из множества элементов указывает связь между кластерами, и записывать в элементе корневого каталога имя файла и информацию местоположения, указывающую местоположение первого кластера файла.10. Полупроводниковая карта памяти, которая содержит область памяти, состоящую из множества секторов, и оперирует данными в каждой группе из 2j секторов (j равно 0 или положительному целому числу) как кластером и одним или несколькими кластерами как файлом, причем каждая группа из 2i последовательных секторов области памяти образует блок (i равно 0 или положительному целому числу), который является наименьшей областью памяти, на которой можно осуществлять операцию стирания данных, включающая первую область, включающую два или более блоков, используемую для записи информации управления томом, и вторую область, состоящую из блоков, следующих за первой областью, и используемую для записи пользовательских данных, при этом информация управления томом включает в себя головную загрузочную запись, таблицу разделов, информацию загрузочного сектора раздела, таблицу размещения файлов и элемент корневого каталога, причем таблица размещения файлов указывает для каждого файла связи между кластерами, соответствующими этому файлу, при этом головная загрузочная запись и таблица разделов записаны в первый сектор первого блока первой области с пропуском предварительно определенного количества секторов, информация загрузочного сектора раздела, таблица размещения файлов и элемент корневого каталога записаны в последующие секторы для выравнивания конца первой области с концом элемента корневого каталога, причем информация загрузочного сектора раздела, таблица размещения файлов и элемент корневого каталога записываются в по меньшей мере один блок, который отличается от первого блока.11. Полупроводниковая карта памяти по п.10, отличающаяся тем, что первый блок первой области состоит из первого сектора и первой группы сегментов, используемых для записи части зарезервированной информации, и по меньшей мере один блок, отличающийся от первого блока, состоит из секторов, используемых для записи информации загрузочного сектора раздела, таблицы размещения файлов и элемента корневого каталога, и второй группы сегментов, используемых для записи другой части зарезервированной информации.12. Полупроводниковая карта памяти по п.10, отличающаяся тем, что первая область состоит из m·2j секторов (m - положительное целое), предварительно определенное количество секторов вычисляется вычитанием 1 из количества секторов NOM, которое удовлетворяет нижеследующему уравнению (1)

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

13. Полупроводниковая карта памяти по п.10, отличающаяся тем, что предварительно определенное количество секторов задается в таблице разделов при записи информации управления томом.14. Полупроводниковая карта памяти по п.12, отличающаяся тем, что количество секторов, используемых для записи таблицы размещения файлов, вычисляется на основании количества кластеров в области памяти, которыми нужно оперировать.15. Полупроводниковая карта памяти по п.14, отличающаяся тем, что таблица размещения файлов содержит множество элементов, причем количество элементов равно количеству кластеров и каждый элемент из множества элементов указывает связь с другим кластером того же файла, размер таблицы размещения файлов вычисляется посредством вычисления суммарного количества кластеров путем деления суммарного количества секторов в области памяти на количество секторов 2j и умножения суммарного количества кластеров на длину элемента в битах, значение m вычисляется посредством вычисления суммы SUM суммированием размера таблицы размещения файлов с количествами секторов, образующих соответственно информацию загрузочного сектора раздела и элемент корневого каталога, и подстановкой значения суммы SUM в уравнение (1).16. Полупроводниковая карта памяти по п.15, отличающаяся тем, что множество кластеров во второй области получены путем разделения пользовательских данных, множество элементов в таблице размещения файлов показывают связи между множеством кластеров, элемент корневого каталога включает имя файла и информацию о местоположении, которая указывает местоположение первого кластера среди кластеров, образующих файл.17. Полупроводниковая карта памяти по п.16, отличающаяся тем, что часть имени файла записана в области пользовательских данных.18. Полупроводниковая карта памяти, имеющая область памяти, которая включает в себя защищенную область, доступную подключенному к полупроводниковой карте устройству, выполненному с возможностью физического подсоединения к полупроводниковой карте памяти, считывания данных с полупроводниковой карты памяти и/или записи данных на полупроводниковую карту памяти, только после подтверждения подлинности подключенного устройства, и область пользовательских данных, доступную устройству, подключенному к полупроводниковой карте памяти, вне зависимости от результата проверки подлинности подключенного устройства, при этом защищенная область и область пользовательских данных включают множество секторов и данными оперируют в каждой группе из 2j секторов (j равно 0 или положительному целому числу) как кластером и одним или несколькими кластерами как файлом, причем каждая группа из 2i последовательных секторов области памяти образует блок (i равно 0 или положительному целому числу), который является наименьшей областью памяти, на которой можно осуществлять операцию стирания данных, при этом по меньшей мере одна из защищенной области и области пользовательских данных упомянутой полупроводниковой карты памяти содержит первую область, включающую два или более блока и используемую для записи информации управления томом, вторую область, состоящую из блоков, следующих за первой областью, и используемую для записи пользовательских данных, при этом информация управления томом включает в себя головную загрузочную запись, таблицу разделов, информацию загрузочного сектора раздела, таблицу размещения файлов и элемент корневого каталога, причем таблица размещения файлов указывает для каждого файла связи между кластерами, соответствующими этому файлу, при этом головная загрузочная запись и таблица разделов записаны в первый сектор первого блока первой области с пропуском предварительно определенного количества секторов, информация загрузочного сектора раздела, таблица размещения файлов и элемент корневого каталога записаны в последующие секторы для выравнивания конца первой области с концом элемента корневого каталога, причем информация загрузочного сектора раздела, таблица размещения файлов и элемент корневого каталога записаны в по меньшей мере один блок, который отличается от первого блока.19. Полупроводниковая карта памяти по п.18, отличающаяся тем, что первый блок первой области состоит из первого сектора и первой группы сегментов, используемых для записи части зарезервированной информации, и по меньшей мере один блок, отличающийся от первого блока, состоит из секторов, используемых для записи информации загрузочного сектора раздела, таблицы размещения файлов и элемента корневого каталога, и второй группы сегментов, используемых для записи другой части зарезервированной информации.20. Полупроводниковая карта памяти по п.18, отличающаяся тем, что первая область состоит из m·2j секторов (m - положительное целое), предварительно определенное количество секторов вычисляется вычитанием 1 из количества секторов NOM, которое удовлетворяет нижеследующему уравнению (1)

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

21. Полупроводниковая карта памяти по п.20, отличающаяся тем, что количество секторов NOM задается в таблице разделов.22. Полупроводниковая карта памяти по п.20, отличающаяся тем, что количество секторов, используемых для записи таблицы размещения файлов, вычисляется на основании количества кластеров в области памяти, которыми нужно оперировать.23. Полупроводниковая карта памяти по п.22, отличающаяся тем, что таблица размещения файлов содержит множество элементов, причем количество элементов равно количеству кластеров и каждый элемент из множества элементов указывает связь с другим кластером того же файла, размер таблицы размещения файлов вычисляется посредством вычисления суммарного количества кластеров путем деления суммарного количества секторов на количество секторов 2j и умножения суммарного количества кластеров на длину элемента в битах, значение m вычисляется посредством вычисления суммы SUM суммированием размера таблицы размещения файлов с количествами секторов, образующих соответственно информацию загрузочного сектора раздела и элемент корневого каталога, и подстановкой значения суммы SUM в уравнение (1).24. Полупроводниковая карта памяти по п.23, отличающаяся тем, что кластеры в защищенной области отличаются по размеру от кластеров в области пользовательских данных.25. Полупроводниковая карта памяти по п.23, отличающаяся тем, что множество кластеров во второй области получены путем разделения пользовательских данных, множество элементов в таблице размещения файлов показывают связи между множеством кластеров, элемент корневого каталога включает имя файла и информацию о местоположении, которая указывает местоположение первого кластера среди кластеров, образующих файл.26. Способ инициализации компьютера, позволяющей компьютеру осуществлять доступ к файлам, хранящимся в полупроводниковой карте памяти, которая содержит область памяти, состоящую из множества секторов, оперируя данными в каждой группе из 2j секторов (j равно 0 или положительному целому числу) как кластером и оперируя одним или несколькими кластерами как файлом, причем каждая группа из 2i последовательных секторов области памяти образует блок (i равно 0 или положительному целому числу), который является наименьшей областью памяти, на которой можно осуществлять операцию стирания данных, согласно которому вычисляют размер информации управления томом на основании количества кластеров в области памяти, которыми нужно оперировать, причем информация управления томом включает головную загрузочную запись, таблицу разделов, информацию загрузочного сектора раздела, таблицу размещения файлов, элемент корневого каталога, причем таблица размещения файлов указывает для каждого файла связи между кластерами, соответствующими файлу, резервируют первую область, используемую для записи информации управления томом, и вторую область, используемую для записи пользовательских данных, причем первая область характеризуется размером данных, превышающим вычисленный размер информации управления томом, и включает два или более блоков, а вторая область состоит из блоков, следующих за первой областью, и записывают информацию управления томом в первую область, а пользовательские данные - во вторую область, записывают головную загрузочную запись и таблицу разделов в первый сектор первого блока первой области, пропускают предварительно определенное количество секторов и затем записывают информацию загрузочного сектора раздела, таблицу размещения файлов и элемент корневого каталога в последующие секторы для выравнивания конца первой области с концом элемента корневого каталога, при этом информацию загрузочного сектора раздела, таблицу размещения файлов и элемент корневого каталога записывают в по меньшей мере один блок, который отличается от первого блока.27. Способ инициализации компьютера по п.26, отличающийся тем, что первый блок первой области состоит из первого сектора и первой группы сегментов, используемых для записи части зарезервированной информации, и блоки, отличающиеся от первого блока, состоят из секторов, используемых для записи информации загрузочного сектора раздела, таблицы размещения файлов и элемента корневого каталога, и второй группы сегментов, используемых для записи другой части зарезервированной информации.28. Способ инициализации компьютера по п.26, отличающийся тем, что первая область состоит из m·2j секторов (m - положительное целое), предварительно определенное количество секторов вычисляется вычитанием 1 из количества секторов NOM, которое удовлетворяет нижеследующему уравнению (1)

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

29. Носитель записи, в котором в машиночитаемом формате хранится программа инициализации компьютера, позволяющая ему осуществлять доступ к полупроводниковой карте памяти, которая включает область памяти, состоящую из множества секторов, оперируя данными в каждой группе из 2j секторов (j равно 0 или положительному целому числу) как кластером и оперируя одним или несколькими кластерами как файлом, причем каждая группа из 2i последовательных секторов области памяти образует блок (i равно 0 или положительному целому числу), который является наименьшей областью памяти, на которой можно осуществлять операцию стирания данных, причем программа на носителе записи позволяет компьютеру вычислять размер информации управления томом на основании количества кластеров в области памяти, которыми нужно оперировать, причем информация управления томом содержит головную загрузочную запись, таблицу разделов, информацию загрузочного сектора раздела, таблицу размещения файлов, элемент корневого каталога, причем таблица размещения файлов указывает для каждого файла связи между кластерами, соответствующими файлу, резервировать первую область, используемую для записи информации управления томом, и вторую область, используемую для записи пользовательских данных, причем первая область характеризуется размером данных, превышающим вычисленный размер информации управления томом, и включает два или более блоков, а вторая область состоит из блоков, следующих за первой областью, и записывать информацию управления томом в первую область, а пользовательские данные - во вторую область, записывать головную загрузочную запись и таблицу разделов в первый сектор первого блока первой области, пропускать предварительно определенное количество секторов и затем записывать информацию загрузочного сектора раздела, таблицу размещения файлов и элемент корневого каталога в последующие секторы для выравнивания конца первой области с концом элемента корневого каталога, при этом информация загрузочного сектора раздела, таблица размещения файлов и элемент корневого каталога записываются в по меньшей мере один блок, который отличается от первого блока.30. Носитель записи по п.29, отличающийся тем, что первый блок первой области состоит из первого сектора и первой группы сегментов, используемых для записи части зарезервированной информации, и по меньшей мере один блок, отличающийся от первого блока, состоит из секторов, используемых для записи информации загрузочного сектора раздела, таблицы размещения файлов и элемента корневого каталога, и второй группы сегментов, используемых для записи другой части зарезервированной информации.31. Носитель записи по п.29, отличающийся тем, что при упомянутом вычислении вычисляется сумма SUM посредством суммирования количества секторов, используемых для записи информации загрузочного сектора раздела, таблицы размещения файлов и элемента корневого каталога, при упомянутом резервировании резервируется первая область посредством вычисления значения m на основании уравнения (1)

где NOM - количество секторов,

и при упомянутой записи вычисляется предварительно определенное количество секторов посредством вычитания 1 из количества секторов NOM.

32. Носитель записи по п.31, отличающийся тем, что при упомянутой записи задается предварительно определенное количество секторов в таблице разделов при записи информации управления томом.33. Носитель записи по п.31, отличающийся тем, что количество секторов, используемых для записи таблицы размещения файлов, вычисляется на основании количества кластеров в области памяти, которыми нужно оперировать.34. Носитель записи по п.33, отличающийся тем, что таблица размещения файлов содержит множество элементов, причем количество элементов равно количеству кластеров, подлежащих записи во вторую область, и каждый элемент из множества элементов указывает связь с другим кластером того же файла, программа на носителе записи дополнительно позволяет компьютеру принимать установочные значения суммарного количества секторов и суммарного количества кластеров в области памяти, упомянутое вычисление включает в себя первое вычисление для вычисления суммарного количества кластеров путем деления суммарного количества секторов в области памяти на количество секторов 2j и вычисления размера таблицы размещения файлов путем умножения суммарного количества кластеров на длину элемента в битах, причем упомянутое резервирование включает в себя второе вычисление для вычисления суммы SUM путем суммирования размера таблицы размещения файлов с количествами секторов, образующих соответственно информацию загрузочного сектора раздела и элемент корневого каталога, и вычисления значения m путем подстановки значения суммы SUM в уравнение (1).35. Носитель записи по п.34, отличающийся тем, что область памяти включает защищенную область, доступную устройству, подключенному к полупроводниковой карте памяти, только после подтверждения подлинности подключенного устройства, и область пользовательских данных, доступную устройству, подключенному к полупроводниковой карте, вне зависимости от результата проверки подлинности подключенного устройства, причем при упомянутом приеме принимаются от источника, внешнего по отношению к устройству доступа, установочные значения количества секторов, подлежащих выделению защищенной области и области пользовательских данных, при упомянутом первом вычислении, на основании принятых установочных значений вычисляется размер таблицы размещения файлов для защищенной области и размер таблицы размещения файлов для области пользовательских данных, при упомянутом втором вычислении вычисляются две суммы SUM для каждой из защищенной области и области пользовательских данных соответственно путем суммирования размера таблицы размещения файлов защищенной области и размера таблицы размещения файлов области пользовательских данных с количеством секторов, образующих информацию загрузочного сектора раздела соответствующей области, и количеством секторов, образующих элемент корневого каталога соответствующей области, и вычисляется значение m соответственно для каждой из защищенной области и области пользовательских данных путем подстановки соответствующего значения суммы SUM в уравнение (1).36. Носитель записи по п.35, отличающийся тем, что кластеры в защищенной области отличаются по размеру от кластеров в области пользовательских данных.

Документы, цитированные в отчете о поиске Патент 2005 года RU2257609C2

Прибор, замыкающий сигнальную цепь при повышении температуры 1918
  • Давыдов Р.И.
SU99A1
ФИНАНСОВАЯ СИСТЕМА БЕЗНАЛИЧНЫХ ПЛАТЕЖЕЙ 1996
  • Хохлов Сергей Витальевич[Us]
  • Шишов Сергей Валерьевич[Ru]
  • Трошенков Михаил Кузьмич[Ru]
RU2094846C1
КАТОК ДЛЯ БОРЬБЫ С ВОДНОЙ ЭРОЗИЕЙ ПОЧВЫ 0
  • А. Д. Керимов А. С. Абдурахманов
SU392895A1
УСТРОЙСТВО ДЛЯ ВЫПОЛНЕНИЯ ПЛАТЕЖЕЙ И УСЛУГ С ПОМОЩЬЮ ЭЛЕКТРОННОЙ КАРТОЧКИ С ДОКУМЕНТИРОВАНИЕМ ОПЕРАЦИЙ 1995
RU2103732C1

RU 2 257 609 C2

Авторы

Маеда Такудзи

Хирота Теруто

Даты

2005-07-27Публикация

2000-10-19Подача