ИСПОЛЬЗОВАНИЕ ВНЕШНИХ УСТРОЙСТВ ПАМЯТИ ДЛЯ УЛУЧШЕНИЯ ПРОИЗВОДИТЕЛЬНОСТИ СИСТЕМЫ
USING EXTERNAL MEMORY DEVICES TO IMPROVE SYSTEM EFFICIENCY

Область техники, к которой относится изобретение
Это изобретение относится, в общем, к компьютерным системам и, более конкретно, относится к улучшению производительности компьютерных систем.
Уровень техники
Вычислительные устройства, такие как персональные компьютеры, игровые пульты, интеллектуальные телефоны и подобное, часто используют отнимающий много времени процесс, чтобы загружать и кэшировать в памяти страницы, используемые приложениями. Страницы обычно хранятся в энергонезависимых носителях с вращательным движением, таких как магнитный жесткий диск (например, накопитель на жестких дисках). Однако процессор устройства исполняет инструкции только из адресуемой памяти, такой как DRAM или какой-то другой тип энергозависимой электронной памяти. Операционные системы, используемые в вычислительных устройствах, кэшируют в памяти страницы, используемые приложениями, так что приложения не должны часто загружать страницы из носителей с вращательным движением.
Передача страниц из накопителя на жестких дисках является медленной, особенно, когда приложение загружает большой файл. Это также преобладает при восстановлении компьютерной системы из спящего режима. Значимым фактором для времени передачи является скорость разгона привода дисков. Относительно небольшие диски, вращающиеся с относительно медленным RPM, требуют 5-6 секунд, чтобы разогнаться и стать готовым к использованию. Большие диски, такие как устройства с несколькими жесткими дисками внутри, и диски, вращающиеся при более быстрых величинах RPM, чтобы разогнаться, требуют 10-12 секунд или больше.
Эта проблема ухудшается по мере того, как приложения растут в размерах, чтобы включить в себя средства (fixes) безопасности и стать более надежными. Эти приложения для работы часто требуют больше памяти для работы без необходимости непрерывно переносить данные в и из хранящего носителя с вращательным движением. Однако обновление памяти машин часто является слишком дорогостоящим для осуществления для корпораций и конечных пользователей или находится за пределами уровня квалификации индивидуальных пользователей. Хотя стоимость самой памяти является низкой, труд и время простоя, связанные с физическим вскрытием каждой машины и добавлением RAM, могут стоить несколько сотен долларов.
Другая проблема, где обновление памяти машин часто является слишком дорогостоящим для осуществления, это когда от системы требуется только время от времени исполнять приложения, более большие и более сложные, чем обыкновенно. Например, бухгалтерии компании может потребоваться исполнять приложения объединения всего несколько раз в месяц. Чтобы работать эффективно, более большие и более сложные приложения требуют больше памяти. Хотя стоимость самой памяти является низкой, труд и время простоя, связанные с физическим вскрытием каждой машины и добавлением RAM, могут стоить несколько сотен долларов. Эта затрата может не оправдывать эту дополнительную память для того малого количества раз, когда приложение исполняется.
Сущность изобретения

Это изобретение ориентировано на улучшенную архитектуру администрирования памяти, которая предоставляет систему, способ и механизм, который использует внешние (энергозависимые или энергонезависимые) устройства памяти, чтобы кэшировать секторы из жесткого диска (т.е. дисковые секторы) и/или более медленных компонентов памяти, для улучшения производительности системы. Когда внешнее устройство памяти (EMD) подсоединяется к вычислительному устройству или к сети, к которой подсоединено вычислительное устройство, система распознает это EMD и заполняет это EMD дисковыми секторами и/или секторами памяти. Направленные к сектору I/O запросы чтения система направляет к EMD кэшу вместо действительного сектора. Если EMD подсоединено к локальной шине USB2, время доступа может быть в двадцать раз быстрее времени чтения из жесткого диска. Использование устройств EMD увеличивает производительность и продуктивность в системах вычислительных устройств за стоимость, равную доли стоимости добавления памяти к вычислительному устройству. Дополнительно, потребительские устройства, такие как Xbox, могут исполнять программное обеспечение с более широкими возможностями с помощью памяти устройств EMD.
Система обнаруживает, когда некоторое EMD используется впервые по отношению к вычислительному устройству. Обнаруживается тип EMD, и устанавливается драйвер, который используется, чтобы кэшировать дисковые секторы в EMD. Драйвер использует EMD как асинхронный кэш, кэшируя секторы из любого диска и/или более медленного устройства памяти в системе. Если нет никакого предварительного знания о том, какие секторы являются ценными в смысле частого доступа, для заполнения EMD кэша система может использовать данные из вычислительной машины, чтобы определять, какие секторы используются. Альтернативно, система заполняет EMD кэш некоторым конкретным сектором, когда к этому конкретному сектору осуществляется доступ в течение работы. В следующий раз, когда к этому конкретному сектору должен осуществляться доступ для операции чтения, система направляет эту операцию чтения обращаться к копии из EMD.
Система может отслеживать шаблоны использования и определять, к каким дисковым секторам доступ осуществляется наиболее часто. При последующих использованиях EMD система кэширует в EMD те секторы, к которым доступ осуществляется наиболее часто. Если EMD присутствует, EMD может предварительно заполняться данными в течение запуска операционной системы, когда вычислительное устройство подключается к питанию.
Дополнительные признаки и преимущества этого изобретения будут видны из последующего подробного описания иллюстративных вариантов осуществления, которое продолжается со ссылкой на сопровождающие чертежи.
Краткое описание чертежей
Наряду с тем, что прилагаемая формула изобретения подробно излагает признаки настоящего изобретения, это изобретение вместе с его объектами и преимуществами может пониматься наилучшим образом из последующего подробного описания, взятого в связи с сопровождающими чертежами, из которых:
фиг.1 - это блок-схема, в общем, показывающая иллюстративную компьютерную систему, в которой может быть реализовано настоящее изобретение;
фиг.2 - это блок-схема, представляющая архитектуру администрирования памяти в соответствии с аспектом этого изобретения; и
фиг.3a-3b - это блок-схема последовательности операций, в общем, показывающая этапы, которые выполняет это изобретение при использовании внешних устройств памяти, чтобы улучшить производительность системы.
Осуществление изобретения
Это изобретение нацелено на улучшенную архитектуру администрирования памяти, которая предоставляет систему, способ и механизм, который использует внешние (энергозависимые или энергонезависимые) устройства памяти, чтобы кэшировать секторы из жесткого диска (т.е. дисковые секторы) или из более медленных устройств памяти, для улучшения производительности системы. Например, многие классы портативных вычислительных устройств не имеют никаких накопителей на жестких дисках или запоминающих устройств с вращательным движением, но все же реализуют иерархические архитектуры памяти. Эти портативные вычислительные устройства извлекут большую выгоду из этого изобретения в том, что оно позволит им исполнять более большие и более сложные приложения масштаба предприятия внутри офисного помещения. С появлением 802.11n, 200-500Мб беспроводное соединение будет доступным для любого беспроводного устройства, и использование внешних устройств памяти и/или серверов базирующейся на сети памяти улучшит производительность системы.

