ОПИСАНИЕ И ОБРАЩЕНИЕ К ДИСКРЕТНЫМ ОБЛАСТЯМ ФЛЭШ-НОСИТЕЛЯ
DESCRIBING AND QUERYING DISCRETE REGIONS OF FLASH STORAGE

УРОВЕНЬ ТЕХНИКИ
Компоненты флэш-носителя, такие как компоненты И-НЕ и ИЛИ-НЕ, часто сформированы или могут по выбору быть сконфигурированы из дискретных физических областей, каждая из которых имеет различные характеристики. Характеристики включают в себя различные размеры блока, страницы и сектора; уникальные параметры чтения, записи, удаления; и способности, например только чтение, чтение/запись или однократная запись.
Обычные файловые системы программного обеспечения воспринимают флэш-компоненты как одиночные, гетерогенные наборы секторов или кластеров без рассмотрения различных характеристик областей. Нет стандартного механизма для раскрытия информации каждой из областей флэш-накопителя и ее свойств для файловой системы. Это приводит к неэффективному использованию и производительности флэш-компонента.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Флэш-драйвер может быть использован файловой системой и другими приложениями для определения более точных атрибутов и свойств, таких как конфигурация области, которая описывает лежащий в основе флэш-компонент. Это позволяет файловой системе, например, быть осведомленной о каждой области флэш-накопителя и ее свойствах. Файловая система может быть оптимизирована для более эффективного использования флэш-компонента. Оптимизация может привести к увеличению срока жизни и лучшей производительности чтения/записи.
Внутренний API (прикладной программный интерфейс) во флэш-медиа-драйвере предоставляет низкоуровневые свойства флэш уровню абстракции флэш. Интерфейс флэш-драйвера, такой как управляющий код I/O (ввода/вывода), раскрывается флэш-драйвером и предоставляет свойства флэш и драйвера. Этот управляющий код I/O может быть использован файловой системой и другими приложениями.
Этот раздел приведен здесь для представления набора принципов в упрощенной форме, которые будут далее описаны в подробном описании. Этот же раздел не предназначен как для определения ключевых признаков или существенных признаков заявленного изобретения, так и для ограничения объема заявленного изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фигура 1 - блок-схема примерной системы обращения флэш.
Фигура 2 - блок-схема примерного метода обращения флэш.
Фигура 3 - диаграмма примерной разметки файловой системы.
Фигура 4 - блок-схема примерной вычислительной среды, в которой могут быть реализованы примерные варианты осуществления изобретения и аспекты.
ПОДРОБНОЕ ОПИСАНИЕ
Архитектура флэш-накопителя, такая как многообъектная архитектура уровня абстракции флэш, допускает физическое разделение флэш-компонента на области, каждая из которых может быть обработана независимо. Каждая область флэш желательно изолирована от другой и может управляться объектом уровня абстракции флэш. Объект уровня абстракции флэш абстрагируется от интерфейса флэш-компонента и предоставляет интерфейс драйвера, используемый для верхних уровней в стеке, таких как драйвер разделов и драйвер файловой системы. Более того, многообъектная архитектура уровня абстракции флэш поддерживает флэш-компоненты с различными размерами блоков. Компоненты с различными размерами блоков содержат флэш-области, которые имеют размер блоков, отличный от других областей.
Флэш-компонент может содержать в себе дискретные физические области, каждая из которых имеет различные свойства. Свойства включают в себя различные размеры блока, страницы и сектора, уникальные параметры чтения/записи/удаления и способности только чтения, чтения/записи или однократной записи. Области могут иметь как уникальные параметры, так и различные размеры блоков. Интерфейс выполнен таким образом, что файловая система может использовать как свойства, так и будущие свойства флэш-компонентов.
Фиг.1 - блок-схема примерной системы обращения флэш. Флэш-драйвер 15 может быть использован файловой системой и другими приложениями для определения более подробных атрибутов и свойств, таких как геометрия области, которая описывает лежащий в основе флэш-компонент 10. Это позволяет файловой системе 40, например, быть осведомленной о каждой области флэш и ее свойствах. Файловая система затем может быть оптимизирована для более эффективного использования флэш-компонента 10. Эта оптимизация может привести к увеличению долговечности компонента и лучшей производительности чтения/записи. Здесь флэш-драйвер ссылается на компонент, такой как программный компонент, который управляет флэш и раскрывает флэш более высоким уровням (например, драйверам разделов, файловым системам и т.д.). Интерфейс флэш-драйвера может быть API, который раскрывается флэш-драйвером для более высших уровней.
Со ссылкой на фиг.1, флэш-драйвер 15, содержащий флэш-медиа-драйвер 20 и уровень абстракции флэш 30, может получать информацию о свойствах, а также другую информацию от аппаратного оборудования, такого как компонент 10 флэш-носителя или системного реестра 50. Системный реестр 50 предоставляет низкоуровневые свойства, полученные во время конфигурирования драйвера, флэш-медиа-драйверу 20, и высокоуровневые свойства, полученные во время конфигурирования драйвера, уровню 30 абстракции флэш. Флэш-драйвер 15 может предоставлять информацию о свойствах файловой системе 40. Например, низкоуровневые включают в себя физические характеристики флэш, такие как скорость чтения, скорость записи, размер блока и т.д. Например, высокоуровневые свойства могут быть программно предписанными или вынужденными, такие, например, как только чтение, чтение/запись, зарезервированные области, целостная запись и т.д.
Флэш-компонент 10 может включать в себя компоненты И-НЕ или ИЛИ-НЕ, например, и желательно предоставляет низкоуровневые свойства для флэш-медиа-драйвера 20. Флэш-медиа-драйвер 20 может быть специальным устройствозависимым и желательно вовлечен в прямой физический доступ к флэш-компоненту 10.
Во флэш-драйвере 15 низкоуровневые свойства флэш-компонента 10 предоставляются уровню 30 абстракции флэш. Уровень 30 абстракции флэш - уровень над флэш-медиа-драйвером 20, который управляет распределением записи транзакции, записи секторов, назначение и трансляцию логического сектора в физический и не зависит от типа носителя.
Примерный уровень абстракции флэш может включать в себя менеджер секторов, логико-физический распределитель секторов и компактор. Менеджер секторов может отвечать за управление списком свободных секторов на носителе. Когда будет поступать указание, менеджер секторов будет возвращать следующий свободный сектор на носителе (если такой имеется). Логико-физический распределитель секторов может отвечать за возвращение назначения логического сектора физическому. Файловая система использует логические секторы, которые затем назначаются в произвольные физические секторы на носителе. В результате уровень абстракции флэш, желательно, транслирует адреса логических секторов из файловой системы в соответствующие физические адреса секторов на носителе. Компактор отвечает за циклическое преобразование так занятых секторов в свободные. Компактор, желательно, анализирует весь флэш-блок для определения, какие сектора являются занятыми и могут быть преобразованы. Сектора в блоке, которые не заняты, переназначаются другому участку носителя.
Примерный флэш-медиа-драйвер может быть подключаемым компонентом, отвечающим за осуществление фактического I/O для устройства флэш. Желательно, чтобы флэш-медиа-драйверы содержали устройство - зависимый код, используемый для чтения/записи/стирания с устройства флэш-памяти.
Более детально свойства и другая информация, например, о флэш-компоненте 10 и/или системном реестре 50 предоставляется уровнем 30 абстракции флэш. Уровень 30 абстракции флэш предоставляет информацию (свойства и состав аппаратного оборудования) файловой системе 40. Таким образом, свойства флэш-компонента 10 и флэш-драйвера 15 передаются от флэш-драйвера 15 файловой системе 40.
Представлены два интерфейса: интерфейс для уровня 30 абстракции флэш для обращения флэш-медиа-драйвера 20 и интерфейс для передачи информации файловой системе 40 от уровня 30 абстракции флэш. Интерфейсы могут быть реализованы с использованием структур, опрашиваемых управляющими кодами I/O, например. Флэш-медиа-драйвер 20 предоставляет информацию о физических характеристиках флэш-компонента 10 уровню 30 абстракции флэш-памяти, который в свою очередь предоставляет ее файловой системе 40, где они могут использоваться.
В качестве примера, флэш-драйвер 15 может содержать внутренний API (прикладной программный интерфейс) во флэш-медиа-драйвере 20, который предоставляет низкоуровневые свойства флэш для уровня 30 абстракции. Интерфейс флэш-драйвера может содержать управляющий I/O код (ввода/вывода), который раскрывается и предоставляет свойства флэш и драйвера. Этот управляющий код I/O может быть использован файловой системой 40 и другими приложениями, например.
Флэш-медиа-драйвер 20 предпочтительно является зависимым от аппаратного оборудования и может использовать существующие свойства флэш-компонента 10. С другой стороны, пользователь может создавать флэш-медиа-драйвер 20, добавляя поддержку функций флэш-медиа-драйвера в пользовательский драйвер, например. Уровень 30 абстракции флэш использует функции и свойства флэш-медиа-драйвера 20.
Фиг.2 - блок-схема, на которой показан примерный метод обращения к флэш. На этапе 200 флэш-медиа-драйвер получает низкоуровневые свойства от флэш-компонента. На этапе 210 флэш-медиа-драйвер может получить низкоуровневые свойства посредством конфигурации драйвера посредством системного реестра. Флэш-медиа-драйвер предоставляет полученные низкоуровневые свойства уровню абстракции флэш в этапе 220. Уровень абстракции флэш получает высокоуровневые свойства посредством конфигурации драйвера посредством системного реестра в этапе 230. Как низкоуровневые, так и высокоуровневые свойства передаются файловой системе на этапе 240.
API флэш-медиа-драйвера предоставляет общие низкоуровневые свойства флэш-компонента. Этот API может описывать геометрию флэш-компонентов, а также и (зарезервированных) участков этих компонентов. Например, для API имеются четыре информационных уровня, которые предоставляются флэш-медиа-драйвером: базовая информация о флэш, стандартная информация об области флэш, информация о производительности областей флэш и стандартная информация о резерве флэш. Эта информация получается от непосредственно самого флэш-оборудования. Предполагается, что API может быть расширен, чтобы поддерживать дополнительные информационные уровни при изменении требований и предпочтений.
Базовая информация о флэш желательно включает в себя общую информацию о флэш-компоненте, такую как тип ФЛЭШ: И-НЕ или ИЛИ-НЕ; ID производителя; серийный номер; количестве областей; количество зарезервированных областей, например.
Стандартная информация об области флэш желательно включает в себя массив структур, один на каждую область флэш, каждый массив описывает базовые свойства области, такие как: свойства области (только чтение, однократная запись, необходимость последовательного программирования (MLC флэш)); предел постраничного программирования; физическая и логическая геометрия; количество байтов данных на сектор и количество резервных байтов в секторе, например.
Информация о производительности областей флэш желательно включает в себя массив структур, один на каждую область флэш, каждый массив описывает характеристики производительности области, такие как скорость чтения; скорость записи; время стирания; время настройки чтения; и время настройки записи, например.
Стандартная информация о резерве флэш желательно включает в себя массив структур, один на каждую зарезервированную область флэш, каждый массив описывает зарезервированную область, например: имя зарезервированной области; расположение и размер зарезервированной области; свойства зарезервированной области (только чтение, однократная запись). Например, зарезервированная область желательно скрыта от файловой системы. Эта информация может или не может поступать от флэш-оборудования.
Информация, предоставляемая флэш-медиа-драйвером, может быть собрана из разных мест. Например, часть информации может быть «зашита» в код флэш-медиа-драйвера, часть может быть считана из системного реестра, и часть может быть получена непосредственно от флэш-компонента посредством общего флэш-интерфейса (CFI) или других средств. Флэш-компоненты без дискретных областей могут заявлять об одной области, охватывающей целиком все флэш-компоненты.
Уровень абстракции флэш будет желательно объединить свою собственную информацию с информацией, предоставляемой флэш-медиа-драйвером, чтобы сформировать большой набор свойств флэш, раскрываемых посредством интерфейса, такого как управляющий код I/O. Для этого у API имеются четыре информационных уровня, которые могут предоставляться флэш-медиа-драйвером: стандартная информация, стандартная информация об области, информация о производительности области и стандартная информация о резерве. API может быть расширен для поддержки дополнительных информационных уровней, чтобы поддерживать дополнительные информационные уровни при изменении требований и предпочтений. Эта информация подобна информации в флэш-медиа-драйвере. Это информация, которую будут раскрывать сторонние производители программного обеспечения флэш.
Стандартная информация желательно включает в себя общую информацию об устройстве хранения в целом, такую как: ID производителя; серийный номер; количество областей; и количество зарезервированных областей, например.
Стандартная информация об области желательно включает в себя свойства и признаки отдельных областей внутри устройства хранения. Для устройств хранения без множества отдельных областей единственная структура может быть использована, чтобы описать устройство в целом. Информация здесь включает в себя свойства этой области (только чтение, чтение/запись, однократная запись, XIP, целостная запись); признаки, поддерживаемые этой областью (удаление сектора, снятие защиты, очитка кэша); размер сектора и блока, общее число секторов; и число резервных блоков, например.
Информация о производительности области желательно включает в себя возможности производительности отдельной области внутри устройства хранения. Для устройств хранения без множества отдельных областей может быть использована одна-единственная структура для описания устройства в целом. Информация может включать в себя предпочтительный передаваемый размер для чтения (количество секторов); предпочтительный передаваемый размер для записи (количество секторов); скорость передачи данных при чтении; скорость передачи данных при записи; время настройки чтения; и время настройки записи, например.
Стандартная информация о резерве желательно включает в себя информацию о зарезервированных областях на устройстве хранения, которые недоступны посредством стандартных операций чтения или записи, такую как: имя зарезервированной области; расположение и размер зарезервированной области; и свойства зарезервированной области (только чтение, однократная запись), например.
Поддержка для флэш-драйвера не ограничивается только флэш-устройствами и может осуществляться другими носителями (жесткими дисками, съемными флэш-картами и т.д.), где есть необходимость обеспечить большой набор расширенной информации, описывающей свойства устройства.
Что касается использования файловой системы, благодаря расширенной информации, предоставленной флэш-драйвером, для файловой системы становится возможным лучшее использование флэш-компонента для более высокой производительности и большей долговечности компонента. Например, флэш-компонент может быть сконфигурирован с двумя размерами блоков: первый участок компонента сконфигурирован менее плотно, как SLC флэш (секторы от 0 до N), а остаток флэш-памяти сконфигурирован как более плотный MLC флэш (секторы от N+1 до M). MLC и SLC - две категории доступных на данный момент видов флэш.
Примерная разметка файловой системы показана на фиг.3. Разметка 300 файловой системы содержит две области: область 320, содержащую таблицу 325 размещения файлов и область 340, содержащую данные 345 файлов и каталогов. Область 320 может иметь плотность 32 сектора на блок, например, и иметь высокую скорость чтения/записи. Область 340 может иметь плотность 64 сектора на блок, например, и иметь среднюю скорость чтения/записи.
Блоки от 0 до N в таблице 325 размещения файлов меньше, чем блоки от N+1 до М в области, содержащей данные 345 файлов и каталогов. Таким образом, блоки от 0 до N содержат меньше данных, чем блоки от N+1 до М. Можно быстрее стереть (например) меньший блок, чем больший, поэтому желательно помещать данные, которые файловая система часто читает и записывает в меньшие блоки. Это позволяет сделать систему быстрее.
Такой пример конфигурации флэш приводит к меньшим размерам блоков и более высокой функциональности для SLC участка флэш, делая эту область предпочтительной для данных, требующих частого доступа, таких как метаданные. Файловая система может выбрать сохранение своей таблицы 325 размещения файлов, требующей частого доступа, на SLC участка флэш, поместив данные 345 файлов и каталогов в оставшийся MLC участок флэш. Эта примерная разметка обеспечивает более высокую производительность SLC для наиболее часто используемых секторов и плотность MLC флэш для сохранения большего количества данных. Другие оптимизации, такие как хранение содержимого корневого каталога в SLC участке, могут также привести к увеличению производительности.
ПРИМЕРНАЯ ВЫЧИСЛИТЕЛЬНАЯ СРЕДА
Фиг.4 показывает примерную вычислительную среду, в которой могут быть реализованы варианты осуществления изобретения и аспекты. Вычислительная системная среда 100 является только одним примером подходящей вычислительной среды и не предназначена для предложения каких-либо ограничений объема ее использования или функциональности. Вычислительная среда 100 не должна быть интерпретирована как имеющая зависимость или требования, касающиеся какого-то одного или комбинации компонентов, проиллюстрированных в примере операционной среды 100.
Могут быть также использованы другие многочисленные вычислительные системные среды или конфигурации общего или специального назначения. Примеры широко известных вычислительных систем, сред и/или конфигураций, подходящих для использования включают в себя, но не в качестве ограничения: персональные компьютеры, серверные компьютеры, портативные и карманные компьютеры, многопроцессорные системы, системы на микропроцессорах, ТВ-приставки, программируемая бытовая электроника, сетевые РС, мини-компьютеры, нейнфреймы, встроенные системы, распределенные компьютерные среды, которые включают любую из вышеперечисленных или схожую с ними систему или устройство.
Могут использоваться машиноисполняемые инструкции, такие как программные модули. Обычно программные модули включают подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Распределенные компьютерные среды могут быть использованы там, где задачи выполняются удаленными устройствами обработки данных, которые связаны посредством сети связи или другой среды передачи данных. В распределенной вычислительной среде программные модули и другие данные могут быть расположены как на локальных, так и на удаленных компьютерных носителях, включая устройства памяти.
Что касается фиг.4, примерная система включает в себя вычислительное устройство общего назначения в форме компьютера 110. Компоненты компьютера 110 могут включать в себя, но не в качестве ограничения, устройство 120 обработки, системную память 130, системную шину 121, которая соединяет различные системные компоненты, включая системную память с устройством обработки 120. Устройство обработки 120 может представлять множество логических устройств обработки, таких как те, которые поддерживаются в многопоточном процессоре. Системная шина 121 может относиться к любому из нескольких типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, и использовать различные варианты шинных архитектур. В качестве примера и не в качестве ограничения, такие архитектуры включают шину с архитектурой промышленного стандарта (ISA), шину с микроканальной архитектурой (MCA), расширенную ISA шину (EISA), локальную шину, разработанную ассоциацией стандартов в области видеоэлектроники (VESA), и шину для межсоединения периферийных устройств (PCI bus, также известную как шина расширения). Системная шина 121 может также быть применена для двухточечного соединения, коммутирующей матрицы или подобного среди взаимодействующих устройств.
Компьютер 110 обычно включает в себя совокупность машиночитаемых носителей. Машиночитаемыми носителями могут быть любые доступные носители, к которым компьютер 110 может осуществлять доступ, и могут быть энергозависимыми и энергонезависимыми, съемными и несъемными. В качестве примера и не в качестве ограничения, машиночитаемые носители могут включать в себя компьютерные устройства хранения и среды связи. Компьютерные устройства хранения включают в себя как энергозависимые и энергонезависимые, так и съемные и несъемные носители, выполненные любым способом или с использованием любой технологии для хранения информации, такой как: машиночитаемые инструкции, структуры данных, программные модули и другие данные. Компьютерные устройства хранения включают в себя, но не ограничены этим, RAM, ROM, EEPROM, флэш-память и память, выполненную по другим технологиям, CD-ROM, цифровые универсальные диски (DVD) или другие оптические дисковые накопители, магнитные кассеты, магнитные ленты, магнитные дисковые накопители или другие магнитные устройства хранения или любые другие носители, которые могут быть использованы для хранения желаемой информации и к которым компьютер 110 может осуществлять доступ. Среда связи обычно воплощает машиночитаемые инструкции, структуры данных, программные модули и другие данные в модулированный сигнал данных, такой как несущая волна, или осуществляют другой механизм передачи и представляют собой любые устройства передачи информации. Термин «модулированный сигнал данных» означает сигнал, который имеет одну или более из его характеристик установленными или измененными таким образом, чтобы кодировать информацию, содержащуюся в сигнале. В качестве примера и не в качестве ограничения, среды связи включают в себя проводные среды, такие как проводная сеть или прямое кабельное соединение, и беспроводные среды, такие как звуковые, RF, инфракрасные и другие беспроводные среды. Комбинации любых из перечисленных выше сред могут также входить в машиночитаемые носители информации.
Системная память 130 включает в себя компьютерное устройство хранения в форме энергозависимой и/или энергонезависимой памяти как постоянное запоминающее устройство (ROM) 131 и оперативное запоминающее устройство (RAM) 132. Базовая система 133 ввода/вывода (BIOS), содержащая основные подпрограммы, помогающие передавать информацию между элементами компьютера 110, например, во время запуска компьютера, обычно хранится в ROM 131. RAM 132 обычно содержит данные и/или программные модули, к которым возможен немедленный доступ и/или с которыми работает процессор 120 в настоящий момент. В качестве примера, а не ограничения, фиг.4 иллюстрирует операционную систему 134, прикладные программы 135, другие программные модули 136 и данные 137 программ.
Компьютер 110 может также включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные устройства хранения. Только в качестве примера, фиг.4 иллюстрирует накопитель 140 на жестких дисках, который читает с или записывает на несъемный энергонезависимый магнитный носитель; накопитель 151 на магнитных дисках, который читает с или записывает на съемный энергонезависимый магнитный диск 152; и накопитель 151 на оптических дисках, который читает с или записывает на съемный энергонезависимый оптический диск 156, такой как CD-ROM или другой оптический носитель. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные устройства хранения, которые могут использоваться в примерной рабочей среде, включают в себя, но не в качестве ограничения: кассеты с магнитными лентами, карты флэш-памяти, цифровой универсальный диск, цифровые видеокассеты, полупроводниковые RAM, полупроводниковые ROM и т.п. Накопитель 141 на жестком диске обычно соединяется с системной шиной 121 через несъемный интерфейс памяти, такой как интерфейс 140. Накопитель 151 на магнитных дисках и накопитель 155 на оптических дисках обычно соединяются с системной шиной 121 посредством интерфейса съемной памяти, такого как интерфейс 150.
Накопители и соответствующие им компьютерные носители, обсуждаемые выше и проиллюстрированные на фиг.4, обеспечивают хранение машиночитаемых инструкций, структур данных, программных модулей и других данных для компьютера 110. На фиг.4, например, накопитель 141 на жестких дисках проиллюстрирован как хранящий операционную систему 144, прикладные программы 145, другие программные модули 146 и данные 147 программ. Следует отметить, что эти компоненты могут быть как похожими, так и отличающимися от операционной системы 134, прикладных программ 135, других программных модулей 136 и данных 137 программ. Операционной системе 144, прикладным программам 145, другим программным модулям 146 и данным 147 программ здесь даны отличные номера, чтобы проиллюстрировать, что они являются как минимум разными копиями. Пользователь может вводить команды и информацию в компьютер 110 через устройства ввода, такие как клавиатура 162 и указательное устройство 161, обычно именуемое мышью, шаровым манипулятором или сенсорной панелью. Другие устройства ввода (не изображенные на чертеже) могут включать в себя микрофон, джойстик, игровой планшет, спутниковую тарелку, сканер и т.п. Эти и другие устройства ввода часто соединяются с устройством 120 обработки через пользовательский интерфейс 160 ввода, который соединен с системной шиной, но могут быть также соединены посредством другого интерфейса и другой структуры шины, такой как параллельный порт, игровой порт, или универсальной последовательной шины. Монитор 191 или другой тип устройства отображения также подсоединяются к системной шине 121 посредством интерфейса, такого как видеоинтерфейс 190. В дополнение к монитору компьютер может также содержать другие периферийные устройства вывода, такие как громкоговорители 197 и принтер 196, которые могут быть соединены посредством периферийного интерфейса вывода 195.
Компьютер 110 может работать в сетевой среде, используя логические связи с одним или более удаленными компьютерами, такими как удаленный компьютер 180. Удаленный компьютер 180 может быть персональным компьютером, сервером, маршрутизатором, сетевым РС, одноранговым устройством или другим обычным сетевым узлом и обычно содержит многие или все элементы, описанные выше и содержащиеся в компьютере 110, хотя на фиг.4 было проиллюстрировано только устройство памяти 181. Логические связи, изображенные на фиг.4, включают локальную сеть (LAN) 171 и глобальную сеть (WAN) 173, но могут также включать и другие сети. Такие сетевые среды обычно используются в офисах, в составе корпоративных сетей, внутренних сетях и сети Интернет.
Когда компьютер 110 используется в локальной сети, то он соединяется с LAN 173 посредством сетевого интерфейса или адаптера 170. Если же компьютер 110 используется в глобальной сети (WAN) 173, такой как Интернет, то для установления с ней связи компьютер обычно использует модем 172 или другие средства связи. Модем 172, который может быть как внешним, так и внутренним, может быть соединен с системной шиной 121 посредством пользовательского интерфейса 160 ввода или другого подходящего механизма. В сетевой среде программные модули, изображенные относящимися к компьютеру 110, или их части могут храниться на удаленных устройствах хранения. В качестве примера и не ограничения, фиг.4 иллюстрирует удаленные прикладные программы 185, постоянно хранящиеся на устройстве памяти 181. Нужно иметь в виду, что изображенные сетевые соединения являются лишь примерными и что могут быть использованы другие средства установления линии связи между компьютерами.
Хотя предмет обсуждения описан языком, характерным для структурных признаков и/или методологических действий, должно быть понятно, что объект изобретения, определенный в прилагаемой формуле изобретения, не обязательно ограничен конкретными признаками или действиями, описанными выше. Более того, конкретные признаки и действия, описанные выше, раскрываются исключительно в качестве примерных форм реализации формулы изобретения.