УПРАВЛЕНИЕ ВРЕМЕНЕМ ОБРАЩЕНИЯ К ПАМЯТИ
MEMORY ACCESS TIME MANAGEMENT

Область техники, к которой относится изобретение
Настоящее раскрытие, в общем, относится к области электроники. Более конкретно, некоторые варианты осуществления изобретения, в общем, относятся к управлению временем обращения к памяти.
Уровень техники
Некоторые системы памяти могут быть воплощены, используя локальную память с быстрым доступом, которая часто воплощается, как энергозависимая память, и которая может функционировать, как память типа кэш, и одно или больше удаленных устройств памяти, которые могут содержать энергонезависимую память, например, память на основе изменения фазы, память типа NAND и т.п. или даже магнитная или оптическая память.
Удаленные устройства памяти имеют большое время обращения, чем локальная память типа кэш, что отрицательно влияет на характеристики системы. В соответствии с этим, могут найти применение технологии для улучшения времени обращения к памяти.
Краткое описание чертежей
Подробное описание изобретения представлено со ссылкой на приложенные чертежи. На чертежах расположенная слева цифра (цифры) номера ссылочной позиции идентифицирует фигуру, на которой впервые появляется этот номер ссылки. Использование тех же номеров ссылочных позиций на разных фигурах обозначает аналогичные или идентичные элементы.
На фиг. 1 схематично показана блок-схема, иллюстрирующая компоненты для воплощения администрирования временем обращения к памяти в соответствии с различными вариантами осуществления, описанными здесь.
На фиг. 2 показана блок-схема последовательности операций, иллюстрирующая работу способа для воплощения администрирования временем обращения к памяти в соответствии с различными вариантами осуществления, описанными здесь.
На фиг. 3 представлены схематичные иллюстрации временных последовательностей, представляющих операции в способе, воплощающем администрирование временем обращения к памяти, в соответствии с различными вариантами осуществления, описанными здесь.
На фиг. 4-8 схематично показаны иллюстрации в виде блок-схем электронных устройств, которые могут быть адаптированы для воплощения администрирования временем обращения к памяти, в соответствии с различными вариантами осуществления, описанными здесь.
Подробное описание изобретения
Некоторые системы памяти могут быть воплощены, используя локальную память с быстрым доступом, которая часто воплощена, как энергозависимая память и которая может функционировать, как память типа кэш, и одно или больше устройств памяти, которые могут содержать энергонезависимую память, например, динамическую оперативное запоминающее устройство или даже магнитную память или оптическую память. В качестве примера удаленные устройства памяти могут содержать один или больше модулей памяти с прямым расположением микросхем (DIMM), каждая из которых может содержать один или больше рядов памяти, которые, в свою очередь, могут содержать одну или больше микросхем динамической оперативной памяти (DRAM) или могут включать в себя энергонезависимую память, например, память с изменением фазы, память типа NAND и т.п. Некоторые электронные устройства (например, смартфоны, планшетные компьютеры и т.п.) могут содержать более простые системы удаленной памяти, состоящие из одной или больше DRAM.
Удаленные устройства памяти могут воплощать алгоритмы кода с коррекцией ошибок (ЕСС) для детектирования и коррекции ошибок считывания. Примеры алгоритмов ЕСС включают в себя код коррекции ошибок ВСН и алгоритмы Рида-Соломона. Такие алгоритмы ЕСС вводят дополнительную задержку в операции считывания, воплощенные в удаленном устройстве (устройствах) памяти. В различных вариантах осуществления технологии, описанные здесь, уменьшают такую задержку, обеспечивая возможность возврата удаленным устройством (устройствами) памяти данных, полученных во время операции считывания, до окончания алгоритма ЕСС, путем конвейеризации логики коррекции ЕСС с передачей данных в хост устройство. Контроллер, который выработал запрос на получение данных, может быть выполнен с возможностью сохранения принятых данных из удаленного устройства (устройств) памяти в локальной памяти, ожидая индикатор ЕСС из удаленного устройства памяти. В случае, когда алгоритм ЕСС, воплощенный удаленным устройством памяти, не детектирует ошибки в данных, удаленное устройство памяти направляет индикатор ЕСС, который обозначает, что данные являются хорошими, и контроллер, который выработал запрос на получение данных, может обрабатывать эти данные. В отличие от этого, в случае, когда алгоритм ЕСС, воплощенный удаленным устройством памяти, детектирует ошибки в данных, удаленное устройство памяти направляет индикатор ЕСС, который обозначает, что данные являются поврежденными, и контроллер, который запросил эти данные, будет ожидать приема скорректированных данных перед переходом к обработке данных.
Технологии, описанные здесь, могут быть предусмотрены в различных вычислительных системах (например, включающих в себя серверы, настольные компьютеры, переносные компьютеры, смартфоны, планшетные компьютеры, портативные игровые консоли и т.д.), которые могут включать в себя систему памяти, содержащую микросхемы DRAM, совместно собранные в виде модуля памяти с двухсторонним расположением микросхем (DIMM) и энергонезависимую память, например, память с изменением фазы или память типа NAND. В таких вариантах осуществления каждая DRAM может содержать отдельную логику управления обновлением. В качестве альтернативы, логика управления обновлением может быть воплощена на уровне DIMM для управления операциями множества DRAM в DIMM.
В следующем описании множество конкретных деталей представлены в порядке для обеспечения полного понимания различных вариантов осуществления. Однако различные варианты осуществления изобретения могут быть выполнены на практике без этих конкретных деталей. В других случаях хорошо известные способы, процедуры, компоненты и схемы не были описаны подробно, с тем, чтобы не усложнять конкретные варианты осуществления изобретения. Кроме того, различные аспекты вариантов осуществления изобретения могут быть выполнены, используя различные средства, такие как интегрированные полупроводниковые схемы ("аппаратные средства"), считываемые компьютером инструкции, организованные в одну или больше программ ("программное средство"), или некоторая комбинация аппаратных и программных средств. С целью данного раскрытия ссылка на термин "логика" должен означать либо аппаратные средства, программные средства или некоторую их комбинацию.
На фиг. 1 схематично показана иллюстрация в виде блок-схемы компонентов устройства для воплощения администрирования времени обращения к памяти, в соответствии с различными вариантами осуществления, описанными здесь. Как показано на фиг. 1, в некоторых вариантах осуществления пакет 100 центрального процессорного устройства (CPU), которое может содержать одно или больше CPU 110, соединен с шиной 120 управления и локальной памятью 130. Шина 120 управления содержит контроллер 122 памяти и интерфейс 124 памяти.
Интерфейс 124 памяти соединен с одним или больше удаленными устройствами 140 памяти с помощью шины 160 передачи данных. Устройство 140 памяти может содержать контроллер 142 и один или больше банков 150 памяти. В различных вариантах осуществления банки 150 памяти могут быть воплощены, используя энергонезависимую память, например, память с изменением фазы, память NAND (flash), сегнетоэлектрическую оперативную память - (FeTRAM), энергонезависимую память на основе нанопроводников, память, в которую внедрена технология мемристора, память статического оперативного доступа (SRAM), память с трехмерной (3-D) точкой пересечения, такую как память с изменением фазы (РСМ), память с переносом спинового момента (STT-RAM) или память NAND. В качестве примера, в некоторых вариантах осуществления устройство (устройства) 140 памяти может содержать один или больше модулей памяти с прямым расположением микросхем (DIMM), соединенных с каналом 144, памяти который обеспечивает соединение для передачи данных с контроллером 142. Конкретная конфигурация банка (банков) 150 памяти в устройстве (устройствах) 140 памяти является не критичной.
Как описано выше, в некоторых вариантах осуществления логика в контроллере 122 памяти работает с логикой в контроллере 142 в устройстве (устройствах) памяти для администрирования временем обращения к памяти, ассоциированным с операциями считывания в устройстве (устройствах) 140 памяти. Операции, воплощаемые контроллером 122 памяти и контроллером 142 памяти, будут описаны со ссылкой на фиг. 2. Как показано на фиг. 2, во время операции 210 контроллер 122 памяти принимает запрос на получение данных из хост устройства, например, от приложения, выполняемого в CPU 110 или в другом процессоре, соединенном с шиной 120 управления. Во время выполнения операции 215 контроллер 122 памяти генерирует запрос данных для данных, запрашиваемых приложением. Запрос данных передают в контроллер 142 в устройстве (устройствах) 140 памяти через интерфейс 124 памяти и шину 160.
Во время выполнения операции 220 контроллер 142 принимает запрос на получение данных, и во время выполнения операции 225 контроллер 142 получает данные, ассоциированные с запросом данных из банка (банков) 150 памяти. Во время выполнения операции 230 контроллер 142 определяет, простаивает ли шина 160. Если во время операции 230 шина 160 данных не простаивает (например, если шина 160 данных используется для передачи данных), тогда контроллер переходит к операции 235 и контроллер 142 воплощает алгоритм ЕСС для детектирования и коррекции ошибок считывания в данных, полученных из банка (банков) 150 памяти. Во время операции 240 данные, полученные из банка (банков) 150 памяти передают в интерфейс 124 памяти через шину 160.
Во время операции 270 контроллер 122 памяти принимает данные через шину 160. Во время операции 275 контроллер 122 памяти выполняет оценку, имеют ли данные ошибки считывания. Поскольку данные уже были подвергнуты операциям детектирования и коррекции ЕСС, данные не будут иметь ошибок, таким образом, управление переходит к операции 285, и данные возвращаются в хост устройство.
Временная шкала задержки, ассоциированная с этими операциями, представлена на фиг. 3. Как показано на фиг. 3, первая временная задержка 310 ассоциирована с обработкой команды, и вторая временная задержка 315 ассоциирована с задержкой доступа для чтения при чтении данных из банка (банков) 150 памяти. Третья задержка 320 ассоциирована с передачей данных из банка (банков) 150 памяти в контроллер 142. Четвертая задержка 325 ассоциирована с процедурой 325 проверки и коррекции ЕСС. Пятая задержка ассоциирована с передачей данных из устройства (устройства) 140 памяти в концентратор 120 управления. Общая задержка соответствует сумме соответствующих значений задержки, представленных на фиг. 3.
Возвращаясь снова к фиг. 2, если при выполнении операции 230 шина 160 данных простаивает, тогда управление переходит к операции 245, и контроллер 142 выполняет оценку времени, требуемого для выполнения проверки ЕСС для запрашиваемых данных. В некоторых вариантах осуществления операции считывания имеют фиксированный и известный размер таким образом, что контроллер может определять заранее, сколько времени займет операция ЕСС.
При выполнении операции 250 контроллер 142 воплощает задержку передачи данных на величину времени, соответствующую времени задержки ЕСС во время операции 245, затем во время операции 255 контроллер 142 инициирует передачу данных для запрашиваемых данных из устройства (устройства) 140 памяти в интерфейс 124 памяти через шину 160 данных. Во время операции 260 контроллер 142 выполняет проверку ЕСС для данных, и во время операции 265 контроллер 142 передает индикатор ЕСС в интерфейс 124 памяти через шину данных.
Во время операции 270 контроллер 122 памяти принимает данные и индикатор ЕСС через шину 160. Во время операции 275 контроллер 122 памяти выполняет оценку, имеют ли данные ошибки считывания. В одном варианте осуществления контроллер 142 может передавать индикатор повторной попытки или неудачной ЕСС, когда проверка ЕСС определяет, что одна или больше ошибок считывания возникла при считывании данных из банка (банков) 150 памяти. Если во время операции 275 ошибка не была обозначена, тогда управление переходит к операции 285, и контроллер 122 возвращает данные в хост устройство.
Временная шкала задержки, ассоциированной с этими операциями, представлена на фиг. 3. Как показано на фиг. 3, первая задержка 310 по времени ассоциирована с - обработкой команды, и вторая задержка 315 времени ассоциирована с задержкой доступа к считыванию при считывании данных из банка (банков) 150 памяти. Третья задержка 320 ассоциирована с передачей данных из банка (банков) памяти 150 в контроллер 142. Как показано на фиг. 3, передача данных из устройства (устройства) 140 памяти в шину 120 управления начинается, когда данные передают из банка (банков) 150 памяти в контроллер 142. Таким образом, задержка, ассоциированная с этой операцией, устраняется. Четвертая задержка 325 ассоциирована с процедурой 325 проверки ЕСС. Общая задержка соответствует сумме соответствующих задержек, представленных на фиг. 3.
Возвращаясь снова к фиг. 2, если во время операции 275 будет обозначена ошибка, тогда управление проходит к операции 280, и контроллер 122 помещает во временный буфер хранения принятые данные и ожидает передачи контроллером 142 скорректированных данных перед возвратом данных в хост устройство (операция 285).
Временная шкала задержки, связанной с этими операциями, представлена на фиг. 3. Как показано на фиг. 3, первая задержка 310 времени ассоциирована с обработкой команды, и вторая задержка 315 времени ассоциирована с задержкой доступа для считывания при считывании данных из банка (банков) 150 памяти. Третья задержка 320 ассоциирована с передачей данных из банка (банков) 150 памяти в контроллер 142. Как показано на фиг. 3, передача данных из устройства (устройств) 140 памяти в концентратор 120 управления начинается, когда данные передают из банка (банков) 150 памяти в контроллер 142. Таким образом, задержка, ассоциированная с этой операцией, устраняется. Четвертая задержка 325 ассоциирована с проверкой ЕСС и процедурой 325 коррекции. Пятая задержка 335 ассоциирована с процедурой 335 коррекции ЕСС, и шестая задержка 340 ассоциирована с передачей скорректированных данных из устройства (устройства) 150 памяти в банки 150 памяти, в контроллер 142. Общая задержка соответствует сумме соответствующих задержек, представленных на фиг. 3.
Как описано выше, в некоторых вариантах осуществления электронное устройство может быть воплощено, как компьютерная система. На фиг. 4 иллюстрируется блок-схема вычислительной системы 600 в соответствии с вариантом осуществления изобретения. Вычислительная система 600 может включать в себя одно или больше центральное процессорное устройство (устройств) (CPU) 602 или процессоров, которые выполняют обмен данными через сеть взаимного соединения (или шину) 604. Процессоры 602 могут включать в себя процессор общего назначения, сетевой процессор (который обрабатывает передачу данных через вычислительную сеть 603), или другие типы процессора (включая в себя процессор с сокращенным набором команд (RISC) или компьютер со сложным набором команд (CISC)). Кроме того, процессоры 602 могут иметь конструкцию с одним или множеством ядер. В процессорах 602 с конструкцией с множеством ядер разные типы ядер процессора могут быть интегрированы на одном и том же кристалле интегральной схемы (IC). Кроме того, процессоры 602 с конструкцией с множеством ядер могут быть воплощены, как симметричные или асимметричные мультипроцессоры. В варианте осуществления один или больше из процессоров 602 может быть таким же, как и процессоры 102 на фиг. 1 или аналогичным им. Например, один или больше из процессоров 602 может включать в себя модуль 120 управления, описанный со ссылкой на фиг. 1-3. Кроме того, операции, описанные со ссылкой на фиг. 3, могут быть выполнены одним или больше компонентами системы 600.
Набор 606 микросхем может также связываться с сетью 604 взаимного соединения. Набор 606 микросхем может включать в себя концентратор 608 управления памятью (МСН). МСН 608 может включать в себя контроллер 610 памяти, который связывается с памятью 612 (которая может быть такой же или аналогичной памяти 130 на фиг. 1). Память 412 может содержать данные, включающие в себя последовательности инструкций, которые могут выполняться CPU 602 или любым другим устройством, включенным в вычислительную систему 600. В одном варианте осуществления изобретения память 612 может включать в себя один или больше энергонезависимых устройств накопителей (или память), таких как оперативное запоминающее устройство (RAM), динамический RAM (DRAM), синхронный DRAM (SDRAM), статический RAM (SRAM) или другие типы устройств накопителей. Также может использоваться энергонезависимая память, такая как жесткий диск. Дополнительные устройства могут связываться через сеть 604 взаимного соединения, такую как множество CPU и/или множество системных запоминающих устройств.
МСН 608 также может включать в себя графический интерфейс 614, который связывается с устройством 616 дисплея. В одном варианте осуществления изобретения графический интерфейс 614 может связываться с устройством 616 дисплея через ускоренный графический порт (AGP). В варианте осуществления изобретения дисплей 616 (такой как дисплей в виде плоской панели) может связываться с графическим интерфейсом 614, например, через преобразователь сигналов, который преобразует цифровое представление изображения, сохраненное в устройстве накопителе, таком как видеопамять или системная память, в сигналы дисплея, которые интерпретируются и отображаются дисплеем 616. Сигналы дисплея, формируемые устройством дисплея, могут проходить через различные устройства управления перед их интерпретацией и последующим отображением на дисплее 616.
Интерфейс 618 концентратора может обеспечить возможность связи МСН 608 и концентратора 620 управления вводом-выводом (ICH). ICH 620 может предоставлять интерфейс в устройство (устройства) I/Оа, которые связываются с вычислительной системой 600. ICH 620 может связываться с шиной 622 через периферийный мост (или контроллер) 624, такой как мост межсоединения периферийных компонентов (PCI), контроллер универсальной последовательной шины (USB) или другие типы периферийных мостов или контроллеров. Мост 624 может предоставлять путь для данных между CPU 602 и периферийными устройствами. Могут использоваться другие типы топологии. Кроме того, множество шин могут сообщаться с ICH 620, например, через множество мостов или контроллеров. Кроме того, другие периферийные устройства, сообщающиеся с ICH 620, могут включать в себя, в различных вариантах осуществления изобретения, привод (приводы) жесткого диска типа встроенного интерфейса накопителя (IDE) или с интерфейсом малых компьютерных систем (SCSI), порт (порты) USB, клавиатуру, "мышь", параллельный порт (порты), последовательный порт (порты), привод (приводы) гибких дисков, поддержку цифрового выхода (например, цифровой видеоинтерфейс (DVI)) или другие устройства.
Шина 622 может сообщаться с аудиоустройством 626, одним или больше приводом (проводами) 628 диска, и устройством 630 сетевого интерфейса (которое сообщается с вычислительной сетью 603). Другие устройства могут сообщаться через шину 622. Кроме того, различные компоненты (такие как устройство 630 сетевого интерфейса) могут сообщаться с МСН 608 в некоторых вариантах осуществления изобретения. Кроме того, процессор 602 и один или больше других компонентов, описанных здесь, могут быть соединены для формирования одной микросхемы (например, для получения системы на микросхеме (SOC)). Кроме того, графический ускоритель 616 может быть включен в МСН 608 в других вариантах осуществления изобретения.
Кроме того, вычислительная система 600 может включать в себя энергозависимую и/или энергонезависимую память (или накопитель). Например, энергонезависимая память может включать в себя один или больше из следующих: постоянное запоминающее устройство (ROM), программируемое ROM (PROM), стираемое PROM (EPROM), электрическое EPROM (EEPROM), привод диска (например, 628), гибкий диск, ROM на компакт-диске (CD-ROM), цифровой универсальный диск (DVD), память типа флэш, магнитооптический диск или другие типы энергонезависимых считываемых устройством носителей информации, которые позволяют сохранять электронные данные (например, включающие в себя инструкции).
На фиг. 5 иллюстрируется блок-схема вычислительной системы 700, в соответствии с вариантом осуществления изобретения. Система 700 может включать в себя один или больше процессоров 702-1 - 702-N (в общем, обозначаются здесь, как "процессоры 702" или "процессор 702"). Процессоры 702 могут связываться через сеть взаимного соединения или шину 704. Каждый процессор может включать в себя различные компоненты, некоторые из которых были описаны только со ссылкой на процессор 702-1 для ясности. В соответствии с этим, каждый из оставшихся процессоров 702-2 - 702-N может включать в себя одинаковые или аналогичные компоненты, описанные со ссылкой на процессор 702-1.
В варианте осуществления процессор 702-1 может включать в себя одно или больше ядер 706-1 - 706-М процессора (называются здесь "ядрами 706" или, в более общем случае, "ядром 706"), совместно используемый кэш 708, маршрутизатор 710, модуль 720 и/или логику управления процессором. Ядра 706 процессора могут быть воплощены на одном кристалле интегральной схемы (IC). Кроме того, микросхема может включать в себя одно или больше совместно используемых и/или частных кэш (таких как кэш 708), шин или взаимных соединений (таких как шина или сеть 712 взаимного соединения), контроллеров памяти или других компонентов.
В одном варианте осуществления маршрутизатор 710 может использоваться для связи между различными компонентами процессора 702-1 и/или системы 700. Кроме того, процессор 702-1 может включать в себя более чем один маршрутизатор 710. Кроме того, множество маршрутизаторов 710 могут связываться друг с другом для обеспечения маршрутизации данных между различными компонентами внутри или за пределами процессора 702-1.
В совместно используемом кэш 708 могут сохраняться данные (например, включающие в себя инструкции), которые используются одним или больше компонентами процессора 702-1, такими как ядра 706. Например, совместно используемый кэш 708 может локально содержать данные в локальном кэш, хранящиеся в памяти 714, для более быстрого доступа компонентами процессора 702. В варианте осуществления кэш 708 может включать в себя кэш среднего уровня (такого как уровень 2 (L2), уровень 3 (L3), уровень 4 (L4), или другие уровни кэш), кэш последнего уровня (LLC), и/или его комбинации. Кроме того, различные компоненты процессора 702-1 могут связываться с совместно используемым кэш 708 непосредственно, через шину (например, шину 712), и/или контроллер памяти или концентратор. Как показано на фиг. 5, в некоторых вариантах осуществления, одно или больше из ядер 706 может включать в себя кэш (L1) 716-1 уровня 1 (в общем, называется здесь "кэш 716 L1"). В одном варианте осуществления модуль 720 управления может включать в себя логику для воплощения операций, описанных выше со ссылкой на контроллер 122 памяти, на фиг. 2.
На фиг. 6 иллюстрируется блок-схема частей ядра 706 процессора и других компонентов вычислительной системы, в соответствии с вариантом осуществления изобретения. В одном варианте осуществления стрелки, показанные на фиг. 6, иллюстрируют направление потока инструкций через ядро 706. Одно или больше ядер процессора (таких как ядро 706 процессора) могут быть воплощены на одной интегральной схеме (или кристалле), такой как описана со ссылкой на фиг. 5. Кроме того, микросхема может включать в себя одну или больше совместно используемых и/или частных кэш (например, кэш 708 на фиг. 5), взаимное соединение (например, взаимное соединение 704 и/или 112 на фиг. 5), модулей управления, контроллеров памяти или других компонентов.
Как представлено на фиг. 6, ядро 706 процессора может включать в себя модуль 802 выбора, предназначенный для выбора инструкции (включая в себя инструкции с условными переходами) для выполнения ядром 706. Инструкции могут быть выбраны из любых устройств накопителей, таких как память 714. Ядро 706 может также включать в себя модуль 804 декодирования, предназначенный для декодирования выбранной инструкции. Например, модуль 804 декодирования может декодировать выбранную инструкцию на множество uop (микроопераций).
Кроме того, ядро 706 может включать в себя модуль 806 планирования. Модуль 806 планирования может выполнять разные операции, ассоциированные с сохранением декодируемых инструкций (например, принятых из модуля 804 декодирования), до тех пор, пока инструкции не будут готовы к быстрому выполнению, например, до тех пор, пока все значения источника декодированных инструкций не станут доступными. В одном варианте осуществления модуль 806 планирования может планировать и/или вырабатывать (или подавать на исполнение) декодированные инструкции в модули 808 выполнения для выполнения. Модуль 808 выполнения может выполнять поданные для выполнения инструкции после их декодирования (например, модулем 804 декодирования) и подачи их на выполнение (например, модулем 806 планирования). В варианте осуществления модуль 808 выполнения может включать в себя более чем один модуль выполнения. Модуль 808 выполнения может также выполнять различные арифметические операции, такие как суммирование, вычитание, умножение и/или деление, и может включать в себя один или больше арифметических-логических модулей (ALU). В варианте осуществления сопроцессор (не показан) может выполнять различные арифметические операции совместно с модулем 808 выполнения.
Кроме того, модуль 808 выполнения может выполнять инструкции не по порядку. Следовательно, ядро 706 процессора может представлять собой ядро процессора с переупорядочиванием последовательности команд в одном варианте осуществления. Ядро 706 также может включать в себя блок 810 отмены команды. Блок 810 отмены команды может отменять выполняемые инструкции после их совершения. В варианте осуществления отмена выполняемых инструкций может привести к тому, что состояние выполнения инструкций в процессоре будет завершено, физические регистры, используемые инструкциями, будут высвобождены и т.д.
Ядро 706 также может включать в себя модуль 714 шины, который обеспечивает обмен данными между компонентами ядра 706 процессора и другими компонентами (такими как компоненты, описанные со ссылкой на фиг. 6) через одну или больше шин (например, шин 804 и/или 812). Ядро 706 также может включать в себя один или больше регистров 816 для сохранения данных, доступ к которым осуществляют различные компоненты ядра 706 (такие как значения, относящиеся к установкам состояния потребления энергии).
Кроме того, даже хотя на фиг. 5 иллюстрируется модуль 720 управления, соединенный с ядром 706 через взаимное соединение 812, в других вариантах осуществления модуль 720 управления может быть размещен в другом месте, например, внутри ядра 706, соединенного через шину 704, и т.д.
В некоторых вариантах осуществления, один или больше компонентов, описанных здесь, могут быть воплощены в устройстве типа система на кристалле (SOC). На фиг. 7 иллюстрируется блок-схема пакета SOC, в соответствии с вариантом осуществления. Как представлено на фиг. 7, SOC 902 включает в себя одно или больше ядер 920 центрального процессорного устройства (CPU), одно или больше ядер 930 графического процессора (GPU), интерфейс 940 ввода-вывода (I/O) и контроллер 942 памяти. Различные компоненты пакета 902 SOC могут быть соединены с взаимным соединением или шиной, такой как описано здесь со ссылкой на другие фигуры. Кроме того, пакет 902 SOC может включать в себя большее или меньшее количество компонентов, таких как описаны здесь со ссылкой на другие фигуры. Кроме того, каждый компонент пакета 902 SOC может включать в себя один или больше других компонентов, например, как описаны здесь со ссылкой на другие фигуры. В одном варианте осуществления пакет 902 SOC (и его компоненты) предусмотрен на одном или больше кристалле интегральной микросхемы (IC), например, которые упакованы в виде одного полупроводникового устройства.
Как показано на фиг. 7, пакет 902 SOC соединен с памятью 960 (которая может быть аналогична или может быть такой же, как память, описанная здесь со ссылкой на другие фигуры), через контроллер 942 памяти. В варианте осуществления память 960 (или ее часть) может быть интегрирована в пакет 902 SOC.
Интерфейс 940 I/O может быть соединен с одним или больше устройствами 970 I/O, например, через взаимное соединение и/или шину, такую, как описана здесь со ссылкой на другие фигуры. Устройство (устройства) 970 I/O может включать в себя один или больше из клавиатуры, "мыши", сенсорной панели, дисплея, устройства съемки изображения/видеоизображения (такого, как камера или видеокамера/устройство видеозаписи), сенсорный экран, громкоговоритель и т.п.
На фиг. 8 иллюстрируется вычислительная система 1000, которая выполнена в виде конфигурации "из точки в точку" (PtP), в соответствии с вариантом осуществления изобретения. В частности, на фиг. 8 показана система, где процессоры, память и устройства ввода-вывода взаимно соединены, используя множество интерфейсов "из точки в точку". Операции, описанные со ссылкой на фиг. 2, могут выполняться, используя один или больше компонентов системы 1000.
Как представлено на фиг. 8, система 1000 может включать в себя несколько процессоров, из которых только два, процессоры 1002 и 1004 показаны для ясности. Процессоры 1002 и 1004 каждый может включать в себя шину 1006 и 1008 контроллера локальной памяти (МСН), которая обеспечивает возможность обмена данными с памятью 1010 и 1012. МСН 1006 и 1008 может включать в себя контроллер 120 памяти и/или логику 125 на фиг. 1 в некоторых вариантах осуществления.
В варианте осуществления процессоры 1002 и 1004 могут представлять собой одни из процессоров 702, описанных со ссылкой на фиг. 5. Процессоры 1002 и 1004 могут выполнять обмен данными через интерфейс 1014 "из точки в точку" (PtP), используя схемы 1016 и 1018 интрефейса PtP, соответственно. Кроме того, процессоры 1002 и 1004 каждый может выполнять обмен данными с набором 1020 микросхем через отдельные интерфейсы 1022 и 1024 PtP, используя схемы 1026, 1028, 1030, и 1032 интерфейса "из точки в точку". Набор 1020 микросхем может дополнительно выполнять обмен данными с графической схемой 1034 с высокими рабочими характеристиками через графический интерфейс 1036 с высокими рабочими характеристиками, например, используя схему 1037 интерфейса PtP.
Как показано на фиг. 8, одно или больше из ядер 106 и/или кэш 108 на фиг. 1 могут быть расположены в пределах процессоров 902 и 904. Другие варианты осуществления изобретения, однако, могут быть выполнены в других схемах, логических модулях или устройствах в пределах системы 900 на фиг. 7. Кроме того, другие варианты осуществления изобретения могут быть распределены по нескольким схемам, логическим модулям или устройствам, представленным на фиг. 7.
Набор 920 микросхем может связываться с шинами 940, используя схемы интерфейса 941 PtP. Шина 940 может иметь одно или больше устройств, которые связываются с нею, такие как мост 942 между шинами и устройства 943 I/O. Через шину 944 мост 943 между шинами позволяет сообщаться с другими устройствами, такими как клавиатура/мышь 945, устройствами 946 передачи данных (такими как модемы, устройства сетевого интерфейса или другими устройствами передачи данных, которые могут связываться с вычислительной сетью 803), устройством I/O аудиоданных и/или устройством 948 сохранения данных. Устройство 948 хранения данных (которое может представлять собой привод жесткого диска или твердотельный привод на основе устройства NAND флэш) может сохранять код 949, который может быть выполнен процессорами 902 и/или 904.
Следующие примеры относятся к дополнительным вариантам осуществления.
Пример 1 направлен на электронное устройство, содержащее процессор и логику управления памятью, предназначенную для приема данных из удаленного устройства памяти, сохранения данных в памяти локального кэш, приема индикатора кода коррекции ошибок, ассоциированного с данными, и воплощения политики администрирования данными в ответ на индикатор кода коррекции ошибок.
Электронное устройство может дополнительно содержать логику для приема из хост устройства запроса данных и генерирование, в ответ на запрос из хост устройства, запроса данных из удаленного устройства памяти. Электронное устройство может дополнительно содержать логику для сохранения данных, принятых из удаленного устройства памяти в локальном кэш.
Электронное устройство может дополнительно содержать логику для определения, обозначает ли индикатор кода коррекции ошибок, что данные, полученные из удаленного устройства памяти, были получены без ошибки, и в ответ на определение, что данные были получены без ошибки, возвращать данные в хост устройство. Электронное устройство может дополнительно содержать логику для определения, обозначает ли индикатор кода коррекции ошибок, что данные, полученные из удаленного устройства памяти, включают в себя, по меньшей мере, одну ошибку, и, в ответ на определение, что данные включают в себя, по меньшей мере, одну ошибку, удалять данные из памяти локального кэш и передавать новый запрос для получения данных из удаленного устройства памяти.
Пример 2 представляет собой контроллер памяти, который содержит логику для приема данных из удаленного устройства памяти, сохранения данных в памяти локального кэш, приема индикатора кода коррекции ошибок, ассоциированного с данными; и воплощения политики администрирования данными в ответ на индикатор кода коррекции ошибок.
Контроллер памяти может дополнительно содержать логику, для приема, из хост устройства, запроса данных, определения, что данные сохранены в удаленном устройстве памяти, и генерирования, в ответ на запрос из хост устройства, запроса данных из удаленного устройства памяти.
Контроллер памяти может дополнительно содержать логику для сохранения данных, принятых из удаленного устройства памяти, в локальном кэш. Контроллер памяти может дополнительно содержать логику, для определения, обозначает ли индикатор кода коррекции ошибок, что данные, полученные из удаленного устройства памяти, были получены без ошибки, и, в ответ на определение, что данные были получены без ошибки, возвращать данные в хост устройство.
Контроллер памяти может дополнительно содержать логику для определения, обозначает ли индикатор кода коррекции ошибок, что данные, полученные из удаленного устройства памяти, включают в себя, по меньшей мере, одну ошибку, и в ответ на определение, что данные включают в себя, по меньшей мере, одну ошибку, удалять данные из памяти локального кэш и передавать новый запрос данных из удаленного устройства памяти.
Пример 3 направлен на устройство, содержащее устройство памяти, имеющее один или больше элементов памяти, логику управления памятью для приема запроса от инициатора запроса через шину данных для данных, сохраненных в одном или больше элементах памяти, и получения данных из одного или больше элементов памяти, определения, находится ли шина данных в состоянии простоя, и, в ответ на определение, что шина данных находится в состоянии простоя, передавать данные из устройства в инициатор запроса по шине данных, инициировать алгоритм кода коррекции ошибок после начала передачи данных, и передавать индикатор кода коррекции ошибок в инициатор запроса через шину данных.
Устройство может содержать логику управления памятью для оценки времени задержки, требуемого для выполнения алгоритма управления коррекцией ошибок, и передачи данных с задержкой из устройства в инициатор запроса на время задержки. Устройство может содержать логику управления памятью для передачи повторного индикатора кода коррекции ошибки в инициатор запроса, когда алгоритм кода коррекции ошибок обозначает ошибку считывания в данных.
Устройство может содержать логику управления памятью для коррекции данных и передачи скорректированных данных в инициатор запроса через шину данных. В ответ на определение, что шина данных не находится в состоянии простоя, алгоритм кода коррекции ошибок воплощают до передачи данных из устройства в инициатор запроса по шине данных.
В примере 4 контроллер содержит логику для приема запроса из инициатора запроса через шину данных для данных, сохраненных в одном или больше элементах памяти, приема данных из одного или больше элементов памяти, определения, находится ли шина данных в состоянии простоя, и, в ответ на определение, что шина данных находится в состоянии простоя, передачи данных из устройства в инициатор запроса по шине данных, инициирования алгоритма кода коррекции ошибок после начала передачи данных, и передачи индикатора кода коррекции ошибок в инициатор запроса через шину данных.
Контроллер может содержать логику управления памятью, для оценки времени задержки, требуемого для выполнения алгоритма управления коррекцией ошибок и передачи данных с задержкой из устройства в инициатор запроса на время задержки. Контроллер может содержать логику управления памятью для передачи индикатора кода коррекции ошибок в инициатор запроса, когда алгоритм кода коррекции ошибок обозначает ошибку считывания в данных.
Контроллер может содержать логику управления памятью для коррекции данных и передачи скорректированных данных в инициатор запроса через шину данных. В ответ на определение, что шина данных не находится в состоянии простоя, алгоритм кода коррекции ошибок воплощают до передачи данных из устройства в инициатор запроса по шине данных.
В различных вариантах осуществления изобретения операции, описанные здесь, например, со ссылкой на фиг. 1-7, могут быть воплощены, как аппаратные средства (например, схема), программное средство, встроенное программное обеспечение, микрокод или их комбинации, которые могут быть предоставлены, как компьютерный программный продукт, например, включающий в себя постоянный (например, энергонезависимый) считываемый устройством или считываемый компьютером носитель информации, на котором сохранены инструкции (или программные процедуры), используемые для программирования компьютера, для выполнения описанной здесь обработки. Кроме того, термин "логика" может включать в себя, в качестве примера, программное обеспечение, аппаратные средства, или комбинации программного обеспечения и аппаратных средств. Считываемый устройством носитель информации может включать в себя устройство-накопитель, такое как описано здесь.
Ссылка в описании на "один вариант осуществления" или "вариант осуществления" означает, что определенное свойство, структура или характеристика, описанные в связи с вариантом осуществления, могут быть включены, по меньшей мере, в один вариант воплощения. Появление фразы "в одном варианте осуществления" в различных местах описания может относиться или может не всегда относиться к одному и тому же варианту осуществления.
Кроме того, в описании и в формуле изобретения могут использоваться термины "соединенный" и "подключенный", вместе с их производными. В некоторых вариантах осуществления изобретения "подключенный" может использоваться для обозначения того, что два или больше элемента находятся в непосредственном физическом или электрическом контакте друг с другом. "Соединенный" может означать, что два или больше элемента находятся в прямом физическом или электрическом контакте. Однако, "соединенный" может также означать, что два или больше элемента могут не быть в прямом контакте друг с другом, но все еще могут сотрудничать или взаимодействовать друг с другом.
Таким образом, хотя варианты осуществления изобретения были описаны в терминологии, специфичной для структурных свойств и/или методологических действий, следует понимать, что заявленный предмет изобретения может не быть ограничен описанными конкретными свойствами или действиями. Скорее, конкретные свойства и действия раскрыты как формы примеров при воплощении заявленного предмета изобретения.