Внешняя память используется для кэширования данных из устройств, которые являются, в общем, более медленными в отношении доступа к данным, так что в отношении времени доступа к данным, используемым приложениями/операционными системами, доступ может осуществляться быстрее, тем самым улучшая производительность. Для более старых вычислительных устройств, в которых добавление фактического RAM является слишком дорогостоящим, использование внешних устройств памяти увеличит производительность и продуктивность на более старых устройствах за часть стоимости и даст возможность пользователям получить в качестве результата улучшение надежности, безопасности и продуктивности более новых программных приложений на существующем аппаратном обеспечении. Например, потребительские устройства, такие как Xbox, выиграют, исполняя программное обеспечение с более широкими возможностями в смысле улучшенной графики и производительности. Дополнительно, количество памяти, требуемое для этой цели, вероятно намного меньше, чем количество памяти, требуемое для обновления системы до некоторого заданного уровня.
Обращаясь к чертежам, где одинаковые ссылочные позиции указывают на одинаковые элементы, это изобретение показывается как реализующееся в подходящей вычислительной среде. Хотя не это требуется, это изобретение будет описываться в общем контексте машинно-исполнимых инструкций, таких как программные модули, исполняемые персональным компьютером. В общем, программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Более того, специалисты в данной области должны принять во внимание, что это изобретение может применяться на практике с другими конфигурациями компьютерных систем, включая сюда ручные устройства, многопроцессорные системы, микропроцессорную или программируемую бытовую электронику, сетевые PC, миникомпьютеры, компьютеры-мэйнфреймы и подобное. Это изобретение также может использоваться на практике в распределенных вычислительных средах, где задачи выполняются удаленными обрабатывающими устройствами, которые соединены через сеть связи. В распределенной вычислительной среде программные модули могут располагаться как в локальных, так и в удаленных запоминающих хранящих устройствах.
Фиг.1 показывает пример подходящей среды 100 вычислительной системы, в которой это изобретение может реализовываться. Среда 100 вычислительной системы является только одним примером подходящей вычислительной среды и не предполагает предлагать какое-либо ограничение в отношении объема использования или функциональности этого изобретения. Также не должна вычислительная среда 100 интерпретироваться как имеющая какую-либо зависимость или требование, относящиеся к какому-либо или комбинации компонентов, показанных в иллюстративной операционной среде 100.
Это изобретение является работоспособным с многочисленными другими средами вычислительных систем или конфигурациями общего назначения или специального назначения. Примеры хорошо известных вычислительных систем, сред и/или конфигураций, которые могут подходить для использования с этим изобретением, включают в себя, но не ограничены этим: персональные компьютеры, серверные компьютеры, ручные или портативные устройства, планшетные устройства, многопроцессорные системы, микропроцессорные системы, приставки к телевизору, программируемую бытовую электронику, сетевые PC, игровые пульты, интеллектуальные телефоны, персональные помощники данных, миникомпьютеры, компьютеры-мэйнфреймы, распределенные вычислительные среды, которые включают в себя любые из вышеперечисленных систем или устройств, и подобное.
Это изобретение может описываться в общем контексте машинно-исполнимых инструкций, таких как программные модули, исполняемые компьютером. В общем, программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Это изобретение также может использоваться на практике в распределенных вычислительных средах, где задачи выполняются удаленными обрабатывающими устройствами, которые соединены через сеть связи. В распределенной вычислительной среде программные модули могут располагаться в локальных и/или удаленных компьютерных запоминающих носителях, включая сюда запоминающие хранящие устройства.
Со ссылкой на Фиг.1 иллюстративная система для реализации этого изобретения включает в себя вычислительное устройство общего назначения в форме компьютера 110. Компоненты компьютера 110 могут включать в себя, но не ограничены этим, обрабатывающее устройство 120, системную память 130 и системную шину 121, которая соединяет различные компоненты системы, включающие в себя системную память, с обрабатывающим устройством 120. Системная шина 121 может являться любым из нескольких типов структур шин, включающих в себя шину памяти или контроллер памяти, периферийную шину и локальную шину, использующую любую из многообразия архитектур шин. В качестве примера, и не ограничения, такие архитектуры включают в себя шину промышленной стандартной архитектуры (ISA), шину микроканальной архитектуры (MCA), шину расширенной ISA (EISA), локальную шину ассоциации по стандартам в области видеоэлектроники (VESA), универсальную последовательную шину (USB) и шину соединения периферийных компонент (PCI), также известную как шина расширения.
Компьютер 110 обычно включает в себя многообразие машинно-читаемых носителей. Машинно-читаемые носители могут быть любыми доступными носителями, к которым компьютер 110 может осуществлять доступ, и включают в себя как энергозависимые, так и энергонезависимые носители, и съемные и несъемные носители. В качестве примера, и не ограничения, машинно-читаемые носители могут содержать компьютерные запоминающие носители и носители передачи данных. Компьютерные запоминающие носители включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как машинно-читаемые инструкции, структуры данных, программные модули или другие данные. Компьютерные запоминающие носители включают в себя, но не ограничены этим, RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CD-ROM, универсальные цифровые диски (DVD) или другое оптическое дисковое хранилище, магнитные кассеты, магнитную ленту, магнитное дисковое хранилище или другие магнитные хранящие устройства, или любой другой носитель, который может использоваться для хранения требуемой информации и к которому компьютер 110 может осуществлять доступ. Носители передачи данных обычно реализуют машинно-читаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущее колебание, или другом транспортном механизме и включают в себя любые носители доставки информации. Термин "модулированный сигнал данных" означает сигнал, который имеет одну или более своих характеристик установленными или измененными таким образом, чтобы кодировать информацию в этом сигнале. В качестве примера, и не ограничения, носители передачи данных включают в себя проводные носители, такие как проводная сеть или прямое проводное соединение, и беспроводные носители, такие как акустические, RF, инфракрасные и другие беспроводные носители. Комбинации любого из вышеперечисленного также должны включаться в рамки объема машинно-читаемых носителей.
Системная память 130 включает в себя компьютерные запоминающие носители в форме энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ROM) 131 и оперативное запоминающее устройство (RAM) 132. Базовая система 133 ввода/вывода (BIOS), содержащая базовые процедуры, которые помогают переносить информацию между элементами внутри компьютера 110, как в течение запуска, обычно хранится в ROM 131. RAM 132 обычно содержит данные и/или программные модули, которые непосредственно доступны для и/или в настоящем обрабатываются обрабатывающим устройством 120. В качестве примера, и не ограничения, Фиг.1 показывает операционную систему 134, прикладные программы 135, другие программные модули 136 и программные данные 137.
Компьютер 110 также может включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие носители. Только в качестве примера Фиг.1 показывает привод 141 жесткого диска, который считывает из или записывает на несъемные энергонезависимые магнитные носители привод 151 магнитного диска, который считывает из или записывает на съемный энергонезависимый магнитный диск 152, и привод 155 оптических дисков, который считывает из или записывает на съемный энергонезависимый оптический диск 156, такой как CD-ROM или другие оптические носители. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие носители, которые могут использоваться в иллюстративной операционной среде, включают в себя, но не ограничены этим, кассеты магнитной ленты, платы флэш-памяти, универсальные цифровые диски, цифровую видеоленту, твердотельное RAM, твердотельное ROM и подобное. Привод 141 жесткого диска обычно подсоединяется к системной шине 121 через интерфейс несъемной памяти, такой как интерфейс 140, и привод 151 магнитного диска и привод 155 оптических дисков обычно подсоединяются к системной шине 121 с помощью интерфейса съемной памяти, такого как интерфейс 150.
Приводы и их ассоциированные компьютерные запоминающие носители, обсуждавшиеся выше и показанные на Фиг.1, предоставляют хранилище машинно-читаемых инструкций, структур данных, программных модулей и других данных (например, мультимедиаданных, аудиоданных, видеоданных и т.д.) для компьютера 110. На Фиг.1, например, привод 141 жесткого диска показан как хранящий операционную систему 144, прикладные программы 145, другие программные модули 146 и программные данные 147. Отметим, что эти компоненты могут либо быть такими же как, либо отличными от операционной системы 134, прикладных программ 135, других программных модулей 136 и программных данных 137. Операционной системе 144, прикладным программам 145, другим программным модулям 146 и программным данным 147 здесь даны другие ссылочные позиции, чтобы показать, что, по меньшей мере, они являются другими копиями. Пользователь может вводить команды и информацию в компьютер 110 через устройства ввода, такие как клавиатура 162, указывающее устройство 161, обычно указываемое как мышь, шаровой указатель или сенсорная панель, микрофон 163 и планшетный или электронный цифровой преобразователь 164. Другие устройства ввода (не показаны) могут включать в себя джойстик, игровую приставку, спутниковую параболическую антенну, сканер или подобное. Эти и другие устройства ввода часто подсоединяются к обрабатывающему устройству 120 через интерфейс 160 пользовательского ввода, который соединен с системной шиной, но могут подсоединяться с помощью другого интерфейса и структур шин, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 191 или другой тип устройства отображения также подсоединяется к системной шине 121 через интерфейс, такой как видеоинтерфейс 190. Монитор 191 также может объединяться с панелью сенсорного экрана или подобным. Отметим, что монитор и/или панель сенсорного экрана может физически подсоединяться к корпусу, в котором заключено вычислительное устройство 110, как, например, в персональном компьютере планшетного типа. В дополнение, компьютеры, такие как вычислительное устройство 110, также могут включать в себя другие периферийные устройства вывода, такие как громкоговорители 197 и принтер 196, которые могут подсоединяться через периферийный интерфейс 194 вывода или подобное.
Компьютер 110 может работать в сетевой среде, используя логические связи с одним или более удаленными компьютерами, такими как удаленный компьютер 180. Удаленный компьютер 180 может быть персональным компьютером, сервером, маршрутизатором, сетевым PC, одноранговым устройством или другим общим сетевым узлом и обычно включает в себя многие или все элементы, описанные выше по отношению к компьютеру 110, хотя на Фиг.1 было показано только запоминающее хранящее устройство 181. Логические связи, изображенные на Фиг.1, включают в себя локальную сеть (LAN) 171 и глобальную сеть (WAN) 173, но могут также включать в себя другие сети. Такие сетевые среды являются обычным явлением в офисах, компьютерных сетях масштаба предприятия, внутренних сетях и сети Интернет. Например, компьютерная система 110 может содержать машину-источник, из которой выходят данные, и удаленный компьютер 180 может содержать машину назначения. Отметим, однако, что машина-источник и машина назначения не должны быть соединены посредством сети или любого другого средства, но вместо этого данные могут передаваться через любые носители, допускающие запись платформой источника и чтение платформой или платформами назначения.
При использовании в среде LAN сети компьютер 110 подсоединяется к LAN 171 через сетевой интерфейс или адаптер 170. При использовании в среде WAN сети компьютер 110 обычно включает в себя модем 172 или другое средство для установки связей через WAN 173, такую как сеть Интернет. Модем 172, который может быть внутренним или внешним, может подсоединяться к системной шине 121 через интерфейс 160 пользовательского ввода или другой соответствующий механизм. В сетевой среде программные модули, изображенные по отношению к компьютеру 110 или его частям, могут храниться в удаленном запоминающем хранящем устройстве. В качестве примера, и не ограничения, Фиг.1 показывает удаленные прикладные программы 185 как постоянно находящиеся в устройстве 181 памяти. Следует принять во внимание, что показанные сетевые соединения являются иллюстративными, и может использоваться другое средство установки канала связи между компьютерами.
В последующем описании это изобретение будет описываться со ссылкой на действия и символические представления операций, которые выполняются одним или более компьютерами, если не указано иное. Следует понимать, что как таковые такие действия и операции, которые временами указываются как находящиеся в исполнении компьютером, включают в себя обработку обрабатывающим устройством компьютера электрических сигналов, представляющих данные в структурированной форме. Эта обработка преобразует данные или содержит их в местоположениях в системе памяти компьютера, что по-новому конфигурирует или иначе изменяет работу компьютера способом, хорошо понимаемым специалистами в данной области. Структуры данных, где содержатся данные, являются физическими местоположениями памяти, которые имеют конкретные свойства, определенные форматом этих данных. Однако наряду с тем, что это изобретение описывается в предшествующем контексте, это не означает, что оно является ограничивающим, как специалисты в данной области должны принять во внимание, что различные из действий и операций, описываемых ниже, также могут реализовываться в аппаратном обеспечении.
1
2
Обращаясь теперь к Фиг.2, настоящее изобретение предоставляет администратор 200 памяти, управляющий стандартной памятью 202 устройства и находящийся в состоянии связи с администратором 204 внешних устройств памяти (EMD). EMD администратор 204 находится под администратором 200 памяти и над физическим аппаратным обеспечением 206, 206, 208 и сетью 210. Физическое аппаратное обеспечение может являться накопителем на жестких дисках, приводом мультимедиа, таким как CD привод, DVD приводом или приводом комбинации CD/DVD, оптическим диском и т.д., локально расположенным или удаленно доступным через сеть. Наряду с тем, что EMD администратор 204 показан отдельно, следует понимать, что EMD администратор 204 может быть объединен с администратором 200 памяти. EMD администратор 204 обнаруживает, когда внешнее устройство 212 памяти (EMD) является доступным, с помощью стандартных способов, таких как технология plug-n-play и подобное. EMD 212 может быть в форме съемного твердотельного энергонезависимого устройства памяти, которое может подсоединяться к вычислительному устройству, такого как устройство согласно спецификации CompactFlash, как поддерживается ассоциацией CompactFlash, или подобного. Оно также может быть в форме энергозависимого устройства памяти. EMD может фактически содержаться внутри существующих снаружи подсоединяемых изделий, таких как мышь, клавиатура или сетевое подсоединяемое устройство, и может иметься множество таких устройств, подсоединенных в одно и то же время. Другое альтернативное местоположение внешнего устройства памяти - это в удаленном местоположении в сети 210 или части сетевой инфраструктуры, такой как память в сервере.
Настоящее изобретение усиливает память, доступную для использования в EMD, для сохранения в памяти дисковых секторов, которые вероятно будут использоваться приложениями, и направляет I/O запросы, которые направлены к данным, находящимся в дисковых секторах, скопированных в EMD память, чтобы они считывались из EMD памяти вместо сектора на диске.
Со ссылкой на Фиг.3a и 3b теперь будут описываться этапы, которые выполняет это изобретение, чтобы использовать внешние устройства памяти. В последующем описании секторы, используемые для описания этого изобретения, будут постоянно находиться на накопителе 206 на жестких дисках. Наряду с тем, что это изобретение описывается в вышеуказанном контексте, оно не предполагается быть ограничивающим, так как специалисты в данной области должны понимать, что дисковые секторы из других устройств, для которых необходим разгон, таких как CD/DVD устройство 208 и подобных, могут кэшироваться на диск. Секторы, которые кэшируются, также могут постоянно находиться на более медленных устройствах памяти. Наряду с тем, что Фиг.3a и 3b показывают этапы последовательно, следует понимать, что эти этапы могут предприниматься в другом порядке и/или параллельно. EMD администратор 204 обнаруживает, когда EMD 212 является доступным (этап 300). Один подход, чтобы обнаруживать какое-либо EMD, это интерфейс обнаружения, описанный в патентной заявке США 10/837,986, зарегистрированной 3 мая 2004, озаглавленной "Non-Volatile Memory Cache Performance Improvement", этим включенной сюда по ссылке в ее полноте. Могут использоваться другие способы, такие как стандартные способы технологии plug and play. Определяется размер и тип памяти, доступной в EMD 212. Если EMD 212 используется в вычислительном устройстве в первый раз, для EMD 212 устанавливается драйвер (этап 302). Драйвер используется, чтобы осуществлять с EMD 212 связь, и использует EMD в качестве асинхронного блокового кэша, чтобы кэшировать секторы из дисков 206 в системе. Обновление кэша является асинхронным в случае, когда EMD может являться медленным, и ожидание, когда он будет обновлен, может иметь результатом увеличенное время ожидания для исходного запроса чтения.
Если другие EMD являются доступными для использования, система назначает приоритеты, как эти EMD будут заполняться кэширующими дисковыми секторами, которые более вероятно будут использоваться на устройствах EMD, которые имеют более лучшие пропускную способность и время ожидания по сравнению с другими доступными EMD (этап 304). Некоторые вычислительные устройства отслеживают использование диска, как например, к каким дисковым секторам наиболее часто осуществляют доступ операционная система и приложения, последние времена доступа, шаблоны доступа, частоту доступа и подобное. Если эта предыстория доступна, EMD заполняется, базируясь на этой предыстории (этап 306). Если предыстория не доступна, EMD заполняется дисковыми секторами, к которым осуществляют доступ приложения (или вычислительное устройство) в течение времени, когда приложение осуществляет чтение с диска (этап 308). Отметим, что EMD может заполняться в формате, который требуется этим EMD. Информация использования (т.е. предыстория) дисковых секторов отслеживается для определения, какие секторы должны зеркально отображаться в EMD в следующий раз, когда это EMD будет доступным для использования. Используемые алгоритмы аналогичны алгоритмам, используемым для упреждающего администрирования страничной памяти, как описывается в патентной заявке США номер 10/325,591, зарегистрированной 20 декабря 2002, озаглавленной "Methods and Mechanisms for Proactive Memory Management", которая этим включается сюда по ссылке в ее полноте. Различие состоит в том, что вместо определения, какие страницы в памяти являются полезными для кэширования, настоящее изобретение определяет, какие дисковые секторы являются полезными для кэширования.
В одном варианте осуществления, где вычислительное устройство находится в сетевой системе, сетевой сервер сохраняет информацию о вычислительном устройстве и применяет удаленные алгоритмы, которые помогают EMD администратору 204 в администрировании локальной памяти для вычислительного устройства. Этот вариант осуществления является особенно подходящим для клиентов нижнего класса, которые не имеют памяти или компьютерной мощности, чтобы определять, какие дисковые секторы должны кэшироваться. Удаленные алгоритмы выполняют детальный анализ шаблонов данных, шаблонов доступа и т.д. в клиенте и производят более оптимальные результаты, чем может производить клиент нижнего класса.
В течение работы приложение или вычислительное устройство могут записывать в дисковый сектор, который копируется в EMD. Приложение или вычислительное устройство никогда не записывает в EMD. Вместо этого, операция записи применяется к дисковому сектору. После того как операция записи завершается, дисковый сектор копируется назад в EMD (этап 310). Этот подход используется для того, чтобы, если EMD удаляется, никакие данные не потерялись, как, например, было бы в удаленной файловой системе, когда ссылка на удаленную файловую систему станет неработоспособной; вместо этого вычислительное устройство считывает с диска вместо EMD. Как результат, это изобретение является более устойчивым к проблемам соединения, таким как потерянные соединения, удаление устройств EMD и т.д.
Всякий раз, когда принимается I/O запрос чтения, EMD администратор 204 осуществляет проверку, чтобы определить, направлен ли запрос к дисковому сектору, который был скопирован в память устройства EMD 212. Если запрос чтения направлен к дисковому сектору, который был скопирован в память устройства EMD, EMD администратор 204 перенаправляет этот запрос чтения к EMD (этап 312). Результат состоит в том, что этот запрос чтения выполняется быстрее, чем если бы этот запрос чтения выполнялся на жестком диске 206.
EMD 212 может удаляться пользователем в любое время. Когда EMD удаляется, система обнаруживает это удаление. Если доступны другие устройства EMD, оставшиеся устройства EMD заполняются заново (этап 314), если EMD, которое было удалено, не являлось самым медленным доступным EMD. Если другие EMD не доступны (или, если EMD, которое было удалено, являлось самым медленным EMD), данные читаются из жесткого диска (этап 316). Этапы 300-316 повторяются всякий раз, когда некоторое EMD добавляется или удаляется, и этапы 310 и 312 повторяются так долго, пока EMD является доступным для использования.
Заметим, что если EMD является энергонезависимым, EMD память может предварительно заполняться секторами, содержащими конфигурационные данные, в течение выключения питания или в спящем режиме. В течение подключения к питанию или восстановления, содержимое EMD может считываться, пока диск разгоняется. Использование этой технологии может уменьшить время загрузки и время пробуждения из спящего режима для компьютерной системы. Дополнительные детали могут быть найдены в патентной заявке США номер 10/186,164, зарегистрированной 6/27/2002, озаглавленной "Apparatus and Method to Decrease Boot Time and Hibernate Awaken Time of a Computer System", этим включенной сюда по ссылке в ее полноте.
Теперь, когда все этапы описаны, будут обсуждаться улучшения производительности. Ключевые факторы, которые определяют улучшения производительности, которые можно ожидать от внешних устройств памяти, это время ожидания передачи и пропускная способность для EMD и его шины (например, USB1/2, PCMCIA, Ethernet 100BaseT и т.д.), размер внешней памяти, политики, используемые в администрировании кэша, и сценарии и рабочие нагрузки, относящиеся к тому, как внешняя память используется.
Время ожидания передачи и пропускная способность для большинства обычных шин, к которым EMD может подсоединяться, варьируют. Ожидается, что шина становится первичным узким местом для большинства операций, если EMD состоит из регулярного RAM, упакованного как устройство, которое может подсоединяться к конкретной шине. Время ожидания шины и пропускная способность для USB1, USB2 и PCI/PCMCIA оценивается с помощью выпуска небуферизованных дисковых вводов/выводов возрастающих размеров (4КБ, 8КБ, 16КБ, 32КБ и 64КБ), которые должны удачно обратиться к буферу дорожек (который обычно является регулярной памятью) диска, подсоединенного к этой шине. Следующие значения из таблицы 1 были выведены с помощью простой пригонки строки к временам для передачи размеров вводов/выводов.
Таблица 1
Тип шины
Время установки (мкс)
Время передачи каждого КБ после установки (мкс)
Полное время передачи 4КБ (мкс)
PCI/PCMCIA (шина платы)
100
15
160
USB2
400
30
520
USB1
4000
1000
8000
Чтобы иметь смысл в качестве дискового кэша, копирование данных из EMD должно быть более быстрым, чем обращение за этим к диску. 4КБ произвольный дисковый I/O, который включает в себя поиск (seek), занимает в пределах от 5-15 мс на обычных дисках настольного компьютера и портативного компьютера. Предположим, что для 4КБ дискового I/O с поиском используется 10 мс, данные могли бы извлекаться в 60 раз быстрее из EMD кэша на PCMCIA или в 20 раз быстрее из EMD на USB2. В целом, USB2 кажется очень подходящей шиной для подсоединения устройств EMD.
Следует заметить, что одна проблема с USB1 состоит в том, что времена установки 4 мс сделают маловероятными какие-либо приросты производительности. Это можно обойти с помощью содержания изохронного канала передачи всегда открытым. Получение 4КБ из EMD на USB1 тогда обычно будет в два раза быстрее, чем получение их из диска с поиском. Вследствие низкой скорости пропускной способности через USB1, все еще будет быстрее обращаться к диску за 16КБ, 32КБ и 64КБ вводами/выводами, которые обычно встречаются на клиентских системах. Однако USB1 кэш, используемый только для страничного файла и метаданных файловой системы, к которым обычно осуществляется доступ с 4КБ произвольными вводами/выводами, может все же предоставлять увеличение производительности.

