Оперативное регулирование производительности твердотельных запоминающих устройств
Иллюстрации
Показать всеИзобретение относится к области запоминающих устройств. Техническим результатом является изменение рабочей частоты шины, которая соединяет одно или несколько энергонезависимых запоминающих устройств. Устройство для изменения рабочей частоты элементов содержит: логическую схему контроллера, по меньшей мере частично воплощенную в аппаратном обеспечении и предназначенную для управления доступом к одному или нескольким энергонезависимым устройствам по меньшей мере частично на основании ответа от каждого из одного или нескольких энергонезависимых устройств; причем логическая схема контроллера предназначена для изменения рабочей частоты шины, которая соединяет одно или несколько энергонезависимых запоминающих устройств с логической схемой контроллера, в ответ на определение, что ответ обозначает, что каждое из одного или нескольких энергонезависимых устройств является настраиваемым, причем логическая схема контроллера предназначена для изменения рабочей частоты в ответ на команду, в которой по меньшей мере частично в ответ на команду блокировки или значение бита статуса блокировки логическая схема контроллера не должна вызывать изменение в ответ на запрос, инициированный программным обеспечением. 3 н. и 30 з.п. ф-лы, 9 ил., 1 табл.
Реферат
Родственная заявка
Данная заявка относится и устанавливает приоритет предварительной заявки на патент США №61/829983 под названием "Оперативное регулирование производительности твердотельных запоминающих устройств" от 31.05.2013 и заявки на патент США №13/929708 под названием "Оперативное регулирование производительности твердотельных запоминающих устройств" от 27.06.2013.
Область техники
Настоящая заявка в целом относится к области электроники. Более конкретно, некоторые варианты осуществления изобретения в целом относятся к технологиям оперативного регулирования для твердотельных запоминающих устройств.
Уровень техники
В общем, память, используемая для хранения данных в вычислительной системе, может быть энергозависимой (чтобы хранить меняющуюся информацию) или энергонезависимой (для хранения постоянной информации). Изменяемые структуры данных, хранимые в энергонезависимой памяти, используют для временной или промежуточной информации, которая необходима для поддержки функциональности программы во время исполнения программы. С другой стороны, постоянные структуры данных, хранимые в энергонезависимой памяти, доступны после исполнения программы, и их можно использовать повторно. Более того, новые данные обычно вырабатывают сначала в виде непостоянных данных, до того как программа или пользователь решит сделать данные постоянными. Например, программисты или пользователи могут вызвать преобразование (т.е. создание экземпляра) изменяемых структур в энергозависимой памяти, которая непосредственно доступна процессору. Постоянные структуры данных, с другой стороны, создают в энергонезависимых запоминающих устройствах, таких как вращающиеся диски, подключенные к шинам ввода-вывода (I/O или IO), или энергонезависимых запоминающих устройствах, такие как флеш-память.
Для увеличения производительности в некоторых системах может использоваться твердотельный накопитель (SSD), который включает в себя энергонезависимую память, такую как флеш-память, для энергонезависимого хранения данных. Такие SSD, в общем, занимают меньше места, имеют меньший вес и являются более быстрыми, чем более традиционные накопители на жестких дисках (HDD). Более того, накопители на жестких дисках обеспечивают сравнительно более дешевое решение для хранения данных, и их используют во многих вычислительных устройствах в качестве энергонезависимого запоминающего устройства. Накопители на жестких дисках, тем не менее, могут использовать больше энергии по сравнению с твердотельными накопителями, так как в накопителях на жестких дисках необходимо вращать диски со сравнительно высокой скоростью и перемещать головки относительно вращающихся дисков для записи/чтения данных. Все эти физические перемещения приводят в выработке теплоты и повышают энергопотребление.
Для этого некоторые мобильные устройства переходят к применению твердотельных накопителей. Также некоторые стационарные вычислительные системы (такие как настольные компьютеры, рабочие станции, серверы и т.д.) могут использовать такие твердотельные накопители для повышения производительности. Тем не менее, применение той же модели использования для твердотельных накопителей в других типах вычислительных устройств может не всегда приводить к оптимальному балансу между производительностью и надежностью.
Краткое описание чертежей
Подробное описание приведено со ссылкой на прилагаемые чертежи. На фигурах самая левая цифра(ы) ссылочной позиции обозначает фигуру, на которой впервые встречается эта ссылочная позиция. Использование одинаковых ссылочных позиций на различных фигурах обозначает аналогичные или идентичные элементы.
На фиг. 1, 5 и 6-7 показаны блок-схемы вариантов осуществления вычислительных систем, которые могут использоваться для реализации различных вариантов осуществления, обсуждаемых в этом документе.
На фиг. 2, 4 и 4А показаны блок-схемы последовательности действий в соответствии с некоторыми вариантами осуществления.
На фиг. 3 показан пример пользовательского интерфейса для обеспечения управления настройкой твердотельного запоминающего устройства в соответствии с вариантом осуществления.
На фиг. 4В показана блок-схема различных компонентов SSD соответствии с вариантом осуществления.
Подробное описание изобретения
В нижеследующем описании для полного понимания различных вариантов осуществления изложено множество специфических деталей. Тем не менее, различные варианты осуществления изобретения могут быть реализованы без специфических подробностей. В остальных случаях, чтобы не затруднять понимание определенных вариантов осуществления изобретения, не приводятся описания широко известных способов, процедур, компонентов и схем. Кроме того, различные аспекты вариантов осуществления изобретения могут быть выполнены с использованием различных средств, таких как интегральные полупроводниковые схемы ("аппаратное обеспечение"), машинные инструкции, организованные в виде одной или нескольких программ ("программное обеспечение") или некоторое сочетание аппаратного и программного обеспечения. Для целей этого описания термин "логика" означает либо аппаратное, либо программное, либо микропрограммное обеспечение или некоторое их сочетание.
Некоторые варианты осуществления обеспечивают технологии оперативного регулирования производительности твердотельных накопителей. Как обсуждалось в этом документе, "оперативное" или "динамическое" регулирование производительности относится к регулированию производительности, не требующему перезагрузки вычислительной системы или операционной системы (ОС). Также такие твердотельные накопители могут включать в себя флеш-память (также называемую в этом документе твердотельным запоминающим устройством), память на фазовых переходах (РСМ), оперативная память произвольного доступа на основе переноса спинового момента (STTRAM), резистивную память произвольного доступа, 3D (3-мерную) координатную память, и т.д. Следовательно, в некоторых вариантах осуществления предложены способы и/или устройство для динамического управления производительностью SSD. Вариант осуществления позволяет конечным пользователям динамически управлять производительностью SSD, находя компромисс между производительностью, надежностью, тепловыми ограничениями и/или сроком службы устройства. В одном варианте осуществления командный интерфейс (например, посредством программного обеспечения) допускает такое согласование производительности на лету, например, из ОС.
В варианте осуществления конечный пользователь может применять технологии/признаки, обсуждаемые в этом документе, чтобы регулировать/настраивать производительность SSD, например, допуская разгон SSD. Под разгоном, в общем, понимается повышение рабочей частоты компонента (такого как SSD) сверх нормальной/заданной по умолчанию рабочей частоты, например, для увеличения производительности. Например, регулировка может быть основана на толерантности OEM (производителя оригинального оборудования) и/или конечного пользователя к изменениям тепловых условий, условий энергопотребления и/или надежности. Такие подходы допускают использование различных характеристик или модели использования для SSD в различных типах вычислительных устройств для того, чтобы обеспечить более оптимальный баланс между производительностью, надежностью, энергопотреблением, тепловыми условиями и т.д.
Более того, без некоторых вариантов осуществления может быть необходимо, чтобы SSD, используемые в более крупных настольных системах с дополнительным питанием и возможностями охлаждения, работали при тех же ограничениях, что и для SSD, применяемых в ультратонких ноутбуках при их меньших возможностях охлаждения и питания. Также, от файлового сервера может ожидаться большая надежность, чем от игровой системы. Для этого, некоторые варианты осуществления допускают для разработчика системы (или сообразительного пользователя) ввод этих оптимальных соотношений для платформы. Более того, некоторые варианты осуществления предусматривают зависящую от платформы возможность типа "Турбо" для SSD, где производительность SSD можно регулировать (также в этом документе используют термин "настраивать") в режиме реального времени или во время работы для одного или нескольких (последовательных или непоследовательных) периодов времени и/или на основе различных критериев, таких как: требования к рабочей загрузке программного обеспечения, данных от датчиков и/или окружающих условий. Кроме того, утилита экстремальной настройки от корпорации Intel® (XTU) позволяет конечным пользователям разгонять центральный процессор (CPU), графический процессор (GPU) и/или системную память для достижения более высокой производительности системы. В варианте осуществления эта утилита может быть расширена, чтобы позволить конечным пользователям разгонять их SSD, например, приводя к повышенной производительности для предельных нагрузок I/O (ввода/вывода) накопителя. Кроме того, допуская возможность разгонять SSD, некоторые варианты осуществления предотвращают потенциальную избыточную потерю данных (например, когда контроллер твердотельного накопителя прекращает работу). Более того, хотя в некоторых вариантах осуществления в этом документе обсуждаются технологии, применяемые к SSD, предполагается, что такие же или аналогичные технологии также могут быть применены к другим типам энергонезависимых запоминающих устройств.
Технологии, обсуждаемые в этом документе, могут быть выполнены в различных вычислительных системах (включая, например, смартфоны, планшеты, портативные игровые консоли, ультрамобильные персональные компьютеры (UMPCs) и т.д.), таких, как обсуждаемые со ссылкой на фиг. 1-7. Более конкретно, на фиг. 1 показана блок-схема вычислительной системы 100 в соответствии с вариантом осуществления изобретения. Система 100 может включать в себя один или несколько процессоров 102-1, …, 102-N (в целом называемые здесь "процессорами 102" или "процессором 102"). Процессоры 102 могут осуществлять связь через межсоединение или шину 104. Каждый процессор может включать в себя различные компоненты, некоторые из которых для ясности обсуждаются только со ссылкой на процессор 102-1. Соответственно, каждый из оставшихся процессоров 102-2, …, 102-N может включать в себя такие же или аналогичные компоненты, обсуждаемые со ссылкой на процессор 102-1.
В варианте осуществления процессор 102-1 может включать в себя одно или несколько процессорных ядер 106-1, …, 106-М (называемые в этом документе "ядрами 106" или, в более общем случае, "ядром 106"), кэш 108 (который может быть общим кэшем или индивидуальным кэшем в различных вариантах осуществления) и/или маршрутизатор 110. Процессорные ядра 106 могут быть реализованы на одной интегральной микросхеме (IC). Более того, микросхема может включать в себя один или несколько общих и/или индивидуальных кэшей (таких как кэш 108), шины или межсоединения (такие как шина или межсоединение 112), логическую схему 120, контроллеры памяти (такие как обсуждаются со ссылкой на фиг. 5-7), или другие компоненты.
В одном варианте осуществления маршрутизатор 110 может использоваться для осуществления связи между различными компонентами процессора 102-1 и/или системы 100. Более того, процессор 102-1 может включать в себя более одного маршрутизатора 110. Более того, множество маршрутизаторов 110 могут сообщаться, чтобы сделать возможным маршрутизацию данных между различными компонентами внутри или за пределами процессора 102-1.
Кэш 108 может хранить данные (например, включающие в себя инструкции), которые используются одним или несколькими компонентами процессора 102-1, такими как ядра 106. Например, кэш 108 может локально кэшировать данные, хранящиеся в памяти 114, чтобы компоненты процессора 102 могли быстрее получать к ним доступ. Как показано на фиг. 1, память 114 может сообщаться с процессорами 102 через межсоединение 104. В варианте осуществления кэш 108 (который может быть общим) может иметь различные уровни, например, кэш 108 может являться кэшем среднего уровня и/или кэшем последнего уровня (LLC). Также, каждое из ядер 106 может включать в себя кэш (116-1) первого уровня (L1) (в целом, называемый в этом документе "L1-кэшем 116"). Различные компоненты процессора 102-1 могут непосредственно сообщаться с кэшем 108 через шину (например, шину 112) и/или контроллер памяти или концентратор.
Как показано на фиг. 1, память 114 может быть соединена с другими компонентами системы 100 через контроллер 120 памяти. Память 114 в некоторых вариантах осуществления может включать в себя энергонезависимую память, такую как флеш-память (или твердотельное запоминающее устройство, включая SSD), PCM, SSTTRAM, резистивная память произвольного доступа, 3D (3-мерная) координатная память и т.д. Хотя контроллер памяти 120 показан соединенным между межсоединением 104 и памятью 114, контроллер памяти 120 может быть расположен где-то в другом месте системы 100. Например, в некоторых вариантах осуществления контроллер 120 памяти или его части могут быть выполнены в одном из процессоров 102. Также, в некоторых вариантах осуществления система 100 может включать в себя логическую схему (например, логическую схему 125 контроллера твердотельного запоминающего устройства) для управления доступом к одному или нескольким NVM-устройствам или энергонезависимым запоминающим устройствам (включая одно или несколько твердотельных запоминающих устройств) (таким как один или несколько SSD 130, дополнительно обсуждаемым со ссылкой на фиг. 2), где в некоторых вариантах осуществления одно или несколько NVM-устройств могут быть выполнены на одной и той же интегральной схеме). Более того, хотя логическая схема 125 показана на фиг. 1 непосредственно соединенной с межсоединением 104, логическая схема 125 может, как вариант, сообщаться через шину запоминающих устройств/межсоединение (такую как шина SATA (последовательный интерфейс обмена данными с накопителями информации), обсуждаемая со ссылкой на фиг. 2) с одним или несколькими другими компонентами системы 100 (например, когда шина запоминающих устройств соединена с межсоединением 104 через некоторую другую логическую схему, такую как межшинный мост, чипсет (как обсуждаемый со ссылкой на фиг. 5-6) и т.д.). Кроме того, логическая схема 125 в различных вариантах осуществления может быть встроена в контроллер памяти (такой как обсуждаемые со ссылкой на фиг. 1 и 5-6) или по меньшей мере выполнена на той же интегральной схеме.
Более того, логическая схема 125 может быть соединена с одним или несколькими датчиками 150, чтобы принимать информацию (например, в виде одного или нескольких битов или сигналов), чтобы показывать состояние или значения, определенные одним или несколькими датчиками 150. Датчик(и) 150 может быть выполнен вблизи от компонентов системы 100 (или других вычислительных систем, обсуждаемых в этом документе, таких как обсуждаемые со ссылкой на другие фигуры, включая, например, 5-7), таких как ядра 106, межсоединения 104 или 112, компонентов, расположенных за пределами процессора 102, SSD, шины SSD, шины SATA, логической схемы 125 и т.д., чтобы воспринимать изменения различных факторов, влияющих на энергетическое/тепловое поведение системы/платформы, например, температуру, рабочую частоту, рабочее напряжение, энергопотребление и/или межъядерную передачу информации и т.д.
На фиг. 2 показана высокоуровневая блок-схема последовательности действий настройки SSD в соответствии с вариантом осуществления. Хотя касательно фиг. 2 обсуждается настройка SSD, такие же или аналогичные технологии также можно применить к любому типу твердотельного NVM запоминающего устройства. Как показано, программа 202 настройки производительности (которая может представлять собой приложение, выполняемое в ОС 204) включает в себя программное приложение 206 настройки производительности SSD, которое принимает и подтверждает запрос(ы) на настройку производительности SSD от конечного пользователя (например, через графический пользовательский интерфейс (GUI)) и/или от автоматизированного программного приложения (например, на основе одного или нескольких заданных критериев).
На этапе 208 передают команду драйвера, чтобы запустить настройку/изменение производительности SSD (например, через драйвер запоминающего устройства, такого как SATA-драйвер). Команду драйвера передают на логическую схему 210 SATA контроллера (например, входящую в периферийный контроллер-концентратор (РСН) или другое оборудование) через SATA-шину. В варианте осуществления SATA контроллер 210 совпадает с логической схемой 125 на фиг. 1 или аналогичен ей. В свою очередь, SSD 130 принимает команду и выполняет изменение производительности, применимое к SSD (например, изменение рабочей частоты шины, которая соединяет внутренний SSD контроллер с энергонезависимыми ячейками памяти в SSD, энергонезависимыми ячейками памяти и/или другими компонентами SSD).
На фиг. 3 показан пример GUI, предназначенного для обеспечения программных элементов управления для настройки SSD в соответствии с вариантом осуществления. Как обсуждается в этом документе, настройка SSD относится к регулированию производительности SSD, например, позволяя разгонять SSD. Также, под разгоном, в общем, понимается повышение рабочей частоты компонента (такого как SSD, его интерфейс/шина или логическая схема 125 контроллера SSD и т.д.) сверх нормальной/заданной по умолчанию рабочей частоты, например, для увеличения производительности. Например, регулировка может быть основана на толерантности OEM и/или конечного пользователя к изменениям тепловых условий, условий энергопотребления и/или надежности. Хотя касательно фиг. 3 обсуждаются технологии настройки SSD, такие же или аналогичные технологии также можно применить к другим типам твердотельных запоминающих устройств. На фиг. 3 в одном варианте осуществления показан пример реализации с использованием утилиты экстремальной настройки от корпорации Intel® (XTU). Как показано, GUI допускает установку частоты (1) контроллера SSD, такой как рабочая частота логической схемы 125 на фиг. 1, установку пределов (2) энергопотребления SSD, просмотр установленной по умолчанию и предлагаемой частоты контроллера SSD и значений (3) режима энергопотребления, просмотр гистограммы частоты контроллера SSD в течение заданного периода (4) времени и/или просмотр текущей рабочей частоты (5) контроллера SSD.
Более того, в некоторых вариантах осуществления обеспечивается оперативная регулировка параметров производительности для твердотельных запоминающих устройств (включая SSD) путем предоставления возможности вносить изменения без перезагрузки системы или ОС. Допускается несколько опций настройки в реальном времени посредством механизмов связи и управления программного и/или аппаратного обеспечения, чтобы управлять динамической настройкой, как, например, обсуждается со ссылкой на фиг. 2-3. В варианте осуществления выполнен командный интерфейс для обнаружения конфигурируемых опций и передачи изменений на твердотельное запоминающее устройство.
Например, на фиг. 3 показано, как можно использовать программное приложение для регулировки параметров производительности SSD. Хотя со ссылкой на фиг. 2-3 обсуждается пример реализации, варианты осуществления изобретения могут быть выполнены через различные сочетания служб, приложений и фоновых служб.
Соответственно, в некоторых вариантах осуществления возможен разгон твердотельного запоминающего устройства путем настройки частоты контроллера устройства (например, логической схемы 125 на фиг. 1), динамического масштабирования частоты логической схемы контроллера свыше стандартного уровня с использованием SCT (Smart Command Transport) команды (которая может быть передана через SATA шину или другой интерфейс, включая, например, межсоединение 104 на фиг. 1), допуская быстрый бросок энергопотребления до безопасного предела энергопотребления запоминающего устройства (например, где "бросок" означает пиковый период энергопотребления во время пика передачи данных), допуская (например, для SoC (однокристальной системы)) превышение заданного OEM порогового энергопотребления с помощью API (прикладного программного интерфейса), допуская (например, для NAND и/или NOR или других типов NVM) разгон флеш-памяти путем динамического масштабирования частоты флеш-памяти сверх стандартного уровня посредством SCT команды и/или отбор контроллеров твердотельных запоминающих устройств для совокупностей с наибольшей производительностью путем использования внутренних регистров (например, посредством сегментации или "классификации" контроллеров твердотельных запоминающих устройств с помощью их определенного/назначенного верхнего/максимального предела рабочей частоты). "Совокупность", в общем, относится к совокупности электронных компонентов, которые являются SKU (единицей учета) на основе классификации их определенной/назначенной рабочей частоты.
Более того, такие технологии можно использовать для того, чтобы задействовать признак "SSD Turbo", где логика платформы (например, программное и/или микропрограммное обеспечение) может динамически модифицировать производительность SSD, чтобы сбалансировать/изменить производительность относительно времени работы от батареи в определенных форм-факторах и рабочих условиях. Также, некоторые варианты осуществления предотвращают катастрофические неисправности (например, вызванные атаками злоумышленника), обеспечивая способы восстановления (такие как обсуждаемые со ссылкой на фиг. 4) и фиксированные границы на входные диапазоны для настройки параметров производительности SSD (такие как пороговые значения частоты для устройства флеш-памяти и/или логической схемы 125 контроллера), чтобы обеспечить дополнительную защиту, как будет дополнительно обсуждаться ниже. Также, может быть выполнена утилита для реинициализации привода после неисправности, например, путем стирания привода, делая его опять пригодным к использованию.
На фиг. 4 показана блок-схема последовательности операций способа 400 для восстановления после неисправности в соответствии с вариантом осуществления. Способ 400 можно использовать для восстановления стабильности после неисправности, например, из-за выбора чрезмерно агрессивных параметров настройки при настройке производительности SSD. Хотя касательно фиг. 4 обсуждаются технологии настройки SSD, такие же или аналогичные технологии также можно применить к другим типам NVM устройств. В различных вариантах осуществления одно или несколько действий способа 400 могут быть выполнены одним или несколькими компонентами, обсуждаемыми со ссылкой на другие фигуры (например, логической схемой 125).
Со ссылкой на фиг. 4, после включения платформы на этапе 402 включается SSD на этапе 404. На этапе 406 выполняют инициализацию SSD (например, возвращая установки настройки или разгона к значениям по умолчанию). На этапе 408 выполняют самотестирование при включении питания BIOS (базовой системы ввода-вывода). На этапе 410 BIOS имеет возможность выполнять тестирование SSD и/или разгон. На этапе 412 определяют, является ли стабильной работа SSD, и если нет, то происходит сброс системы путем возврата к этапу 402. В противном случае выполнение способа 400 продолжается загрузкой ОС на этапе 414 (например, с SSD или другого NVM устройства). Как вариант, за этапом 408 может непосредственно следовать 414. На этапе 416 ОС готова и работает (например, простаивает). В варианте осуществления выполняют этапы 418 и/или 420 (как только ОС будет в рабочем состоянии на этапе 416), чтобы отрегулировать разгон/настройку SSD и определить стабильность работы SSD при текущих настройках. Если работа SSD становится нестабильной на этапе 420, то происходит сброс системы путем возврата к этапу 402.
В различных вариантах осуществления используют команды SCT/ATA (интерфейс обмена данными с накопителями информации) для связи с SSD, чтобы выполнить настройку или разгон. Команда SCT может быть передана посредством команды SATA, отправленной на SSD. Ниже в таблице 1 перечислены SCT команды, которые могут быть использованы в некоторых вариантах осуществления (которые в некоторых вариантах осуществления могут зависеть от производителя). В одном варианте осуществления используются SCT команды для значения тайминга NAND, максимального значения частоты контроллера и значения запаса энергии. В варианте осуществления команду блокировки разгона SSD используют, чтобы программно предотвращать разгон накопителя пользователями, пока эта возможность не будет специально разблокирована (например, способствуя предотвращению ущерба от вредоносного кода или некоторых пользователей). Следовательно, блокировка предотвращает настройку или разгон, а разблокировка допускает изменения. Команда блокировки может вызвать установку (или сброс в зависимости от реализации) бита статуса блокировки в некотором запоминающем устройстве (таком как память (включая запоминающие устройства, обсуждаемые со ссылкой на фиг. 1 или 5-7), регистр, память в логической схеме 125 контроллера, в микропрограммном обеспечении, в SSD, и т.д.). Для дополнительной защиты некоторые варианты осуществления ограничивают/лимитируют диапазон принятых значений для элементов, приведенных ниже.
Более того, команды АТА могут использоваться для чтения модели/серийного номера SSD и другой идентификационной информации (например, по АТА адресам в запоминающем устройстве, микропрограммном обеспечении и т.д.). Температура SSD также может отслеживаться посредством АТА команды (например, с помощью одного или нескольких датчиков 150 на фиг. 1, которые могут быть физически расположены возле SSD, внутри SSD или иным образом термически связаны с SSD).
Некоторые варианты осуществления используют существующие протоколы управления SCT и АТА; тем не менее, для уникальных признаков настройки, обсуждаемых в этом документе (например, таких, как приведенные в таблице 1), добавляют новые команды. Большинство используемых команд являются основанными на SCT командами. Например, касательно последней строки таблицы 1, команда блокировки разгона накопителя создана (и полдюжины других, показанных в таблице 1) для управления возможностью настройки производительности SSD на лету и в реальном времени (в отличие от использования жестко запрограммированного микрокода, который производители SSD могли бы использовать, например, для развития/тестирования своих решений).
Более того, в некоторых вариантах осуществления применяют АТА команды, например, для телеметрии входов контуров обратной связи, если интеллектуальное программное обеспечение динамически изменяет параметры настройки. Например, при установке пределов производительности запоминающее устройство может нагреться, и могут использоваться АТА команды для получения данных о температуре, чтобы обнаружить эту ситуацию и сократить один или несколько параметров настройки, чтобы сохранить привод в нормальных условиях работы.
На фиг. 4А показана блок-схема последовательности операций способа 450 для определения того, какой из приводов или запоминающих устройств (например, SSD) в системе можно настраивать, в соответствии с вариантом осуществления. В варианте осуществления способ 450 выполняют до того, как пользователю с помощью программного обеспечения или утилит будет предоставлена опция настройки производительности. В различных вариантах осуществления одно или несколько действий способа 400 могут быть выполнены одним или несколькими компонентами, обсуждаемыми со ссылкой на другие фигуры (например, логической схемой 125).
Со ссылкой на фиг. 4А на этапе 452 определяют места для адресуемых запоминающих устройств. На этапе 454 на каждое запоминающее устройство (идентифицированное на этапе 452) подается запрос с уникальной командой (например, посредством SCT/ATA команд или другого интерфейса). На этапе 456, если устройство корректно отвечает на запрос, выполненный на этапе 454, то на этапе 458 это устройство помечается как настраиваемое. На этапе 460 отображают список настраиваемых накопителей (например, с помощью графического пользовательского интерфейса (GUI)) и/или разрешают отправлять команды настройки на поддерживаемые накопители. Как показано на фиг. 4А, если на этапе 456 устройство не может ответить, то на этапе 462 устройство помечают как ненастраиваемое, и способ 450 возвращается к этапу 460.
На фиг. 4В показана блок-схема различных компонентов SSD в соответствии с вариантом осуществления. Как показано на фиг. 4В, SSD 130 включает в себя логическую схему 482 контроллера (которая, в свою очередь, включает в себя одно или несколько процессорных ядер или процессоров 484 и логическую схему 486 контроллера памяти), оперативную память произвольного доступа (RAM) 488, устройство 490 для хранения микропрограммного обеспечения и один или несколько модулей 492-1, …, 492-n памяти (которые могут включать в себя NAND, NOR или другие типы энергонезависимой памяти). Модули 492-1, …, 492-n памяти соединены с логической схемой 486 контроллера памяти через один или несколько каналов памяти или шины. Также, SSD 130 сообщается с логической схемой 125 через интерфейс (такой как SATA, интерфейс PCIe (разъем взаимодействия периферийных компонент типа экспресс) и т.д.).
Более того, настройка может быть инициирована системным программным обеспечением (например, приложением, утилитой и т.д.) или системным BIOS. Также, настройка может быть инициирована вручную (например, через пользовательский GUI) или автоматически (например, интеллектуальной логической схемой, включающей в себя программное и/или микропрограммное обеспечение). Команды для инициации этой настройки могут использовать SCT или АТА протоколы, такие как обсуждавшиеся со ссылкой на таблицу 1 выше. Например, если запуск был выполнен из ОС, то команды проходят через драйвер запоминающего устройства (который, например, может храниться в памяти 114 на фиг. 1), системный интерфейс, шину SATA или запоминающее устройство PCIe (например, SSD 130). Затем, логическая схема 482 контроллера на запоминающем устройстве исполняет микропрограммный код, чтобы разобрать и выполнить команды.
В варианте осуществления логическая схема 482 контроллера может менять собственную тактовую/рабочую частоту, меняя соотношение (так называемый множитель) на свою собственную тактовую частоту. Например, если номинальная частота контроллера составляет 33,3 МГц, а обычный фиксированный множитель равен 3 для эффективной частоты 100 МГц, то изменение соотношения на 4 даст более высокую (например, 133 МГц) тактовую частоту, что может увеличить производительность. Аналогично, в различных вариантах осуществления можно изменить тактовую/рабочую частоту одной или нескольких шин или каналов, соединенных между модулями 492-1, …, 492-n памяти и логической схемой 786 контроллера, а также рабочие/тактовые частоты одного или нескольких модулей 492-1, …, 492-n памяти. Более того, хотя приведен пример изменения соотношений, вместо этого (или в дополнение к этому) также можно непосредственно изменить номинальную тактовую частоту. В таких случаях, последовательность действий будет аналогичной, и, как вариант, она может включать в себя связь/управление внешним источником тактовой частоты.
В соответствии с некоторыми вариантами осуществления, используемые элементы управления могут включать в себя одно или несколько из следующего: (а) частота логической схемы 125 контроллера, например, полученная из тайминга системы PLL (фазовой автоподстройки частоты)) (например, примерно от 400 МГц до 600 МГц); (b) частота шины SSD, которая может включать в себя шину SATA, соединенную с SSD, внутреннюю шину в SSD, которая соединена с энергонезависимыми ячейками памяти SSD и т.д. (например, переключающаяся от 83 МГц до 100 МГц); и/или (с) режим энергопотребления (как, например, низкое, обычное, неограниченное и т.д.).
Кроме того, в соответствии с некоторыми вариантами осуществления, отслеживаемые величины могут включать в себя одно или несколько из следующего: температуру, частоту логической схемы 125 контроллера, частоту шины флеш-памяти (которая, например, может быт такой же, что и частота логической схемы 125 контроллера), рабочую частоту твердотельного запоминающего устройства и/или запас энергии.
Более того, некоторые варианты осуществления предусматривают зависящую от платформы возможность типа "Турбо" для твердотельного запоминающего устройства, где, например, можно увеличить производительность твердотельных запоминающих устройств, например, в режиме реального времени для одного или нескольких (последовательных или непоследовательных) периодов времени и/или на основе различных критериев, таких как: требования к рабочей загрузке программного обеспечения, данных от датчиков и/или окружающих условий. Признак Турбо SSD может быть выстроен с помощью стандартных блоков настройки и разгона SSD, обсуждаемых вместе в этом документе. Следовательно, некоторые варианты осуществления впервые обеспечивают инфраструктуру, которая допускает динамическое изменение производительности SSD, включая мониторинг частот(ы), энергопотребления и параметров обратной связи. Таким образом, общий принцип Турбо можно применить к SSD, например, ускоряя SSD, чтобы удовлетворить пиковые запросы, и замедляя SSD (используя более низкие уровни энергопотребления), когда требования снижаются.
На фиг. 5 показана блок-схема вычислительной системы 500 в соответствии с вариантом осуществления системы. Вычислительная система 500 может включать в себя один или несколько центральных процессоров (CPU) 502 или процессоров, которые сообщаются через сеть межсоединения 504 (или шину). Процессоры 502 могут включать в себя процессор общего назначения, сетевой процессор (который обрабатывает данные, передаваемые по компьютерной сети 503), прикладной процессор (такой, как процессоры, используемые в сотовых телефонах, смартфонах и т.д.) или другие типы процессоров (включая процессор с архитектурой сокращенного набора команд (RISC) или с архитектурой полного набора команд (CISC)). Могут использоваться различные типы компьютерных сетей 503, включая проводные (например, Ethernet, Gigabit, Fiber и т.д.) или беспроводные сети (такие как сотовые, 3G (технология сотовой связи третьего поколения или беспроводной формат 3-го поколения (UWCC)), 5G, маломощные встроенные (LPE) и т.д.). Более того, процессоры 502 могут иметь одноядерную или многоядерную архитектуру. Процессоры 502 с многоядерной архитектурой могут объединять ядра разных типов на одном кристалле интегральной схемы (IC). Процессоры 502 с многоядерной архитектурой также могут быть выполнены в виде симметричных или асимметричных мультипроцессоров.
В варианте осуществления один или несколько процессоров 502 могут быть такими же или аналогичными процессорам 102 на фиг. 1. Например, один или несколько процессоров 502 может включать в себя одно или несколько ядер 106 и/или кэш 108. Также, действия, обсуждавшиеся со ссылкой на фиг. 1-4, могут быть выполнены одним или несколькими компонентами системы 500.
Чипсет 506 также может сообщаться с сетью 504 межсоединений. Чипсет 506 может включать в себя контроллер-концентратор 508 графической и оперативной памяти (GMCH). GMCH 508 может включать в себя контроллер 510 памяти (который в варианте осуществления может быть таким же или аналогичным контроллеру 120 памяти на фиг. 1), который сообщается с памятью 114. Память 114 может хранить данные, включая последовательности инструкций, исполняемых CPU 502 или любым другим устройством, входящим в вычислительную систему 500. Также, система 500 включает в себя логическую схему 125 и SSD 130 (которые в различных вариантах осуществления могут быть соединены с системой 500 через шину 522, как показано, через другие межсоединения, как, например, 504, где логическая схема 125 входит в чипсет 506 и т.д.). В одном варианте осуществления изобретения память 114 может включать в себя одно или несколько энергозависимых запоминающих устройств (или память), таких как оперативная память (RAM), динамическая память (DRAM), синхронная динамическая память (SDRAM), статическая оперативная память (SRAM) или другие типы запоминающих устройств. Также может использоваться энергонезависимая память, такая как жесткий диск, флеш, РСМ, 3D координатная память, резистивная память произвольного доступа и STTRAM. С сетью 504 межсоединений могут сообщаться дополнительные устройства, такие как несколько CPU и/или несколько системных памятей.
GMCH 508 также может включать в