ИНТЕРФЕЙС ЭНЕРГОНЕЗАВИСИМОЙ ПАМЯТИ
INTERFACE OF NON-VOLATILE MEMORY

Уровень техники
Компьютерное устройство может включать в себя накопитель, который может использоваться для сохранения информации. Информация может включать в себя, например, данные и/или исполняемые инструкции. Накопитель может включать в себя первичный накопитель и вторичный накопитель. Первичный накопитель может обеспечивать, например, внутренний накопитель для процессора. Вторичный накопитель может обеспечивать, например, внешний накопитель для процессора. Процессор может обращаться к накопителю через одну или больше шин. Шины могут использоваться для передачи информации между процессором и накопителем.
Краткое описание чертежей
На приложенных чертежах, которые представлены здесь и составляют часть данного описания, иллюстрируются один или больше описанных здесь вариантов осуществления, и, вместе с описанием, они поясняют эти варианты осуществления.
На чертежах:
на фиг. 1 показана блок-схема примера вычислительного устройства;
на фиг. 2 показаны примеры фаз, которые могут быть ассоциированы с транзакциями;
на фиг. 3 показан пример временной диаграммы, которая может быть ассоциирована с транзакцией считывания;
на фиг. 4 показан пример временной диаграммы, которая может быть ассоциирована с транзакцией записи;
на фиг. 5А-В иллюстрируется блок-схема последовательности операций, в качестве примера, которые могут быть выполнены хост устройством во время транзакции считывания;
на фиг. 6А-В иллюстрируется блок-схема последовательности операций, в качестве примера, которые могут быть выполнены клиентом во время транзакции считывания;
на фиг. 7А-В иллюстрируется блок-схема последовательности операций примера, которые могут быть выполнены хост устройством во время транзакции записи;
на фиг. 8А-В иллюстрируется блок-схема последовательности операций, в качестве примера, которые могут быть выполнены клиентом во время транзакции чтения; и
на фиг. 9 показана блок-схема другого примера вычислительного устройства.
Подробное описание изобретения
В следующем подробном описании делается ссылка на приложенные чертежи. Одинаковые номера ссылочных позиций на разных чертежах могут идентифицировать одинаковые или аналогичные элементы. Кроме того, следующее подробное описание не ограничивает изобретение.
Компьютерное устройство может включать в себя накопитель, который компьютерное устройство может использовать для сохранения информации (например, данных исполняемых компьютером инструкций). Накопитель может быть энергозависимым и/или энергонезависимым. Энергонезависимый накопитель может использоваться для сохранения информации, которая может быть потеряна после отключения питания компьютерного устройства. Энергонезависимый накопитель может использоваться для сохранения информации, которая сохраняется (продолжается) после прекращения питания компьютерного устройства.
Например, компьютерное устройство может содержать центральное процессорное устройство (CPU) и накопитель. Накопитель может включать в себя, например, энергозависимую память и энергонезависимую память (NVM). Энергозависимая память может обеспечивать сохранение информации, которая может быть потеряна после отключения питания компьютерного устройства. NVM, с другой стороны, может обеспечивать сохранение информации, которая сохраняется после отключения питания компьютерного устройства. CPU может получать сохраненную информацию из NVM после восстановления питания компьютерного устройства.
Накопитель может содержать одно или больше запоминающих устройств, которые могут использоваться для сохранения информации. Запоминающее устройство может содержать один или больше массивов, где массив может включать в себя одну или больше ячеек памяти, которые могут использоваться для сохранения информации в запоминающем устройстве.
Ячейка памяти может быть ассоциирована с адресом. Адрес может использоваться для идентификации ячейки памяти. Информация может быть записана в и/или считана из ячейки памяти, используя адрес. Например, ячейка памяти в запоминающем устройстве может быть ассоциирована с определенным адресом (например, 0x100). Транзакция записи может устанавливать адрес и данные, которые должны быть записаны в ячейку памяти. Адрес может использоваться для идентификации ячейки памяти, и данные могут быть записаны в ячейку памяти после ее идентификации.
Доступ (например, считывание, запись) к накопителю может выполняться путем выработки команды в устройство, которое может содержать накопитель. Команда может представлять собой часть транзакции, которая может быть передана в другое устройство по шине. Данные, ассоциированные с командой, также могут быть переданы через шину. Шина может включать в себя возможности (например, провода) для передачи команды, закрепляющие данные в устройстве.
Например, компьютерное устройство может включать в себя CPU и NVM. CPU может быть соединено с NVM через шину. Шина может использоваться для передачи команд и/или данных между CPU и NVM. Шина может представлять собой, например, шину из "точки-в-точку", которая может включать в себя один или больше проводов, которые могут использоваться для передачи команды и/или данных.
Накопитель может включать в себя один или больше модулей накопителя. Модули накопителя могут содержать одно или больше запоминающих устройств, содержащихся в накопителе. Примеры модулей накопителя могут включать в себя, но не ограничены этим, модули памяти с двухсторонним расположением микросхем (DIMM), защищенные цифровые карты (SD), мультимедийные карты (ММС), карты CompactFlash (CF), карты "memory stick" и модули памяти с однорядным расположением выводов (SIMM).
Описанные здесь технологии могут быть воплощены в компьютерном устройстве. Примеры компьютерных устройств, которые могут воплощать технологии, описанные здесь, могут включать в себя, но не ограничены этим, смартфоны, планшетные компьютеры, ультрабуки, переносные компьютеры, мэйнфреймы, серверы и настольные компьютеры.
На фиг. 1 иллюстрируется блок-схема примера компьютерного устройства 100, которое может воплощать различные технологии, описанные здесь. На фиг. 1 компьютерное устройство 100 может включать в себя различные компоненты такие как, например, энергозависимая память 120, логика 130 обработки, хост контроллер (НС) 140 и энергонезависимая память 150.
Следует отметить, что на фиг. 1 иллюстрируется пример варианта осуществления компьютерного устройства 100. Другие варианты осуществления компьютерного устройства 100 могут включать в себя больше компонентов или меньше компонентов, чем количество компонентов, представленных на фиг. 1. Кроме того, компоненты могут быть расположены по-другому, чем представлено на фиг. 1. Например, вариант осуществления компьютерного устройства 100 может включать в себя интерфейс передачи данных, который может использоваться для обмена данными с сетью, такой как Интернет. Кроме того, следует отметить, что функции, выполняемые различными компонентами, содержащимися в других вариантах осуществления компьютерного устройства 100, могут быть распределены среди компонентов по-другому, чем описано здесь.
Энергозависимая память 120 может обеспечивать накопитель для компьютерного устройства 100. Накопитель может использоваться для сохранения информации, такой как, например, данные и/или исполняемые компьютером инструкции. Накопитель может представлять собой накопитель, работающий с высокой скоростью, который может воплощать, например, память кэш для компьютерного устройства 100 (например, кэш уровня 2 (L2)). Энергозависимая память 120 может включать в себя одно или больше устройств, таких как, например, запоминающего устройства, которые могут использоваться для сохранения информации.
Энергонезависимая память 150 также может обеспечивать сохранение для компьютерного устройства 100. Накопитель может, например, быть более медленным и может иметь более высокую емкость сохранения, чем энергозависимая память 120. Накопитель может использоваться для сохранения информации. Информация может быть сохранена в одном или больше устройствах, содержащихся в энергонезависимой памяти 150. Устройства могут включать в себя, например, одно или больше запоминающих устройств.
Устройство энергозависимой памяти может представлять собой запоминающее устройство, которое может терять информацию, сохраненную в запоминающем устройстве при отключении питания запоминающего устройства. Энергонезависимое устройство может представлять собой запоминающее устройство, которое может содержать информацию, сохраненную в запоминающем устройстве при отключении питания запоминающего устройства. Примеры запоминающих устройств включают в себя устройство динамической RAM (DRAM), запоминающее устройство флэш, устройство статической RAM (SRAM), устройство RAM с нулевым конденсатором (ZRAM), устройство RAM с двойным транзистором (TTRAM), постоянное запоминающее устройство (ROM), устройство RAM на ферроэлектрическом транзисторе (FeTRAM), устройство магниторезистивной RAM (MRAM), трехмерное запоминающее устройство (3D) с точкой пересечения (например, запоминающее устройство с изменением фазы (РСМ)), устройство на основе нано-проводников, устройство резистивной RAM (RRAM), устройство последовательного электрически стираемого программируемого ROM (SEEPROM), устройство MRAM с переносом спинового момента (STT), и последовательное устройство флэш.
Логика 130 обработки может включать в себя логику для интерпретации исполнения и/или другой обработки информации. Информация может быть сохранена, например, в энергозависимой памяти 120 и/или в энергонезависимой памяти 150. Информация может включать в себя, например, данные и/или выполняемые компьютером инструкции.
Логика 130 обработки может включать в себя множество гетерогенных аппаратных средств. Например, аппаратные средства могут включать в себя некоторую комбинацию одного или больше процессоров, микропроцессоров, программируемых вентильных матриц (FPGA), процессоров набора инструкций, специфичных для приложения (ASEP), специализированные интегральные схемы (ASIC), устройства сложной программируемой логики (CPLD), графические модули обработки (GPU) и/или другие типы логики обработки, которые могут, например, интерпретировать, выполнять, манипулировать и/или по-другому обрабатывать информацию. Логика 130 обработки может содержать одно ядро или множество ядер.
Шины 160, 170, 180 и 190 могут представлять собой шины "из точки-в-точку". Шины 160, 170, 180 и 190 могут включать в себя электрические проводники (например, провода), которые могут использоваться для передачи различных сигналов между компонентами. Сигналы могут включать в себя, например, сигналы управления и/или данные. Например, шина 190 может представлять собой шину "из точки-в-точку", которая может включать в себя множество проводов, которые могут использоваться для передачи сигналов между интерфейсом 146 энергонезависимой памяти (NMI) и энергонезависимой памятью 150. Сигналы могут включать в себя различные сигналы управления и данные. Сигналы могут переноситься по разным проводам. Например, первый провод может использоваться для переноса запроса и информации данных между NMI 146 и энергонезависимой памятью. Второй провод может использоваться для переноса информации строба, которая может использоваться для получения (например, считывания, приема) запроса и информации данных. Третий провод может использоваться для обозначения, было ли предоставлено право владения для энергонезависимой памяти 150 по первому и второму проводам, для передачи информации из энергонезависимой памяти 150 в NMI 146, и так далее.
НС 140 может включать в себя логику, которая может обеспечивать передачу информации между различными компонентами в компьютерном устройстве 100. Компоненты могут включать в себя, например, энергозависимую память 120, логику 130 обработки и/или энергонезависимую память 150. Информация может быть передана между компонентами по шинам 160, 170, 180 и 190, которые могут соединять компоненты с НС 140.
НС 140 может включать в себя логику, которая может использоваться, как интерфейсы между различными компонентами в компьютерном устройстве 100. Интерфейсы могут обеспечивать возможность обмена информацией (например, передачи) между компонентами. Интерфейсы могут включать в себя, например, интерфейс 142 энергозависимой памяти (VMI) и NMI 146. VMI 142 может использоваться для формирования интерфейса для логики 130 обработки с энергозависимой памятью 120. NMI 146 может использоваться для создания интерфейса логики 130 обработки с энергонезависимой памятью 150.
VMI 142 может содержать логику, которая может предоставлять информацию, предназначенную для обмена (например, передачи) между энергозависимой памятью 120 и логикой 130 обработки через шины 160 и 170. В частности, VMI 142 может содержать логику, которая может обеспечивать возможность передачи информации между VMI 142 и энергозависимой памятью 120 через шину 160. Кроме того, VMI 142 может содержать логику, которая может обеспечивать возможность передачи информации между логикой 130 обработки и VMI 142 через шину 170. Информация может включать в себя, например, команды и/или данные. Примеры логики, которые могут быть включены в VMI 142, могут включать в себя конечные автоматы, приемопередатчики шины, регистры и/или другую логику.
NMI 146 может содержать логику, которая может предоставлять информацию, предназначенную для передачи между энергонезависимой памятью 150 и логикой 130 обработки через шины 180 и 190. В частности, NMI 146 может содержать логику, которая может использоваться для передачи информации между NMI 146 и логикой 130 обработки через шину 180. Кроме того, NMI 146 может содержать логику, которая может использоваться для передачи информации между энергонезависимой памятью 150 и NMI 146 через шину 190. Логика, которая может содержаться в NMI 146, может быть затем включена в NMI 146, путем включения в нее, например, конечных автоматов, приемопередатчиков шины, регистров и/или другой логики.
Информация может включать в себя, например, запросы и/или данные. Запросы могут включать в себя информацию команды (например, команду считывания, команду записи) и/или информацию адреса (например, адрес, по которому требуется выполнить считывание, адрес, по которому требуется выполнить запись). Информация может быть передана, используя транзакции.
Транзакция может использоваться для передачи информации между двумя объектами через шину. Например, информация может быть передана между NMI 146 и энергонезависимой памятью 150 через шину 190, используя транзакции. Информация, передаваемая используя транзакции, может включать в себя, например, запрос, данные и/или информацию отклика.
Транзакция может представлять собой транзакцию определенного типа. Например, транзакция может представлять собой транзакцию записи или транзакцию считывания. Транзакция записи может использоваться, например, для записи информации в накопитель, такой энергонезависимая память 150. Транзакция считывания может использоваться, например, для считывания информации из накопителя, такого как энергонезависимая память 150.
Транзакция может включать в себя множество фаз. Например, транзакция может включать в себя фазу запроса, фазу данных и/или фазу отклика. Фаза может сопровождаться определенными типами информации, которая может быть передана между объектами во время фазы. Например, во время фазы запроса, команда и/или информация адреса могут быть переданы между объектами.
На фиг. 2 иллюстрируются примерные фазы, которые могут быть ассоциированы с транзакцией считывания и транзакцией записи, которые могут быть переданы между объектами, такими как NMI 146 и энергонезависимая память 150, через шину, такую как шина 190. На фиг. 2 номер 220 ссылочной позиции включает в себя (1) временную шкалу и (2) информацию, которая может быть передана во время транзакции считывания. Номер 260 ссылочной позиции включает в себя (1) временную шкалу и (2) информацию, которая может быть передана по фазам, которые могут быть ассоциированы с транзакцией записи.
Транзакция считывания может включать в себя фазу запроса, фазу данных и фазу отклика. Фаза запроса может возникать в момент времени 230а. Фаза запроса может включать в себя передачу запроса 240а между объектами через шину. Запрос 240а может включать в себя, например, преамбулу, команду и/или адрес. Команда может идентифицировать операцию (в данном примере операцию считывания), которая должна быть выполнена. Адрес может идентифицировать местоположение, через которое требуется выполнить считывание.
Преамбула может использоваться для подготовки к получению запроса 240а. Подготовка может включать в себя, например, используют преамбулу для попытки получения запроса 240а по шине. Преамбула может включать в себя заданную последовательность битов, которая может использоваться для выполнения тренировки.
Например, предположим, что объекты включают в себя NMI 146 и энергонезависимую память 150, и шина включает в себя шину 190. Во время фазы запроса запрос 240а может быть передан из NMI 146 в энергонезависимую память 150 через шину 190. Запрос 240а может включать в себя преамбулу, команду и адрес. Преамбула может включать в себя заданную последовательность битов, которая может использоваться энергонезависимой памятью 150 для подготовки к приему команды и адреса из шины 190. Команда может идентифицировать операцию считывания, которая должна быть выполнена энергонезависимой памятью 150. Адрес может идентифицировать местоположение в энергонезависимой памяти 150, из которого требуется выполнить считывание.
Фаза данных может начинаться после фазы запроса. Фаза данных может включать в себя время 230b, в которое объект может обрабатывать запрос. Например, во время фазы данных энергонезависимая память 150 может обрабатывать описанный выше запрос. Здесь обработка может включать в себя, например, считывание данных 240b из энергонезависимой памяти 150 в местоположении, идентифицированном по адресу.
Фаза данных может также включать в себя время 230с, когда данные 240b передают между объектами. Например, после считывания данных 240b, данные 240b могут быть переданы через шину 190 из энергонезависимой памяти 150 в NMI 146.
В момент времени 230d запрос может войти в фазу отклика. Фаза отклика может включать в себя передачу отклика 240с на запрос. Отклик 240с может обеспечивать показатель того, что запрос был обработан. Перед откликом 240с может следовать преамбула, которая может использоваться для подготовки к получению отклика 240с. Преамбула может использоваться для подготовки к получению отклика 240с. Подготовка может включать в себя, например, использование преамбулы, для тренировки, для получения отклика 240с из шины. Преамбула может включать в себя заданную последовательность битов, которая может использоваться для выполнения тренировки.
Например, во время фазы отклика отклик 240с и преамбула могут быть переданы из энергонезависимой памяти 150 через шину 190 в NMI 146. Отклик 240с может обеспечить показатель для NMI 146, что запрос был обработан энергонезависимой памятью 150. Отклик 240с может включать в себя, например, статус, который может быть ассоциирован с запросом считывания. Статус может обозначать, была ли выполнена успешно операция считывания в энергонезависимой памяти 150. Перед откликом 240с может следовать преамбула. NMI 146 может использовать преамбулу для подготовки к приему отклика 240с из шины 190. Подготовка может включать в себя тренировку, такую, как описано выше.
Далее, со ссылкой на номер 260 ссылочной позиции, транзакция записи также может включать в себя фазу запроса, фазу данных и фазу отклика. В момент времени 270а, фаза запроса может включать в себя запрос 280а. Запрос 280а может содержать, например, преамбулу, команду и/или адрес. Преамбула может использоваться для приема команды и/или адреса. Команда может обозначать, что операция записи должна быть выполнена, и адрес может идентифицировать местоположение, где данные должны быть записаны.
Например, предположим, что объекты включают в себя NMI 146 и энергонезависимую память 150, и шина включает в себя шину 190. Во время фазы запроса запрос 280а может быть передан из NMI 146 в энергонезависимую память 150 через шину 190. Запрос 280а может включать в себя преамбулу, команду и адрес. Преамбула может использоваться энергонезависимой памятью 150 для подготовки к приему команды и адреса. Подготовка может включать в себя тренировку, такую, как описано выше. Команда может идентифицировать операцию записи, которая должна быть выполнена энергонезависимой памятью 150. Адрес может идентифицировать местоположение в энергонезависимой памяти 150, в котором требуется выполнить запись.
Фаза данных может возникнуть после фазы запроса. Во время фазы данных данные 280b, предназначенные для записи, могут быть переданы между объектами, как обозначено в момент времени 270b. Кроме того, во время фазы данных, в момент времени 270с, данные могут быть записаны в идентифицированном местоположении, например, в запросе 280а.
Например, во время данных фазы данные 280b могут быть переданы из NMI 146 в энергонезависимую память 150 через шину 190. После приема данных 280b энергонезависимая память 150 может записывать данные в определенное местоположение в энергонезависимой памяти 150, которое может быть идентифицировано, используя адрес, содержащийся в запросе 280а.
Фаза отклика может следовать после фазы данных, как обозначено в момент времени 270d. Во время фазы отклика отклик 280с может быть передан между объектами. Отклик 280с может включать в себя, например, статус, ассоциированный с запросом записи. Статус может обозначать, например, был ли успешно выполнен запрос на запись.
Например, энергонезависимая память 150 может генерировать отклик 280с, который может содержать статус, который может обозначать, была ли успешно выполнена операция записи. Во время фазы отклика энергонезависимая память 150 может передавать отклик 280с через шину 190 в NMI 146.
Различные сигналы могут быть переданы между NMI 146 и энергонезависимой памятью 150 через шину 190. Шина 190 может представлять собой подключенную шину (например, шину "из-точки-в-точку"), и каждый из сигналов может быть передан, например, по отдельному соединению (например, по электропроводным проводам, оптическим соединениям), которые могут быть включены в шину 190. Сигналы могут включать в себя, например, сигналы, перечисленные в следующей таблице:
Следует отметить, что представленная выше таблица представляет примеры сигналов, которые могут быть переданы между NMI 146 и энергонезависимой памятью 150. Другие сигналы также могут быть переданы между NMI 146 и энергонезависимой памятью 150, например, через шину 190. Эти сигналы могут включать в себя, например, сигнал, который может использоваться для сброса операции NMI 146 и/или энергонезависимой памяти 150, сигнал, который может обеспечивать ссылку на калибровку импеданса и/или сигналы битов проверки, которые могут обеспечить детектирование и/или коррекцию ошибки передаваемой информации, например, через шину 190.
Тем не менее, другие сигналы могут включать в себя, например, сигналы, которые могут использоваться для администрирования питанием. Например, сигнал, который может быть включен, который может использоваться NMI 146 для направления энергонезависимой памяти 150 для перехода в состояние низкого потребления энергии. Другой сигнал может быть включен, который может использоваться, например, NMI 146, для направления энергонезависимой памяти 150, для выхода из состояния низкого потребления питания.
Следует отметить, что провода, по которым передают сигналы по шине 190, могут быть перенастроены так, чтобы они передавали определенные сигналы на основе, например, состояния энергонезависимой памяти 150 и/или NMI 146. Например, провода, по которым передают ACT и RRDY, могут быть перенастроены для использования при администрировании состоянием питания, ассоциированным с энергонезависимой памятью 150, как описано выше.
Сигналы, передаваемые между энергонезависимой памятью 150 и NMI 146, могут быть подтверждены, и их подтверждение может быть удалено в различное время для обеспечения различных показателей во время транзакции. На фиг. 3 иллюстрируется временная диаграмма 300 примерной операции с сигналами во время транзакции считывания между, например, NMI 146 и энергонезависимой памятью 150. Сигналы могут быть переданы между энергонезависимой памятью 150 и NMI 146 через шину 190.
Как показано на фиг. 3, время 330а может представлять состояние сигналов перед транзакцией считывания. В частности, в момент времени 330а, для описанных выше сигналов ACT, RGRANT, RQRDY и RRDY может быть убрано активное состояние. Кроме того, описанные выше DQ и DQS могут находиться в состоянии высокого импеданса, как обозначено пунктирными линиями на схеме 300.
В момент времени 330b, NMI 146 может подтверждать сигнал ACT для обозначения для энергонезависимой памяти 150, что NMI 146 содержит запрос, предназначенный для передачи. Подтверждение ACT может обозначать, что произошел вход в фазу запроса транзакции считывания. Энергонезависимая память 150 может детектировать, что произошло подтверждение ACT, и может подготовиться к приему преамбулы, ассоциированной с запросом в DQS. В момент времени 330 с NMI 146 может начать передачу преамбулы в DQS. Энергонезависимая память 150 может принимать преамбулу и может подготовиться к приему запроса из NMI 146. Подготовка может включать в себя тренировку, такую, как описано выше.
В моменты времени 330d и 330e NMI 146 может передавать запрос в DQ. Кроме того, NMI 146 может предоставлять сигнал стробирования по DQS, который энергонезависимая память 150 может использовать для получения запроса из DQ. Энергонезависимая память 150 может получать сигнал стробирования и использовать сигнал стробирования для получения запроса из DQ в моменты времени 330d и 330e.
В момент времени 330e NMI 146 может устанавливать неактивное состояние для RQRDY. Энергонезависимая память 150 может детектировать, что NMI 146 установило неактивное состояние для RQRDY и прервало получение запроса из DQ. Кроме того, в моменты времени 330f и 330g NMI 146 может передавать завершающую часть через DQS в энергонезависимую память 150. Энергонезависимая память 150 может получать завершающую часть и может определять, что произошел выход из запрашиваемой фазы.
В момент времени 330h, энергонезависимая память 150 может обрабатывать запрос. Здесь обработка может включать в себя определение, что запрос представляет собой запрос на считывание, и может выполнять считывание данных из энергонезависимой памяти 150 в местоположении, идентифицированном в запросе.
После считывания данных, энергонезависимая память 150 может подтверждать RRDY, как обозначено в момент времени 330i, для обозначения для NMI 146, что энергонезависимая память 150 готова передавать информацию в NMI 146. Информация может включать в себя, например, данные, которые были считаны из энергонезависимой памяти 150. Здесь подтверждение RRDY может обозначать вход в фазу данных транзакции для считывания.
NMI 146 может определять, что RRDY был подтвержден, и может подтверждать RGRANT для передачи показателя в энергонезависимую память 150 о том, что было предоставлено право собственности DQ, как обозначено в момент времени 330j.
После детектирования того, что RGRANT был подтвержден, и определения на основе подтвержденного RGRANT, что для энергонезависимой памяти 150 было предоставлено право собственности DQ, энергонезависимая память 150 может начать передачу преамбулы по DQS, как обозначено в момент времени 330k. NMI 146 может получать преамбулу и может подготавливаться к приему данных по DQ. Подготовка может включать в себя тренировку так, как описано выше. В моменты времени 330m и 330n энергонезависимая память 150 может передавать данные и ассоциированную информацию строба в DQ и DQS, соответственно. NMI 146 может использовать информацию строба для получения данных из DQ.
В момент времени 330ο энергонезависимая память 150 может убрать активное состояние RRDY для обозначения, что произошел выход из фазы данных, и что произошел вход в фазу отклика транзакции считывания. После того, как будет убрано активное состояние RRDY, энергонезависимая память 150 может передавать информацию отклика по DQ. Информация отклика может включать в себя, например, статус, ассоциированный с запросом. Статус может обозначать, например, был ли запрос успешно обработан энергонезависимой памятью 150. NMI 146 может получать информацию отклика из DQ и обрабатывать ее. Здесь обработка может включать в себя, например, определение был ли запрос успешно обработан энергонезависимой памятью 150.
В моменты времени 330ο и 330р энергонезависимая память 150 может передавать завершающую часть по DQS. NMI 146 может получать завершающую часть и может определять, что произошел выход из фазы отклика. После определения, что произошел выход из фазы отклика, NMI 146 может убрать активное состояние для сигнала RGRANT, как обозначено в момент времени 330q.
На фиг. 4 иллюстрируется временная диаграмма 400 примерной операции сигналов во время транзакции записи между, например, NMI 146 и энергонезависимой памятью 150. Сигналы могут быть переданы между NMI 146 и энергонезависимой памятью 150 через шину 190.
Как показано на фиг. 4, время 430а может представлять состояние сигналов перед транзакцией записи. В частности, в момент времени 430а, для описанных выше сигналов ACT, RGRANT, RQRDY и RRDY может быть убрано активное состояние. Кроме того, описанные выше DQ и DQS могут находиться в состоянии высокого импеданса, как обозначено пунктирными линиями на диаграмме 400.
В момент времени 430b, NMI 146 может подтверждать сигнал ACT для обозначения, для энергонезависимой памяти 150, что в NMI 146 содержится запрос, предназначенный для передачи. Подтверждение ACT может обозначать, что произошел вход в фазу запроса транзакции записи. Энергонезависимая память 150 может детектировать, что ACT подтверждена, и может подготовиться к получению преамбулы, ассоциированной с запросом по DQS. В момент времени 430с NMI 146 может начать передачу преамбулы по DQS. Энергонезависимая память 150 может получать преамбулу и может подготавливаться к получению запроса из NMI 146. Подготовка может включать в себя тренировку, используя преамбулу, такую, как описано выше.
В моменты времени 430d и 430e NMI 146 может передавать запрос в DQ. Запрос может включать в себя команду и адрес. Команда может идентифицировать запрос, как запрос на запись, и адрес может идентифицировать местоположение в энергонезависимой памяти 150, в которое требуется записать данные. NMI 146 может обеспечить сигнал строба по DQS, который может использовать энергонезависимая память 150 для получения запроса из DQ. Энергонезависимая память 150 может принимать сигнал строба и использовать сигнал строба для получения запроса из DQ в момент времени 430d и 430е.
В момент времени 430f NMI 146 может убирать активное состояние RQRDY. Энергонезависимая память 150 может детектировать, что NMI 146 убрал активное состояние RQRDY и прервал получение запроса из DQ. Следует отметить, что RQRDY может быть подтвержден для времени, когда запрос передают по DQ с помощью NMI 146, и его активное состояние может быть убрано в то время, когда DQ не содержит информацию запроса. Энергонезависимая память 150 может детектировать, что DQ больше не подтвержден, и может определять, что произошел выход из фазы запроса транзакции записи, и транзакция вошла в фазу данных.
Также, в момент времени 430f, NMI 146 может передавать данные по DQ. Энергонезависимая память 150 может получать данные из DQ, используя строб, который может быть предоставлен по DQS из NMI 146. Данные могут включать в себя данные, которые должны быть записаны в энергонезависимую память 150. В момент времени 430g NMI 146 может закончить передачу данных по DQ.
В момент времени 430g NMI 146 может убрать активное состояние ACT, что может обозначать, что NMI 146 больше не обладает правом собственности в отношении DQ. После того, как будет убрано активное состояние ACT NMI 146 может передать завершающую часть в DQS, как обозначено в моменты времени 430g и 430h. Энергонезависимая память 150 может получать завершающую часть и может определять, что произошел выход из фазы данных транзакции записи.
В момент времени 430j, энергонезависимая память 150 может записывать данные в местоположение, в энергонезависимой памяти 150, которое может быть идентифицировано по адресу, установленному в запросе. После этого, в момент времени 430 k, энергонезависимая память 150 может подтвердить RRDY для обозначения для NMI 146, что энергонезависимая память 150 готова передать ответ. В этот момент транзакция записи может войти в фазу отклика.
NMI 146 может детектировать, что RRDY был подтвержден, и в момент времени 430m может предоставлять право собственности в отношении DQ для энергонезависимой памяти 150 путем подтверждения RGRANT. Энергонезависимая память 150 может детектировать, что RGRANT подтвержден, и может определять, что для энергонезависимой памяти 150 было предоставлено право собственности в отношении DQ. В моменты времени 430n и 430о энергонезависимая память 150 может передавать преамбулу по DQS. NMI 146 может получать преамбулу и может подготовиться к получению отклика по DQ. Подготовка может включать в себя тренировку, такую, как описано выше.
В момент времени 430 энергонезависимая память 150 может передавать отклик по DQ. Кроме того, в момент времени 430q, энергонезависимая память 150 может передавать информацию заполнения по DQ (обозначена на схеме 400, как "Р"). Информация заполнения может использоваться для "заполнения" отклика до определенной длины (например, до определенного количества байтов).
NMI 146 может использовать стробы, предоставляемые по DQS энергонезависимой памятью 150, для получения отклика и информации заполнения по DQ. NMI 146 может обрабатывать отклик. Здесь обработка может включать в себя, например, определяют, обозначено ли в отклике, что запрос был выполнен успешно.
В моменты времени 430q и 430r, энергонезависимая память 150 может передавать завершающую часть по DQS. NMI 146 может принимать завершающую часть и может определять, что произошел выход из фазы отклика транзакции записи. После этого, в момент времени 430s, NMI 146 может убрать активное состояние RGRANT для обозначения того, что энергонезависимая память 150 больше не обладает правами собственности в отношении DQ.
В компьютерном устройстве 100 (фиг. 1) NMI 146 можно рассматривать как хост устройство для энергонезависимой памяти 150, и энергонезависимую память 150 можно рассматривать, как клиент NMI 146. Такая взаимосвязь может быть установлена, например, на основе, какой объект может управлять правом собственности в отношении DQ. Как описано выше, NMI 146 может получить право собственности в отношении DQ, без первоначального запроса права собственности. Энергонезависимая память 150, с другой стороны, подтверждает RRDY для запроса права собственности в отношении DQ и ожидает пока NMI 146 предоставит право собственности перед тем, как энергонезависимая память 150 получит право собственности в отношении DQ. Можно сказать, что NMI 146 управляет, какой объект обладает правом собственности в отношении DQ. Таким образом, на основе такого поведения можно сказать, что NMI 146 представляет собой хост устройство для энергонезависимой памяти 150, которое представляет собой клиент NMI 146.
Обмен данными между NMI 146 и энергонезависимой памятью 150 через шину 190 может следовать протоколу. Протокол может управляться одним или больше правилами. Например, протокол может управляться одним или больше из следующих правил:
1. Подтверждение RRDY энергонезависимой памятью 150 может зависеть от того, была ли выполнена выборка RGRANT энергонезависимой памятью 150, как находящегося в неактивном состоянии;
2. Подтверждение RGRANT NMI 146 может зависеть от выборки RRDY NMI 146, как подтвержденной вместе с устранением активного состояния ACT и RQRDY. Минимальная длительность подтверждения может составлять заданное количество циклов тактовой частоты для тактовой частоты, ассоциированной с NMI 146 (тактовая частота NMI). Например, NMI 146 может подтверждать RGRANT в течение минимум двух циклов тактовой частоты для тактовой частоты NMI;
3. Энергонезависимая память 150 может начать передачу преамбулы по DQS после выборки подтверждения RGRANT для заданного количества циклов тактовой частоты для тактовой частоты, ассоциированной с энергонезависимой памятью 150 (тактовая частота энергонезависимой памяти). Например, энергонезависимая память 150 может начать передачу преамбулы по DQS после выборки подтверждения RGRANT для одного цикла частоты памяти для тактовой частоты энергонезависимой памяти;
4. Активное состояние RGRANT может быть устранено NMI 146 перед тем, как будет устранено активное состояние RRDY. В качестве альтернативы, активное состояние RGRANT может быть устранено после того, как NMI 146 детектирует, что было устранено активное состояние RRDY;
5. Устранение активного состоянии RRDY может возникнуть после завершения транзакции или в ответ на NMI 146, которое восстанавливает право собственности для шины перед завершением транзакции;
6. NMI 146 может начать передачу преамбулы по DQS после выборки RRDY, определяющей удаленное активное состояние в течение заданного количества циклов тактовой частоты NMI (например, в течение одного цикла тактовой частоты NMI). Передают заданное время после преамбулы, NMI 146 может начать передачу информации по DQ;
7. После выборки RGRANT с определением, что для него было устранено активное состояние энергонезависимой памятью 150, для RRDY может быть устранено активное состояние энергонезависимой памятью 150. Кроме того, энергонезависимая память 150 может закончить передачу информации по DQ и DQS. Передача информации может быть закончена на определенной границе, ассоциированной с информацией (например, на границе 64 байта). Устранение активного состояния RRDY может обозначать, например, конец передачи энергонезависимой памятью 150;
8. Подтверждение RQRDY может оборачивать информацию, переданную по DQ NMI 146. Например, подтверждение RQRDY может оборачивать информацию команды, переданную по DQ NMI 146 в транзакции считывания;
9. Активное состояние RQRDY может быть устранено в течение заданной длительности (например, для двух циклов тактовой частоты NMI).
Если фазы запроса идут последовательно одна за другой, RQRDY может оставаться подтвержденным, и его активное состояние не будет устранено между фазами;
10. NMI 146 может устанавливать три состояния DQ и/или DQS после завершения фазы запроса транзакции считывания и/или после фазы данных транзакции записи;
11. Подтверждение ACT может зависеть от RGRANT и RRDY, активное состояние которых было устранено; и/или
12. Устранение активного состояния ACT может возникнуть через определенное количество циклов тактовой частоты NMI. Например, устранение активного состояния ACT может возникнуть после одного цикла тактовой частоты для тактовой частоты NMI.
На фиг. 5А-В иллюстрируется блок-схема последовательности операций примерных действий, ассоциированных с транзакцией считывания, которая может быть выполнена хост устройством, таким как, например, NMI 146. Как показано на фиг. 5А, в блоке 510, в клиент может быть передан показатель того, что в хост устройстве содержится запрос, предназначенный для передачи. Например, предположим, что хост устройство представляет собой NMI 146, и клиент представляет собой энергонезависимую память 150. В блоке 510 NMI 146 может подтверждать ACT, для обозначения для энергонезависимой памяти 150, что NMI 146 имеет запрос для передачи в энергонезависимую память 150.
В блоке 520, передают обозначение в устройство клиент, где обозначение обозначает, что запрос на считывание передают через шину. Например, NMI 146 может подтверждать RQRDY для обозначения, для энергонезависимой памяти 150, что запрос на считывание передают в энергонезависимую память 150 по DQ. В блоке 530, запрос на считывание может быть передан в устройство клиент через шину. Например, NMI 146 может передать запрос на считывание в энергонезависимую память 150 через DQ.
В блоке 540 может быть получен показатель того, что клиент готов для передачи информации. Например, энергонезависимая память 150 может принимать запрос на считывание и обрабатывать его. Обработка может включать в себя, например, считывание данных из определенного местоположения в энергонезависимой памяти 150, где местоположение может быть идентифицировано на основе адреса, который может содержаться в запросе на считывание. После считывания данных, энергонезависимая память 150 может подтверждать RRDY для обозначения того, что энергонезависимая память 150 готова для передачи данных NMI146.
В блоке 550 (фиг. 5В) может быть передан показатель того, что клиент обладает правом собственности в отношении шины. Например, NMI 146 может подтверждать RGRANT для обозначения для энергонезависимой памяти 150, что энергонезависимая память 150 обладает правом собственности в отношении DQ. В блоке 560 информация из устройства-клиента может быть получена через шину. Например, после детектирования того, что RGRANT был подтвержден, энергонезависимая память 150 может начать передачу данных в NMI 146 через DQ, и NMI 146 может считывать данные из DQ, используя, например, сигнал строба, передаваемый энергонезависимой памятью 150 по DQS. Кроме того, энергонезависимая память 150 может передавать информацию отклика в NMI 146 через DQ, и NMI 146 может считывать информацию отклика из DQ, как описано выше.
В блоке 570 может быть получен показатель из устройства-клиента о том, что информацию больше не передают из устройства-клиента в хост устройство через шину. Например, после передачи информации отклика, энергонезависимая память 150 может передавать завершающую часть по DQS. Завершающая часть может обозначать, что информация больше не будет передана по DQ, используя энергонезависимую память 150.
В блоке 580 может быть передан показатель, который обозначает, что устройство клиент больше не обладает правом собственности в отношении шины. Например, NMI 146 может устранять активное состояние RGRANT для обозначения для энергонезависимой памяти 150, что энергонезависимая память 150 больше не обладает правом собственности в отношении DQ.
На фиг. 6А-В иллюстрируется блок-схема последовательности операций примерных действий, ассоциированных с транзакцией считывания, которая может быть выполнена устройством-клиентом. Как показано на фиг. 6А, в блоке 610, показатель может быть получен из хост устройства, и который хост устройство запросило для передачи в устройство клиент. Например, предположим, что хост устройство представляет собой NMI 146, и устройство клиент представляет собой энергонезависимую память 150. В блоке 610 NMI 146 может подтверждать ACT для обозначения, что в NMI 146 содержится запрос на передачу в энергонезависимую память 150. Энергонезависимая память 150 может детектировать, что ACT подтвержден, и определять, что в NMI 146 содержится запрос для передачи в энергонезависимую память 150.
В блоке 620, из хост устройства может быть получен показатель того, что запрос на считывание передают по шине. Например, NMI 146 может подтверждать RQRDY для обозначения для энергонезависимой памяти 150, что запрос на считывание передают по шине DQ, используя NMI 146. В блоке 630, запрос на считывание получают из хост устройства через шину. Например, энергонезависимая память 150 может считывать запрос на считывание из DQ, используя, например, сигнал стробирования, переданный NMI 146 в DQS.
В блоке 640, данные могут быть считаны на основе запроса на считывание. Например, запрос на считывание может включать в себя адрес. Энергонезависимая память 150 может использовать адрес для идентификации местоположения в энергонезависимой памяти 150, которое содержит данные. Энергонезависимая память 150 может считывать данные из идентифицированного местоположения в энергонезависимой памяти 150.
В блоке 650 (фиг. 6В) может быть передан показатель того, что устройство клиент готово передать информацию. Например, после считывания данных из энергонезависимой памяти 150 энергонезависимая память 150 может подтверждать RRDY. NMI 146 может детектировать, что RRDY был подтвержден, и может определять, что энергонезависимая память 150 готова передавать запрашиваемые данные.
В блоке 660 может быть получен показатель того, что клиент обладает правом собственности в отношении шины, и информация может быть передана в хост устройство через шину. Например, NMI 146 может предоставлять право собственности для DQ энергонезависимой памяти 150, используя RGRANT, как описано выше. После определения энергонезависимой памятью 150, что она обладает правом собственности в отношении DQ, энергонезависимая память 150 может передавать данные через DQ в NMI 146, как описано выше.
В блоке 670 передают показатель того, что информацию больше не передают по шине. Например, энергонезависимая память 150 может передавать завершающую часть в NMI 146 через DQS для обозначения того, что информация больше не будет передана по DQ.
В блоке 680 может быть получен показатель из хост устройства, который обозначает, что устройство клиент больше не обладает правом собственности в отношении шины. Например, NMI 146 может убрать активное состояние RGRANT для обозначения для энергонезависимой памяти 150, что энергонезависимая память 150 больше не обладает правом собственности в отношении DQ.
На фиг. 7А-В представлена блок-схема примерных действий, ассоциированных с транзакцией записи, которые могут быть выполнены хост устройством. Как показано на фиг. 7А, в блоке 710, может быть передан показатель того, что в хост устройстве содержится запрос, предназначенный для передачи. Например, предположим, что хост устройство представляет собой NMI 146, и устройство клиент представляет собой энергонезависимую память 150. В блоке 710 NMI 146 может подтверждать ACT, для обозначения для энергонезависимой памяти 150, что в NMI 146 содержится запрос, предназначенный для передачи в энергонезависимую память 150. Энергонезависимая память 150 может детектировать, что ACT подтвержден, и может определять, что в NMI 146 содержится запрос на передачу.
В блоке 720 передают показатель того, что запрос передают через шину. Например, NMI 146 может подтверждать RQRDY для обозначения для энергонезависимой памяти 150, что запрос передают по QD. В блоке 730, запрос и информацию, предназначенную для записи, передают через шину. Например, после подтверждения RQRDY, NMI 146 может передавать запрос в энергонезависимую память 150 через QD. После передачи запроса, NMI 146 может убрать активное состояние RQRDY. NMI 146 может затем передать данные, которые должны быть записаны в энергонезависимую память 150, через QD.
В блоке 740 может быть получен показатель, где показатель может обозначать, что отклик готов для передачи в хост устройство из устройства-клиента. Например, после записи данных в энергонезависимую память 150, энергонезависимая память 150 может подтверждать RRDY, для запроса доступа в QD, для передачи отклика в NMI 146. NMI 146 может детектировать, что RRDY подтвержден, и может определять, что энергонезависимая память 150 готова к передаче отклика.
В блоке 750 (фиг. 7В) может быть передан показатель в устройство клиент, который обозначает, что устройству клиенту было предоставлено право собственности в отношении шины. Например, после детектирования, что RRDY подтвержден, NMI 146 может подтверждать RGRANT для предоставления права собственности в отношении шины для энергонезависимой памяти 150.
В блоке 760 может быть получен отклик через шину. Например, энергонезависимая память 150 может детектировать, что RGRANT подтвержден, и может определять, что NMI 146 предоставил право собственности QD для энергонезависимой памяти 150. Энергонезависимая память 150 может передавать отклик в NMI 146 через QD. NMI 146 может принимать отклик из QD, так, как описано выше.
В блоке 770 может быть получен показатель того, что отклик больше не передают в шину. Например, после передачи отклика, энергонезависимая память 150 может передавать завершающую часть по QDS. NMI 146 может детектировать завершающую часть и может определять, что отклик больше не передают по шине.
В блоке 780 может быть передан показатель того, что клиент больше не обладает правом собственности в отношении шины. Например, NMI 146 может убрать активное состояние RGRANT для обозначения для энергонезависимой памяти 150, что энергонезависимая память 150 больше не обладает правом собственности DQ.
На фиг. 8А-В иллюстрируется блок-схема последовательности операций примерных действий, ассоциированных с транзакцией записи, которые могут быть выполнены устройством клиентом. Как показано на фиг. 8А, в блоке 810 может быть получен показатель того, что в хост устройстве содержится запрос, предназначенный для передачи. Например, предположим, что хост устройство представляет собой NMI 146, и устройство клиент представляет собой энергонезависимую память 150. NMI 146 может подтверждать ACT для обозначения того, что в NMI 146 содержится запрос, предназначенный для передачи. Энергонезависимая память 150 может детектировать, что ACT был подтвержден, и может определять, что в NMI 146 содержится запрос для передачи.
В блоке 820 может быть получен показатель того, что запрос на запись, передают через шину, и, в блоке 830 могут быть получены запрос на запись и данные. Например, NMI 146 может подтверждать RQRDY для обозначения того, что запрос передают по DQ. Энергонезависимая память 150 может детектировать, что RQRDY подтвержден и считывает запрос из DQ так, как описано выше. NMI 146 может убрать активное состояние RQRDY для обозначения, например, того, что часть команды запроса была передана, и часть данных запроса передают по QD. Энергонезависимая память 150 может детектировать, что активное состояние RQRDY было убрано, и может считывать данные из DQ, как описано выше.
В блоке 840, данные записывают в энергонезависимую память. Например, после получения запроса, энергонезависимая память 150 может обрабатывать запрос. Здесь обработка может включать в себя определение, что запрос представляет собой запрос на запись. Энергонезависимая память 150 также может идентифицировать местоположение в энергонезависимой памяти 150 для записи на основе адреса, который может содержаться в запросе. После считывания данных из DQ энергонезависимая память 150 может записывать данные в идентифицированное местоположение в энергонезависимой памяти 150.
В блоке 850 (фиг. 8В) может быть передан показатель, который обозначает, что отклик на запрос записи готов к передаче. Например, энергонезависимая память 150 может подтверждать RRDY для обозначения того, что энергонезависимая память 150 содержит отклик, предназначенный для передачи через DQ. NMI 146 может детектировать, что RRDY был подтвержден, и может определять, что энергонезависимая память 150 содержит отклик, предназначенный для передачи.
В блоке 860 может быть получен показатель, в котором показатель может обозначать, что права собственности в отношении шины были предоставлены устройству клиенту. Кроме того, в блоке 860 отклик может быть передан устройством клиентом в хост устройство. Например, после того, как NMI 146 определит, что энергонезависимая память 150 содержит отклик, предназначенный для передачи, NMI 146 может подтверждать RGRANT для предоставления права собственности в отношении DQ в энергонезависимой памяти 150. Энергонезависимая память 150 может детектировать, что RGRANT был подтвержден и может определять, что энергонезависимая память 150 обладает правом собственности в отношении DQ. После такого определения, энергонезависимая память 150 может передавать отклик в NMI 146 через DQ, как описано выше.
В блоке 870 может быть передан показатель, который обозначает, что отклик больше не передают по шине. Например, энергонезависимая память 150 может передавать завершающую часть по DQS, для обозначения того, что отклик больше не передают по DQ.
В блоке 880 может быть получен показатель, который обозначает, что право собственности в отношении шины больше не предоставляются устройству клиенту. Например, NMI 146 может убрать активное состояние RGRANT, для обозначения, для энергонезависимой памяти 150, что энергонезависимая память 150 больше не обладает правом собственности в отношении DQ. Энергонезависимая память 150 может детектировать, что RGRANT больше не подтвержден, и определять, что энергонезависимая память 150 больше не обладает правом собственности в отношении DQ.
На фиг. 9 иллюстрируется блок-схема другого примерного варианта осуществления компьютерного устройства 900, которое может воплощать описанные здесь технологии. Как представлено на фиг. 9, компьютерное устройство 900 может включать в себя различные компоненты, такие как, например, логика 920, первичный накопитель 930, вторичный накопитель 950, одно или больше устройств 960 ввода, одно или больше устройств 970 вывода и/или один или больше интерфейсов 980 передачи данных.
Следует отметить, что на фиг. 9 иллюстрируется примерный вариант осуществления компьютерного устройства 900. Другие варианты осуществления компьютерного устройства 900 могут включать в себя больше компонентов или меньше компонентов, чем количество компонентов, представленное на фиг. 9. Кроме того, компоненты могут быть расположены по-другому, чем представлено на фиг. 9.
Например, в варианте осуществления компьютерного устройства 900, вторичное устройство 950 может содержаться в удаленном месте, которое обеспечивает "облачное" хранение. Доступ к такому месту может осуществляться компьютерным устройством 900 через сеть передачи данных, такую как, например, Интернет. Интерфейс 980 передачи данных может использоваться для формирования интерфейса для компьютерного устройства 900 с сетью передачи данных.
Кроме того, следует отметить, что свойства, предусмотренные различными компонентами, содержащимися в других вариантах осуществления компьютерного устройства 900, могут быть распределены среди компонентов по-другому, чем описано здесь.
Компьютерное устройство 900 может включать в себя шину 910 ввода/вывода (I/O), которая может обеспечивать возможность передачи данных между компонентами в компьютерном устройстве 900. Компоненты могут включать в себя, например, логику 920, вторичный накопитель 950, одно или больше устройств 960 ввода, одно или больше устройств 970 вывода, и/или один или больше интерфейсов 980 передачи данных. Передача данных может подразумевать, например, передачу сигналов управления и/или данных между компонентами через шину 910 I/O. Шины I/O, которые можно использовать для воплощения шины 910 I/O, включают в себя, например, последовательное соединение AT (SATA), межсоединение периферийных компонентов (PCI), PCI экспресс (PCI-е), универсальную последовательную шину (USB), интерфейс малых компьютерных систем (SCSI), последовательно подключенную SCSI (SAS), или некоторые другие шины I/O.
Устройство 960 ввода может включать в себя одно или больше устройств, которые могут использоваться для ввода информации в компьютерное устройство 900. Устройства могут включать в себя, например, клавиатуру, компьютерную "мышь", микрофон, камеру, шаровой указатель, гироскопическое устройство (например, гироскоп), мини "мышь", сенсорную панель, стайлус, графический планшет, сенсорный экран, джойстик (изотонический или изометрический), манипулятор-указку, акселерометр, "мышь" для ладони, "мышь" для ноги, координатную шайбу, устройство, управляемое глазным яблоком, "мышь" на пальце, световую ручку, световое перо, нейтральное устройство, устройство отслеживания глаз, управляющее колесо, ручку управления, поворотный переключатель, изометрический джойстик Spaceball, навигационную клавишу, танцевальный коврик, "мышь", работающую в свободном воздушном пространстве ("мыльная" мышь, soap mouse), тактильное устройство, осязательное устройство, невральное устройство, устройство многоточечного ввода, устройство дискретного указания и/или некоторые другие устройства ввода.
Информация может включать в себя пространственные (например, непрерывные, многомерные) данные, которые могут быть введены в компьютерное устройство 900, используя, например, устройство-указатель, такое как компьютерная "мышь". Информация также может включать в себя другие формы данных, такие как, например, текст, который может быть введен, используя клавиатуру.
Устройства 970 вывода могут включать в себя одно или больше устройств, которые могут выводить информацию из компьютерного устройства 900. Устройства могут включать в себя, например, электронно-лучевую трубку (CRT), устройство на плазменном дисплее, устройство светодиодного дисплея (LED), устройство жидкокристаллического дисплея (LCD), устройство вакуумного флуоресцентного дисплея (VFD), устройство дисплея с люминофором на основе эффекта эмиссии электронов с поверхностной проводимостью (SED), устройство дисплея с автоэлектронной эмиссией (FED), тактильное устройство, осязательное устройство, принтер, громкоговоритель, видеопроектор, устройство волюметрического дисплея, плоттер, сенсорный экран и/или некоторые другие устройства вывода.
Устройства 970 вывода могут управляться, например, логикой 920 для вывода информации из компьютерного устройства 900. Вывод информации из устройства 970 вывода может включать в себя, например, представление (например, отображение, печать) информации в устройстве 970 вывода. Информация может включать в себя, например, текст, элементы графического интерфейса пользователя (GUI) (например, окна, виджеты и/или другие элементы GUI), аудиоданные (например, музыку, звуки) и/или другую информацию, которая может быть выведена устройствами 970 вывода.
Интерфейсы 980 передачи данных могут включать в себя логику для формирования интерфейса для компьютерного устройства 900, например, с одной или больше сетями передачи данных и могут обеспечивать возможность для компьютерного устройства 900 выполнять обмен данными с одним или больше объектами (например, узлами), подключенными к сетям передачи данных. Сети передачи данных могут включать в себя, например, Интернет, глобальные вычислительные сети (WAN), локальные вычислительные сети (LAN), сети 3G и/или 4G (например, сеть долгосрочного развития (LTE) 4G).
Интерфейс 980 передачи данных может включать в себя один или больше механизмов, аналогичных приемопередатчиков, которые могут обеспечивать для компьютерного устройства 900 возможность связываться с объектами, подключенными к сетям передачи данных. Примеры интерфейсов 980 передачи данных могут включать в себя встроенный сетевой адаптер, карту сетевого интерфейса (NIC), сетевую карту по стандарту Международной ассоциации производителей плат памяти для персональных компьютеров (PCMCIA), сетевой адаптер шины для карты, беспроводный сетевой адаптер, сетевой адаптер универсальной последовательной шины (USB), модем и/или другое устройство, пригодное для формирования интерфейса с компьютерным устройством 100 для сети передачи данных.
Первичный накопитель 930 и/или вторичный накопитель 950 могут включать в себя один или больше модулей накопителя, таких как, например, модули накопителя, описанные выше. Компьютерное устройство 900 может включать в себя шину 990 памяти, которая обеспечивает возможность передачи информации, сохраненной в первичном накопителе 930 между логикой 920 и первичным накопителем 930. Информация может включать в себя, например, исполняемые компьютером инструкции и/или данные, которые могут исполняться, которыми можно манипулировать, и/или по-другому обрабатывать с помощью логики 920.
Первичный накопитель 930 может быть доступен для логики 920 через шину 990 памяти. Первичный накопитель 930 может представлять собой существенный энергонезависимый накопитель, который может сохранять информацию. Информация может включать в себя исполняемые компьютером инструкции и/или данные, которые могут воплощать операционную систему (ОС) 932 и приложение (АРР) 934 или их части. Информация может быть исполнена, интерпретирована, с ней могут быть выполнены манипуляции и/или она может по-другому быть обработана логикой 920. Первичный накопитель 930 может быть воплощен, используя одно или больше запоминающих устройств, которые могут содержать информацию. Запоминающего устройства могут включать в себя энергозависимое и/или энергонезависимое запоминающее устройство, как описано выше.
OS 932 может представлять собой обычную операционную систему, в которой могут быть воплощены различные функции обычной операционной системы, которые могут включать в себя, например, (1) планирование одной или больше частей АРР 934 для работы (например, для исполнения с помощью) в логике 920, (2) администрирование первичным накопителем 930, и (3) управление доступом к различным компонентам в компьютерном устройстве 900 (например, для устройств 960 ввода, устройств 970 вывода, интерфейсов 980 передачи данных, вторичного накопителя 950) и информацией, принимаемой и/или передаваемой этими компонентами.
Примеры операционных систем, которые могут использоваться для воплощения OS 932, могут включать в себя операционную систему Linux, операционную систему Microsoft Windows, операционную систему Symbian, операционную систему Mac OS и операционную систему Android. В качестве дистрибутива операционной системы Linux может использоваться Red Hat Linux, поставляемая Red Hat Corporation, Raleigh, North Carolina. Версии операционной системы Microsoft Windows, которые могут использоваться, включают в себя операционные системы Microsoft Windows Mobile, Microsoft Windows 8, Microsoft Windows 7, Microsoft Windows Vista и Microsoft Windows XP, поставляемые компанией Microsoft Inc., Redmond, Washington. Операционная система Symbian доступна в компании Accenture PLC, Dublin, Ireland. Операционная система Mac OS доступна в компании Apple, Inc., Cupertino, California. Операционная система Android доступна в компании Google. Inc., Menlo Park, California.
АРР 934 может представлять собой приложение, которое может исполняться под управлением OS 932 в компьютерном устройстве 900. АРР 934 и/или OS 932 могут содержать возможность обработки транзакций, в которых может использоваться сохранение информации во вторичном накопителе 950. Такие возможности могут быть воплощены, используя данные и/или исполняемые компьютером инструкции, содержащиеся в АРР 934 и/или в OS 932.
Вторичный накопитель 950 может представлять собой вещественный энергонезависимый накопитель, который может содержать информацию для компьютерного устройства 900. Информация может включать в себя, например, исполняемые компьютером инструкции и/или данные. Информация может исполняться, может быть интерпретирована, с нею может выполнять манипуляции, и/или она может по-другому обрабатываться логикой 920.
Вторичный накопитель может включать в себя одно или больше устройств 952 накопителя, которые могут содержать информацию. Доступ к устройствам 952 накопителя могут выполняться для логики 920 через шину 910 I/O: устройства 952 накопителя могут быть энергозависимыми или энергонезависимыми. Примеры устройств 952 накопителя могут включать в себя приводы жесткого диска, приводы оптического диска, приводы диска на основе оперативной памяти (RAM), приводы флэш, твердотельные диски (SSD) и/или гибридные приводы. Информация может быть сохранена в одном или больше вещественном непереходном считываемом компьютером носителе информации, содержащемся в устройствах 952 накопителя. Примеры вещественного непереходного считываемого компьютером носителя информации, которые могут содержаться в устройствах накопителя, могут включать в себя магнитные диски, оптические диски, энергозависимые запоминающего устройства и/или энергонезависимые запоминающего устройства.
Логика 920 может включать в себя логику (PL) 924 обработки для интерпретации, исполнения и/или другой обработки информации. Информация может включать в себя информацию, которая может быть сохранена в первичном накопителе 930 и/или во вторичном накопителе 950. Кроме того, информация может включать в себя информацию, которая может быть получена (например, считана, принята) одним или больше устройствами 960 ввода и/или интерфейсами 980 передачи данных.
PL 924 может включать в себя различные гетерогенные аппаратные средства. Например, аппаратные средства могут включать в себя некоторую комбинацию одного или больше процессоров, микропроцессоров, программируемые пользователем вентильные матрицы (FPGA), проблемно-ориентированные процессоры (ASIP), специализированные интегральные микросхемы (ASIC), сложные программируемые логические устройства (CPLD), модули графической обработки (GPU), и/или другие типы логики обработки, которые могут, например, интерпретировать, выполнять манипуляции и/или по-другому обрабатывать информацию. Логика 920 может содержать одно ядро или множество ядер.
Логика 920 также может включать в себя логику 924 интерфейса (IL), которая может представлять интерфейс для логики обработки с первичным накопителем 930. IL 924 может включать в себя возможности для передачи информации, которая должна быть передана между первичным накопителем 930 и логикой 920 через шину 990. Информация может быть передана, используя различные технологии, такие как технологии, описанные выше.
Например, в одном варианте осуществления, первичный накопитель 930 может включать в себя энергонезависимую память, которая может быть доступна для логики 920 через шину 990. IL 924 может содержать логику, которая может использоваться для передачи информации между энергонезависимой памятью, содержащейся в первичном накопителе 930 и PL 924, через шину 990, используя различные технологии, такие как технологии, описанные выше. Логика, которая может содержаться в IL 924, может включать в себя, например, конечные автоматы, приемопередатчики для шины, регистры и/или другую логику, которая может использоваться для обеспечения передачи информации между энергонезависимой памятью и PL 924. Информация может включать в себя, например, запросы и/или данные, такие, как описано выше.
Представленное выше описание вариантов осуществления предназначено для обеспечения иллюстрации и описания, но не должно исчерпывающим или не предназначено для ограничения изобретения точной раскрытой формой. Модификации и вариации возможны с учетом представленных выше описаний, или могут быть получены при воплощении на практике изобретения. Например, в то время как последовательность действий была описана выше со ссылкой на фиг. 5А-В, 6А-В, 7А-В и 8А-В, порядок действий может быть модифицирован в других вариантах осуществления. Кроме того, независимые действия могут быть выполнены параллельно.
Кроме того, термин "пользователь", используемый здесь, предназначен для широкой интерпретации и может включать в себя, например, компьютерное устройство (например, фиксированное компьютерное устройство, мобильное компьютерное устройство) или пользователя компьютерного устройства, если только не указано другое.
Следует понимать, что один или больше вариантов осуществления, описанных здесь, могут быть воплощены во множестве разных форм программного обеспечения и/или аппаратных средств. Код программного обеспечения и/или специализированные аппаратные средства, используемые для воплощения вариантов осуществления, описанных здесь, не ограничивают изобретения. Таким образом, операция и поведение вариантов осуществления были описаны без ссылки на конкретный программный код и/или специализированное аппаратное обеспечение - следует понимать, что специалист в данной области техники может разработать программное обеспечение и/или аппаратные средства для воплощения этих вариантов осуществления на основе представленного здесь описания.
Кроме того, определенные свойства изобретения могут быть воплощены, используя исполняемые компьютером инструкции, которые могут быть выполнены логикой обработки, такой как, например, логика 130 обработки или логика 922 обрабатывая. Исполняемые компьютером инструкции могут быть сохранены на носителе одного или больше энергонезависимого, вещественного, считываемого в компьютере накопителя. Носитель может быть энергозависимым или энергонезависимым и может включать в себя, например, DRAM, SRAM, память типа флэш, съемные диски, несъемные диски и так далее.
Ни одни из элементов, действий или инструкций, используемых здесь, не следует рассматривать, как критические или существенные в отношении изобретения, если только это не будет описано в явной форме. Кроме того, используемый здесь артикль "а" предназначен для включения одного или больше элементов. В случае, когда предполагается использование только одного элемента, используется термин "один" или аналогичная формулировка. Кроме того, фраза "основанный на" предназначена для обозначения "основанный на, по меньшей мере, частично", если только не будет в явной форме установлено другое.
Предполагается, что изобретение не должно быть ограничено конкретными вариантами осуществления, раскрытыми выше, но что изобретение может включать в себя любые и все конкретные варианты осуществления и эквиваленты, попадающие в пределы объема следующей приложенной формулы изобретения.