Принятие USB2 началось только после выпуска пакета обновления 1 (service pack 1) для Windows XP. Большинство 64МБ и 128МБ систем, которые больше всего выиграют от EMD, обычно не имеют USB2. Однако эти системы обычно в действительности имеют сетевые платы 100BaseT Ethernet. Времена передачи, равные 10МБ/с, будут достаточными для значительного увеличения производительности от EMD. EMD может присоединяться в качестве пропускающего сетевого устройства для компьютера или даже может вставляться в сетевые коммутаторы для улучшения производительности малой сети компьютеров. Выход за пределы коммутатора приносит много проблем надежности и безопасности вследствие совместно используемой сетевой полосы пропускания, но может осуществляться.
Как с любым кэшем, фактические политики, используемые в управлении тем, какие данные содержать в кэше, являются важным фактором в определении результирующих приростов производительности. Если EMD используется как блоковый кэш для лежащих в основе дисков и других устройств, этот EMD кэш может заполняться, когда завершаются чтения из лежащего в основе устройства, так же, как когда издаются [запросы] записи из приложений и файловых систем. Как описывалось ранее, данные в EMD кэше должны обновляться асинхронно, чтобы избежать увеличения времени запросов исходного устройства. Если приходит запрос на некоторый диапазон, который является асинхронно обновляющимся, он может просто передаваться вниз лежащему в основе устройству. Если асинхронное обновление является ожидающим выполнения, для того же диапазона должен иметься очень недавний запрос, который инициировал это обновление, и данные для упомянутого диапазона, вероятно, будут кэшироваться в устройстве (например, буфере дорожек) или контроллере.
Обычно блоковые кэши администрируют с помощью LRU алгоритма. В этом алгоритме указываемые блоки помещаются в конец LRU списка всякий раз, когда запрос чтения удачно обращается в кэш или терпит неудачу (misses the cache). Когда блок, который находится не в кэше, считывается или записывается, блоки из передней части LRU списка перенаправляются, чтобы кэшировать содержимое новых блоков. Как результат, LRU алгоритмы подвержены размытию, так как ценные блоки в кэше со временем полностью перемешиваются. Алгоритмы, такие как те, что разбивают список в многочисленные подсписки, расположенные в соответствии с приоритетом, и содержат более полную предысторию использования после последнего времени доступа, будут более гибкими.
На Windows NT, кэширование файловых и страничных данных осуществляется администратором памяти посредством резервного страничного списка. Файловые системы, реестр и другие системные компоненты используют механизмы "файловый объект/отображение", чтобы кэшировать их данные на одном и том же уровне через администратора памяти и кэша. Если на любом другом уровне помещается другой кэш, это имеет результатом двойное кэширование данных. Это верно также для EMD кэшей. Чтобы избежать этого, администратор памяти настоящего изобретения может быть расширен, чтобы помещать менее ценные резервные страницы списка в более медленные внешние устройства памяти. Всякий раз, когда к этим страницам осуществляется доступ, администратор памяти может выделить страницы физической памяти и скопировать эти данные назад из внешнего устройства памяти. Администратор EMD памяти и ассоциированный администратор кэша могут использовать указания приоритета страниц, которые предоставляет патентная заявка США номер 10/325,591 для упреждающего и гибкого администрирования унифицированного кэша страниц. Так как это потребует изменений администратора памяти ядра, любые EMD решения, построенные для Windows XP, вероятно будут страдать от двойного кэширования данных. Моделирования показывают, что, несмотря на двойное кэширование, существенные приросты производительности все же возможны.
Другой важный параметр для кэширования - это размер блока и величина кластеризации и опережающего считывания. Всякий раз, когда имеется отсутствие (a miss) в кэше, даже если запрашивается меньшая величина данных, нужно считывать, по меньшей мере, размер блока данных с лежащего в основе диска или устройства и, возможно, даже кластеризовать больше блоков вокруг запрошенного смещения. Кластеризация может устранять осуществление будущих поисков (seeks) назад к одному и тому же положению на диске. Однако она также может увеличить время выполнения исходного запроса и даже вызвать большее перемешивание в LRU списке, так как для каждого запроса указывается больше блоков. Дополнительно, опережающее считывание может ставиться в очередь для получения даже больше последовательных данных из диска, пока так делать является эффективным, без оказания влияния на время для исходного запроса. Однако это может иметь результатом увеличение времени ожидания для последующего запроса, которому нужно осуществлять поиск где-либо еще в устройстве.
Следует заметить, что список местоположений устройств, которые кэшем считаются ценными, может сохраняться сквозь переключения питания, такие как загрузка, или даже периоды интенсивного использования, которые очищают регулярное содержимое кэша. Этот список может использоваться, чтобы заново заполнять содержимое кэша после такого переключения с должной поддержкой назначения приоритетов для I/O заднего плана.
Как с любым анализом производительности, существенным моментом является рассмотреть характерные сценарии и рабочие нагрузки для получения содержательных и полезных данных. Чтобы охарактеризовать улучшения производительности, которые можно ожидать от EMD кэшей на существующих Windows (XP & 2000), выполнялись эксперименты с простым LRU сквозным блоковым кэшированием на уровне диска. Как обсуждалось выше, оно будет страдать от двойного кэширования данных. Однако эти эксперименты легче эмулировать, моделировать и в действительности построить такие EMD кэши и измерить их вклад. Результаты показывают, что даже такой простой кэш может иметь большое влияние на производительность диска и системы. Интеграция с администратором памяти вычислительного устройства и использование более интеллектуальной политики дополнительно увеличат приросты.
Так как эксперимент в основном осуществляет кэширование для дисковых доступов, успех кэша может измеряться посредством сравнения всего времени для воспроизведения одного и того же множества дисковых доступов, которые собраны из характерной рабочей нагрузки или сценария, без кэша и с различными конфигурациями кэша. В большинстве клиентских сценариев уменьшения во временах чтения дисков имеют результатом пропорциональное увеличение быстроты реагирования или тестовых оценок.
Чтобы определить влияние EMD кэша на реальное окружение, рассматривались два сценария. Один использовал дисковые трассировки, собранные из систем реальных конечных пользователей в течение часов на 128МБ и 256МБ системах. Другой использовал дисковые трассировки из промышленных тестов, таких как Business Winstone 2001, Content Creation Winstone 2002 и модифицированная версия Business Winstone, которая использует приложения Office 2003. Трассировки были получены для многочисленных размеров памяти, таким образом, приросты могут сравниваться от простого EMD кэша до фактического увеличения размера системной памяти.
EMD устройства могут точно эмулироваться посредством использования регулярного блокового кэша и добавления задержки к обращениям кэшу, базируясь на требуемой EMD шине. После копирования запрошенных байтов из памяти можно определить время передачи, которое вычисляется для требуемой EMD шины, базируясь на времени установки и величинах пропускной способности, таких как показаны в таблице 1.
Процедура для этого оценивания состоит в том, чтобы: сконфигурировать целевую систему для исполнения при целевом размере памяти с помощью переключателя /maxmem boot.ini; запустить на исполнение сценарий обычного использования или промышленный тест и отследить сгенерированные дисковые вводы/выводы; сконфигурировать блоковый кэш с требуемыми параметрами для размера кэша и пропускной способности/времени ожидания для EMD устройства; повторно воспроизвести отслеженные дисковые вводы/выводы и собрать результирующие дисковые вводы/выводы, проистекающие из промахов кэша (cache misses); и сравнить времена и дисковые доступы для этих двух исполнений.
Идеально сценарии должны исполняться с подходящим образом сконфигурированным блоковым кэшем и сравненными конечными результатами (времена отклика или тестовые оценки). Однако, если связь между дисковыми временами и конечными результатами уже установлена, простое воспроизведение собранных дисковых вводов/выводов потребляет меньше времени для многочисленных EMD конфигураций, которые должны оцениваться. Использовался простой моделирующий модуль для грубой оценки потенциальных приростов от EMD кэша. Это сделало возможной обработку дисковых трассировок длиной в часы из 128МБ потребительских систем, так же, как из внутренних систем для разработки, и измерение влияния различных конфигураций EMD кэшей. Чтобы дополнительно все упростить, мы сосредоточились на времени для обработки диском [запросов] чтения и проигнорировали времена записи диска. Характерные времена поиска определялись посредством игнорирования времен поиска, меньших, чем 2 мс, и больших, чем 20 мс. Отслеживалась последняя пара положений головки диска, чтобы смоделировать "буферизацию дорожек". Несмотря на вышеописанные осложнения, дисковое моделирование обычно находится в рамках приемлемого диапазона: 75% предсказаний находятся внутри 15% фактических времен. Любое неверное предсказание обычно проистекает из консервативного моделирования и предсказания более высоких времен чтения диска. Даже хотя дисковый моделирующий модуль может не всегда точно собрать характеристики производительности диска в конкретной трассировке, его собственные характеристики производительности являются характеристическими и обычными для действительного диска настольного компьютера/портативного компьютера.
Таблица 2 показывает уменьшение во временах чтения диска при EMD кэшевом моделировании дисковых трассировок, которые были получены в течение фактического использования различных вычислительных систем в течение часов работы.
Таблица 2Приросты от EMD кэша для фактического использования систем конечными пользователями
Смоделированное время чтения диска % с USB2 EMD кэшем размера
Система
Смоделированное время чтения диска (сек)
0МБ
32МБ
64МБ
128МБ
256МБ
512МБ
Система 1 (128МБ)
1259
100%
89%
70%
37%
18%
18%
Система 2 (128МБ)
1011
100%
90%
70%
38%
22%
22%
Система 3 (128МБ)
2158
100%
88%
72%
44%
25%
20%
Система 4 (128МБ)
866
100%
90%
80%
63%
48%
37%
Система 5 (256МБ)
1747
100%
92%
85%
70%
52%
40%
Система 6 (256МБ)
2187
100%
94%
87%
76%
66%
57%
В качестве примера, как интерпретировать данные из таблицы 2, рассмотрим систему 1: 128МБ USB2 EMD устройство дает результатом 37% времени чтения диска, которое имеет текущий пользователь (т.е. уменьшение 63%).
Системы 1 и 2 - из корпорации, которая хотела осуществить обновление до Windows XP, Office 2003 и наиболее последней SMS на их 128МБ системах, но получила значительные замедления при исполнении программного обеспечения их сферы деятельности. Трассировка системы 3 - из портативного компьютера. Можно видеть, что наибольшие улучшения в этих системах - это системы с более медленными дисками и только 128МБ памяти.
Нижние три системы (системы 4, 5 и 6) - это системы для разработки, на которых выполнялись тяжеловесные задачи разработки, включающие в себя компоновку, синхронизацию и обработку больших файлов. Эти системы имеют более быстрые диски и большинство дисковых вводов/выводов, генерируемых этими задачами, являются последовательными и не получают настолько большой выигрыш от простого LRU блокового кэша, так как они не осуществляют повторные доступы к одним и тем же секторам на диске много раз (например, синхронизируя). Таким образом, полное дисковое время не представляет быстроту реагирования для конечного пользователя. Кэш может существенно уменьшать время для блокировки чтений диска пользовательским интерфейсом (UI).
Таблица 3 показывает уменьшение во временах чтения диска в EMD кэшевом моделировании дисковых трассировок, которые были получены в течение Content Creation Winstone 2002.
Таблица 3Приросты от EMD кэша для Content Creation Winstone 2002
Смоделированное время чтения диска % с USB2 EMD кэшем размера
Система
Смоделированное время чтения диска (сек)
0МБ
32МБ
64МБ
128МБ
256МБ
512МБ
Портативный компьютер 150 (128МБ)
241
100%
88%
76%
62%
46%
39%
Портативный компьютер 154 (128МБ)
172
100%
89%
76%
63%
46%
40%
Настольный компьютер 100 (128МБ)
173
100%
90%
78%
65%
46%
40%
Настольный компьютер 949 (128МБ)
142
100%
89%
79%
67%
48%
42%
Портативный компьютер 150 (256МБ)
64
100%
93%
86%
72%
55%
54%
Портативный компьютер 154 (256МБ)
55
100%
90%
84%
70%
56%
56%
Настольный компьютер 100 (256МБ)
47
100%
95%
87%
76%
60%
59%
Настольный компьютер 949 (256МБ)
34
100%
94%
88%
80%
70%
70%
Таблица 4 показывает уменьшение во временах чтения диска в EMD кэшевом моделировании дисковых трассировок, которые были получены в течение Business Winstone 2001.
Таблица 4Приросты от EMD кэша для Business Winstone 2001
Смоделированное время чтения диска % с USB2 EMD кэшем размера
Система
Смоделированное время чтения диска (сек)
0МБ
32МБ
64МБ
128МБ
256МБ
512МБ
Портативный компьютер 150 (128МБ)
176
100%
84%
75%
60%
41%
37%
Портативный компьютер 159 (128МБ)
226
100%
88%
76%
60%
42%
37%
Настольный компьютер 094 (128МБ)
90
100%
90%
83%
71%
54%
52%
Настольный компьютер 211 (128МБ)
83
100%
91%
84%
72%
59%
57%
Портативный компьютер 150 (256МБ)
93
100%
82%
79%
67%
56%
55%
Портативный компьютер 159 (256МБ)
76
100%
87%
86%
76%
69%
69%
Настольный компьютер 211 (256МБ)
40
100%
94%
92%
85%
79%
78%
Настольный компьютер 094 (256МБ)
40
100%
95%
93%
85%
80%
79%
Как и в предыдущих случаях, улучшения, имеющиеся в системах с 128МБ и более медленными дисками, являются наибольшими. Business Winstone 2001 начинает в основном умещаться в памяти в 256МБ, так что полные дисковые времена и приросты от EMD меньше в этом размере системной памяти.
Таблица 5 сравнивает приросты от добавления EMD кэша к системе с действительным добавлением большей физической памяти при исполнении Content Creation Winstone 2002. Как замечалось ранее, моделирование EMD кэша страдает от двойного кэширования данных и управляется с помощью простой LRU политики. Обычно добавление большей физической памяти к системе будет давать лучшую производительность в большем количестве сценариев. С другой стороны, если EMD кэш может быть интегрирован с администратором памяти и управляться с помощью тех же улучшенных алгоритмов, которые может предоставить патентная заявка США номер 10/325,591, он может давать приросты производительности, соизмеримые с добавлением фактической памяти к системе.
Таблица 5Сравнение приростов от USB2 EMD кэша и фактического увеличения в системной памяти
Смоделированное время чтения диска (с) с USB2 EMD кэшем размера
Система & размер памяти
0МБ
32МБ
64МБ
128МБ
256МБ
512МБ
Портативный компьютер 150 (128МБ)
266
212
184
149
110
93
Портативный компьютер 150 (256МБ)
76
60
56
46
35
35
Портативный компьютер 150 (512МБ)
27
24
23
21
21
20
Из предшествующего можно видеть, что были описаны система и способ для улучшения производительности вычислительного устройства, использующего внешнюю память. Это изобретение позволяет унаследованным вычислительным устройствам и другим устройствам с низкими объемами памяти эффективно обновлять память без необходимости физически открывать устройство. Приросты продуктивности в отношении более быстрой и более надежной производительности могут достигаться при использовании внешней памяти. Секторы из хранящих носителей с вращательным движением и более медленных устройств памяти асинхронно кэшируются во внешней памяти. В отличие от удаленных файловых систем, данные не теряются, если внешняя память удаляется, так как данные все еще находятся на хранящих носителях с вращательным движением или более медленных устройствах памяти.

Все ссылки, здесь приведенные, включая сюда патенты, патентные заявки и публикации, этим включаются сюда в их полноте посредством ссылки. Использование терминов "один", и "некоторый", и "этот", и аналогичных объектов ссылок в контексте описания этого изобретения (особенно в контексте последующей формулы изобретения) должно толковаться, чтобы охватывать как единичное, так и множественное, если здесь не указано иначе или явно отрицается контекстом. Термины "содержащий", "имеющий", "включающий в себя" и "содержащий" должны толковаться как неограничивающие термины (т.е. означающие "включающий в себя, но не ограниченный этим"), если не указывается что-либо другое. Все способы, здесь описываемые, могут выполняться в любом подходящем порядке, если здесь не указывается что-либо другое или иначе явно отрицается контекстом. Использование любого и всех примеров, или иллюстративного языка (например, "такой как"), здесь предоставляемых, предназначается только, чтобы лучше разъяснить это изобретение и не устанавливать какое-либо ограничение на объем этого изобретения, если не заявляется иное. Например, для описания этого изобретения указывалась операционная система Windows. Специалисты в данной области должны понимать, что это изобретение может реализовываться на других операционных системах, таких как Linux, SunOs и подобных. Никакой язык в этой спецификации не должен толковаться как показывающий какой-либо незаявленный элемент как существенный для применения этого изобретения на практике.
Ввиду многих возможных вариантов осуществления, к которым могут применяться принципы этого изобретения, следует понимать, что вариант осуществления, здесь описываемый по отношению к чертежам, предназначается быть только иллюстрацией и не должен рассматриваться как ограничивающий объем изобретения. Например, специалисты в данной области должны понимать, что элементы проиллюстрированного варианта осуществления, показанного в программном обеспечении, могут реализовываться в аппаратном обеспечении и наоборот, или что показанный вариант осуществления может модифицироваться в компоновке и деталях без отхода от сущности этого изобретения. Поэтому это изобретение, как здесь описывается, рассматривает все такие варианты осуществления, как такие, которые могут попасть в пределы объема последующей формулы изобретения и ее эквивалентов.