СПОСОБ ЗАГРУЗКИ ХОСТОВОГО УСТРОЙСТВА ИЗ УСТРОЙСТВА MMC/SD, ХОСТОВОЕ УСТРОЙСТВО, ЗАГРУЖАЕМОЕ ИЗ УСТРОЙСТВА MMC/SD, И УСТРОЙСТВО MMC/SD, ИЗ КОТОРОГО МОЖЕТ БЫТЬ ЗАГРУЖЕНО ХОСТОВОЕ УСТРОЙСТВО
METHOD OF BOOTING HOST DEVICE FROM MMC/SD DEVICE, HOST DEVICE BOOTABLE FROM MMC/SD DEVICE AND MMC/SD DEVICE FROM WHICH HOST DEVICE MAY BE BOOTED

ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится к запоминающему устройству и, в частности, к интерфейсам карт памяти. Более конкретно настоящее изобретение относится к картам мультимедиа (ММС, Multi Media Card) или к цифровым картам с защитой (SD, Secure Digital). Существует тенденция встраивания массовой памяти с использованием ранее известных электрических интерфейсов карт памяти. Таким образом, желательно иметь возможность использования карты памяти аналогично массовой памяти. До настоящего времени разработка и усовершенствование таких интерфейсов концентрировались на съемных картах памяти. Имеется несколько нерешенных проблем, которые нужно решить, чтобы интерфейс лучше подходил также и для встроенной памяти.
Кроме того, настоящее изобретение предлагает механизм загрузки для интерфейсов карт памяти с известными последовательными протоколами (ММС IF). Способ может быть основан на том же самом состоянии сигнала (как в известных технических решениях) или может использовать уже существующий последовательный протокол для интерфейса с картой памяти.
УРОВЕНЬ ТЕХНИКИ
С кратким описанием технических требований к ММС можно ознакомиться на Интернет-сайте "http:/www.mmca.ore/compliance/buy_spec/ MMCA_Svstem_SummaryV41.pdf".
Известны определения, относящиеся к загрузке, для существующих встраиваемых компонентов массовой памяти, имеющих различный электрический интерфейс. Этими известными компонентами являются, например, массовая память NAND, OneNAND и MDOC. Общим для них всех является то, что в них используется некоторое состояние сигнала (например, отдельный вывод зарезервирован для загрузки) в течение определенной стадии включения питания для указания компоненту памяти, что тот должен доставить первый сектор (типично 512 байт) данных в буферы ввода/вывода (IO). Лист технических данных М-систем DiskOnChip (DOC), на который ссылаются как на отражающий современный уровень техники, может быть получен из Интернета по адресу
http:/www.m-systems.com/NR/rdonlyres/85A96312-0130-47AD-A22C-CB533E28EE7A/0/DOC_G3_512Mb_1Gb_Rev20.pdf.
Имеются и другие известные определения, относящиеся к загрузке, для других существующих встраиваемых компонентов массовой памяти, которые имеют другой электрический интерфейс. Этими видами компонентов являются, например, массовая память NAND (см.:
http://www.samsung.com/Products/Semiconductor/NANDFlash/index.htm), OneNAND (см.: http:/ www.samsung.com/Products/Semiconductor/OneNAND/index.htm) и MDOC (см.: http//www.m-systems.com/site/en-US/Products/DiskOnChip/DiskOnChip/). Общим для них всех является то, что в них используется некоторое состояние сигнала (например, отдельный вывод зарезервирован для загрузки) в течение определенной стадии включения питания для указания компоненту памяти, что тот должен доставить первый сектор (типично 512 байт) данных в буферы ввода/вывода.
Современные карты памяти ММС и SD позволяют обеспечить возможность выполнения, например, операций "горячей" замены (hot swap), но желательно также расширить возможности этих карт памяти и обеспечить более широкие функциональные возможности.
Для улучшения использования карт памяти было бы желательным позволить пользователю использовать карты памяти в качестве загрузочного носителя. Эта возможность обеспечила бы более широкое использование, например, карт ММС и SD не только в самозагружающихся устройствах, например мобильных сотовых телефонов или камер, но также и в качестве загрузочного носителя данных, например, для портативного компьютера и карманного компьютера.
В настоящее время в картах ММС и SD единственный способ получения доступа к первым (секторным) данным в процессе начальной загрузки из хостового устройства заключается в следовании всей процедуре инициализации карты, чтения/записи в регистры и осуществления нормального доступа для чтения по известному адресу.
Проблема существующих протоколов интерфейсов для карт ММС и SD заключается в том, что не определен эффективный механизм загрузки. Единственный способ получения доступа к первым (секторным) данным в процессе загрузки из хостового устройства заключается в следовании всей процедуре инициализации карты, чтения/записи в регистры и осуществления нормального доступа к чтению по известному адресу. Это означает, что фактически невозможно выполнить процедуру загрузки в устройстве, не сконфигурированном для автоматического выполнения нормального доступа для чтения по адресу загрузки (когда, например, адрес загрузочных данных, которые необходимо считать, не известен).
Кроме того, желательно обеспечить более широкие удобства использования без необходимости изменения электрического интерфейса или форм-фактора, то есть без использования состояния сигнала на дополнительном отдельном выводе, зарезервированном для загрузки в течение определенной стадии включения питания, для индикации компоненту памяти, что он должен доставить определенный сектор данных в буферы ввода/вывода.
Поэтому задача, решаемая изобретением, включает расширение возможностей существующих карт ММС и SD без изменения множества характеристик карт памяти, и также обеспечение полной совместимости с предыдущими версиями.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Согласно одному из аспектов настоящего изобретения механизм загрузки встраивают в известный интерфейс карт памяти с последовательным протоколом для интерфейсов ММС для карт/устройств ММС и SD. Способ может быть основан на том же самом состоянии сигнала (как в известных технических решениях) или может использовать уже существующий последовательный протокол для интерфейса к картам памяти.
Согласно первому аспекту настоящего изобретения предложен способ загрузки хостового устройства из периферийного устройства через интерфейс MMC/SD. Интерфейс MMC/SD включает выводы питания, шину передачи данных с выводами шины передачи данных, линию синхронизации (CLK) с выводом CLK и линию передачи команд (CMD) с выводом CMD. В соответствии с настоящим изобретением способ включает подачу питания (и заземления) на указанные выводы питания и установку вывода CMD указанного интерфейса MMC/SD (хостового устройства) в процессе включения питания в низкое состояние (сигнала), за которым следует контроль шины передачи данных на появление стартового бита передачи данных.
В стандартной процедуре включения питания для карты или устройства MMC/SD хостовое устройство устанавливает вывод CMD указанного интерфейса MMC/SD в процессе включения питания в "высокое" состояние (состояние с высоким уровнем напряжения). Таким образом, в этом варианте выполнения настоящего изобретения для индикации загрузки в течение включения питания используется существующий сигнал. Однако он является в интерфейсе "не ожидаемым" сигналом, используемым хостовым устройством, которое собирается выполнить процедуру загрузки. В настоящее время в технических требованиях на MMC/SD не определено, что случится, если линия CMD установлена в "низкое" состояние (состояние с низким уровнем напряжения) в процессе включения питания для карты или устройства SD/MMC.
Вывод CMD указанного интерфейса MMC/SD хостового устройства может быть установлен в течение этого периода в "низкое" сигнальное состояние; традиционно команду "CMD0" посылают по линии CMD. Команда "CMD0" - это команда процедуры включение питания GO_IDLE_STATE (CMD0). Следующая команда, используемая в процессе инициализации, - это команда CMD1, SEND_OP_COND (посылка рабочего состояния) для идентификации диапазона рабочих напряжений периферийного устройства, имеющего интерфейс MMD/SD. Другими командами процедуры инициализации являются команды CMD2 и CMD3, причем CMD2 (ALL_SEND_CID) запрашивает уникальный идентификационный номер карты (CID, card identification number), а команда CMD3 (SET_RELATIVE_ADDR) для ускорения обмена данными устанавливает относительный адрес карты (RCA, relative card number), который короче, чем CID.
Один из приведенных для примера вариантов выполнения настоящего изобретения дополнительно включает способ посылки синхросигнала из указанного хостового устройства на указанный вывод синхронизации указанного интерфейса MMC/SD, причем указанный вывод CMD указанного интерфейса MMC/SD устанавливают в низкое состояние до или в течение включения питания в течение передачи от 24 до 148, предпочтительно от 60 до 100, а наиболее предпочтительно по меньшей мере первых 74 инициализирующих тактов синхронизации.
В другом приведенном для примера варианте выполнения настоящего изобретения указанный способ дополнительно включает посылку синхросигнала из указанного хостового устройства в указанный вывод синхронизации в течение времени, пока карта посылает данные через указанную шину передачи данных; например, хостовое устройство продолжает выдавать тактовые импульсы, пока не переданы все данные, которые карта должна передать.
В еще одном приведенном для примера варианте выполнения способа согласно настоящему изобретению хостовое устройство устанавливает выводы шины передачи данных в низкое состояние для индикации ширины шины передачи данных, которая используется для передачи данных. В этом варианте выполнения настоящего изобретения хостовое устройство может сигнализировать в периферийное устройство, имеющее интерфейс MMC/SD, количество линий передачи данных/выводов, которые используются для передачи загрузочных данных устройством MMC/SD, например картой MMC/SD. В настоящем описании термин устройство MMC/SD относится к картам с памятью MMC/SD, а также к встроенным устройствам, например встроенным запоминающим устройствам, имеющим интерфейс MMC/SD.
Например, предусмотрено устанавливать в низкое состояние только первый вывод шины передачи данных (Dat0), чтобы указать периферийному устройству, имеющему интерфейс MMC/SD, что для передачи загрузочных данных в хостовое устройство должен использоваться только этот вывод (мультиплексирование по одному каналу).
Таким образом, соответствующее количество линий шины передачи данных, которые используются для передачи загрузочных данных хостовому устройству, переводят в низкое состояние наряду с индикацией запроса на загрузку путем установки линии CMD в низкое состояние.
В такой реализации отпадает необходимость полной инициализации компонента и установки регистров до первого доступа к чтению для запроса, например, загрузочных данных.
Согласно еще одному аспекту настоящего изобретения предложен способ загрузки из периферийного устройства, имеющего интерфейс MMC/SD. В основном этот аспект относится к стороне периферийного устройства для процедуры загрузки. Периферийное устройство содержит интерфейс MMC/SD, который имеет выводы питания, шину передачи данных с выводами шины передачи данных, линию синхронизации с выводом синхронизации и линию CMD с выводом CMD. В этом аспекте настоящего изобретения способ включает получение питания (и заземления) на указанных выводах питания указанного интерфейса MMC/SD, получение низкого (состояния) сигнала в выводе CMD до или в процессе включения питания и посылку первых данных заданной области памяти через шину передачи данных, начиная со стартового бита первого кадра данных.
В процессе включения питания периферийное устройство, имеющее интерфейс MMC/SD, обнаруживает "не ожидаемое" состояние сигнала в линии передачи команд и запускает передачу загрузочных данных из заранее заданного файла данных, заранее заданной области хранения/памяти или определенного "сектора загрузочных данных" модуля памяти/ядра периферийного устройства, имеющего интерфейс MMC/SD. Комбинация вышеописанного способа загрузки хостового устройства и способа загрузки из периферийного устройства, имеющего интерфейс MMC/SD, дополняют друг друга в процессе загрузки. Было предусмотрено составление пунктов формулы изобретения, относящихся к системе и включающих, например, все шаги обоих задействованных устройств (например, хостового и периферийного устройства, имеющего интерфейс MMC/SD).
В показанном для примера варианте выполнения настоящего изобретения указанные первые данные заранее заданной области памяти посылают через шину передачи данных, только если и когда периферийное устройство принимает низкое состояние сигнала на указанном выводе CMD указанного интерфейса MMC/SD в процессе включения питания в течение передачи от 24 до 148, предпочтительно от 60 до 100, а наиболее предпочтительно - по меньшей мере первых 74 инициализирующих такта синхронизации. Кроме того, для передачи загрузочных данных предусмотрен выбор заранее заданного файла вместо заранее заданной области памяти.
В показанном для примера варианте выполнения настоящего изобретения указанный способ дополнительно включает прием низкого состояния сигнала на выводы шины передачи данных, указывающего ширину шины передачи данных, которая используется для передачи данных, и посылку указанных данных с использованием указанной ширины шины передачи данных.
Если, например, обнаружено, что первые два вывода шины передачи данных (Dat0 и Dat1) установлены в "низкое" состояние (сигнала), для передачи загрузочных данных в хостовое устройство периферийное устройство, имеющее интерфейс MMC/SD, использует только эти два вывода (мультиплексирование по двум каналам).
Таким образом, соответствующее количество линий шины передачи данных, которые используются для передачи загрузочных данных в хостовое устройство, переводят в низкое состояние наряду с установкой линии CMD в низкое состояние (индикация запроса на загрузку).
Согласно еще одному аспекту настоящего изобретения предложен способ загрузки хостового устройства из периферийного устройства, имеющего интерфейс MMC/SD. Хостовое устройство содержит интерфейс MMC/SD, который имеет выводы питания, шину передачи данных с выводами шины передачи данных, линию синхронизации с выводом синхронизации и линию CMD с выводом CMD. Способ включает посылку, в течение процедуры инициализации, аргумента запроса на загрузку из указанного хостового устройства через указанный интерфейс MMC/SD в указанное периферийное устройство, причем указанный запрос на загрузку включает команду, посылку сигнала синхронизации (CLK, clock) в линию синхронизации (CLK) и контроль вывода шины передачи данных на появление стартового бита передачи данных (а также самих данных).
Эта реализация основана на использовании существующей команды последовательного протокола. Таким образом, "не ожидаемую" команду протокола передачи сигналов посылают в интерфейс для указания, что хостовое устройство намеревается выполнить процедуру загрузки (с данными из периферийного устройства, имеющего интерфейс MMC/SD). Это может быть реализовано, например, путем посылки аргумента запроса на загрузку, включающего команду "сброс" из хостового устройства через интерфейс MMC/SD в периферийное устройство, сопровождаемой контролем выводов шины передачи данных на появление стартового бита передачи данных/кадра данных. Аргумент запроса на загрузку посылают в течение процедуры инициализации, например в течение или непосредственно после фазы CMD0 (например, инициализации периферийного устройства, имеющего интерфейс MMC/SD, после включения питания карты). Кроме того, предусмотрена посылка внутреннего запроса на загрузку в кадре команды (например, в команде CMD0, как определено в технических требованиях к MMC/SD).
Это может быть реализовано путем коррекции, например, аргумента для CMD0, который в настоящее время равен 0×00000000. Когда в качестве первого аргумента, посылаемого в интерфейс MMC/SD, используется значение 0×00000001, это может рассматриваться как запрос на загрузку.
В показанном для примера варианте выполнения настоящего изобретения способ дополнительно включает посылку дополнительных аргументов, индицирующих параметры, относящиеся к загрузочной последовательности, которые выбраны из группы, включающей несколько линий передачи данных, которые используются для чтения загрузочного сектора, частоты синхронизации/режим синхронизации, которые следует использовать, и так далее, а также аргумент запроса на загрузку из указанного хостового устройства в интерфейс MMC/SD. Аргумент для ширины шины передачи данных может быть передан в кадре команды (например, в кадре команды CMD0), например, в дополнение к запросу на загрузку.
Этот вариант выполнения настоящего изобретения позволяет хостовому устройству определять дополнительные параметры для других аргументов, относящихся к загрузочной последовательности/процедуре загрузки в запросе (или в связи с запросом) на загрузку или к процедуре передачи загрузочных данных.
Как уже было описано выше в других аспектах настоящего изобретения, ширина шины, которая используется для передачи загрузочных данных, может также быть индицирована множеством выводов шины передачи данных, которые могут быть установлены в низкое состояние (до, в течение или после передачи аргумента запроса на загрузку). Кроме того, можно использовать несколько выводов шины передачи данных, установленных в "низкое" состояние сигнала, в качестве индикации количества выводов шины передачи данных, которые используются для передачи.
N
При использовании алгоритма подсчета с двоичной кодировкой для выводов от Dat0 до Dat7 было бы достаточно использовать только 4 из них, например от Dat0 до Dat3, для определения выводов, задающих все возможные количества выводов, которые можно выделить для передачи загрузочной последовательности. При использовании алгоритма подсчета с двоичной кодировкой для определения 2 выводов данных, которые используются для их передачи, достаточно использовать только три вывода Dat для определения 8 (и до 64 еще не определенных выводов Dat), когда N определено, например, как (двоичное кодированное число - 1), тогда как другие соответствующие выводы Dat для передачи по однопроводной линии могли быть закодированы совокупно в "высокое" состояние, что, в свою очередь, не может интерпретироваться как ширина шины (поскольку стандартный сигнал в течение процедуры загрузки заключается в том, что все выводы данных установлены в "высокое" состояние). Можно также предусмотреть использование только одной из линий Dat/выводов, установленных в течение процедуры инициализации в "низкое" состояние, в качестве индикации запроса на загрузку (тогда как остальные могут кодировать или не кодировать ширину шины, частоту или другой параметр).
(Специалисту в данной области техники должно быть понятно, что в настоящем выполнении низкое состояние сигнала должно интерпретироваться как двоичный "0" или двоичная "1" согласно соответствующей схеме положительного или отрицательного счета, и поэтому нет необходимости явно утверждать, что не имеет значения, считается ли двоичное число в порядке от Dat0 к Dat3, закодировано только в четных либо нечетных выводах или от старших разрядов к младшим разрядам (от Dat7 до Dat4) и т.д.).
В этой реализации выводы Dat4-5 остаются свободными, что, в свою очередь, может использоваться для кодирования дополнительных параметров процесса загрузки, например количества линий передачи данных, которые используются для чтения загрузочного сектора, используемой частоты синхронизации/режима синхронизации и т.д.
Такая реализация сигнала шины передачи данных в течение запуска может быть применена во всех способах или устройствах согласно настоящему изобретению, перечисленных выше и ниже.
Согласно еще одному аспекту настоящего изобретения предложена вышеописанная процедура предоставления загрузочных данных для периферийного устройства, имеющего интерфейс MMC/SD. Способ предназначен для загрузки хостового устройства из периферийного устройства, содержащего интерфейс MMC/SD, который имеет выводы питания, шину передачи данных с выводами шины передачи данных, линию синхронизации с выводом синхронизации и линию CMD с выводом CMD. Способ включает прием, в течение процедуры инициализации периферийного устройства, имеющего интерфейс MMC/SD, аргумента запроса на загрузку из указанного хостового устройства в указанный интерфейс MMC/SD периферийного устройства, прием сигнала синхронизации по шине передачи данных и посылку данных, начинающихся со стартового бита передачи данных, в указанное хостовое устройство через указанный интерфейс MMC/SD, если и когда загрузочные данные хранятся в периферийном устройстве.
Указанная реализация относится к использованию, например, существующего последовательного протокола (и, возможно, также и команды сброса) в качестве "не ожидаемой" команды протокола передачи сигналов (которую принимают вместо обычно ожидаемой команды CMDO), которую принимают в интерфейсе и рассматривают периферийным устройством (контроллером) в качестве запроса на передачу загрузочных данных. Как уже раскрыто в процедурах на стороне хостового устройства, указанный аргумент запроса на загрузку может, например, включать команду сброса в указанном интерфейсе MMC/SD (которая может быть включена в скорректированную команду CMD0, указывающую на запрос на загрузку). После того как карта принимает, например, команду CMD0 сброса с таким аргументом, она доставляет первые данные в буферы ввода/вывода (10) и начинает посылку хранящихся или извлеченных загрузочных данных в шину передачи данных (по меньшей мере столько же времени, сколько принимается синхросигнал на выводе).
В показанном для примера варианте выполнения настоящего изобретения способ дополнительно включает прием дополнительных аргументов, индицирующих параметры, относящиеся к загрузочной последовательности и выбранные из группы, включающей количество линий передачи данных, которые используются для чтения загрузочного сектора, частоты синхронизации/режим синхронизации, которые следует использовать для передачи данных, а также указанный аргумент запроса на загрузку из указанного хостового устройства, и использование указанных параметров для передачи данных через указанную шину передачи данных в указанное хостовое устройство. Это может быть осуществлено непосредственно в запросе на загрузку или может быть индицировано соответствующим вводом сигнала/состоянием, обнаруживаемым на выводах от Dat0 до Dat7.
Согласно еще одному аспекту настоящего изобретения предложен способ загрузки хостового устройства из периферийного устройства, имеющего интерфейс MMC/SD. Способ включает начало обмена стандартными данными инициализации для периферийного устройства, имеющего интерфейс MMC/SD, до тех пор, пока не будет достигнуто состояние ожидания периферийного устройства, имеющего интерфейс MMC/SD, а затем выполнение обмена данными между указанным хостовым устройством и указанным периферийным устройством из указанного состояния ожидания для поиска действительной загрузки в компонентах в шине передачи данных.
В запросе на загрузку может также содержаться аргумент в более поздней фазе инициирующей последовательности совместно или после команд CMD0, CMD1, CMD2, CMD3 (при нормальной инициализации до тех пор, пока карта не перейдет в состояние ожидания). После того как периферийное устройство, имеющее интерфейс MMC/SD, достигнет состояний ожидания, хостовое устройство может пройти по всем компонентам шины для поиска действительного загрузочного кода.
В этом аспекте используется обычный процесс инициализации периферийного устройства, имеющего интерфейс MMC/SD, прежде чем хостовое устройство запускает приложение для активного поиска загрузочных данных. В этой реализации требуется, чтобы хостовое устройство было способно выполнить весь процесс инициализации и программу поиска/загрузки для загрузочных данных, хранящихся в периферийном устройстве, имеющем интерфейс MMC/SD, даже если само находится в незагруженном состоянии. То есть устройству требуется по меньшей мере жестко запрограммированный алгоритм для инициализации периферийного устройства, имеющего интерфейс MMC/SD, и алгоритм для поиска/загрузки загрузочных данных.
Преимуществом этого варианта выполнения настоящего изобретения является то, что он может быть выполнен с использованием соответствующим образом модифицированного хостового устройства и полностью обычного периферийного устройства, имеющего интерфейс MMC/SD.
Согласно еще одному аспекту настоящего изобретения предложен способ загрузки хостового устройства из периферийного устройства, имеющего интерфейс MMC/SD. Хостовое устройство связано с периферийным устройством через интерфейс MMC/SD, имеющий шину передачи данных и вывод CMD. Кроме того, указанному периферийному устройству предоставляют дополнительный аргумент запроса на загрузку в регистре рабочего состояния (OCR, Operation Condition Register) указанного периферийного устройства, имеющего интерфейс MMC/SD. В этом аспекте настоящего изобретения указанный способ включает выполнение стандартного процесса инициализации периферийного устройства, имеющего интерфейс MMC/SD, а после завершения указанного процесса инициализации посылку аргумента запроса на загрузку в указанный интерфейс MMC/SD и контроль шины передачи данных для приема загрузочных данных из периферийного устройства через указанный интерфейс MMC/SD.
Этот вариант выполнения настоящего изобретения может быть выполнен в течение фазы "CMD1" (или больших последующих номеров CMD) процесса инициализации периферийного устройства, имеющего интерфейс MMC/SD. Таким образом, после передачи загрузочных данных можно приступить к начальному шагу (шагам) инициализации периферийного устройства. Как и в вышеуказанном случае, этот способ требует изменения в регистре рабочего состояния и, поэтому, в самом периферийном устройстве, имеющем интерфейс MMC/SD. Это, в свою очередь, означает, что может не существовать возможности обновления существующих (хостовых устройств или) периферийных устройств, имеющих интерфейс MMC/SD, для обеспечения выполнения этой передачи загрузочных данных.
Как и в вышеуказанных случаях реализации настоящего изобретения, вышеупомянутый способ также включает дополнения на стороне периферийного устройства. В этом варианте выполнения настоящего изобретения предложен способ загрузки хостового устройства из периферийного устройства, имеющего интерфейс MMC/SD. Как и в рассмотренном выше случае указанное периферийное устройство обеспечено интерфейсом MMC/SD, имеющем шину передачи данных и вывод CMD. Кроме того, периферийное устройство, имеющее интерфейс MMC/SD, имеет дополнительный аргумент запроса на загрузку в регистре рабочего состояния указанного периферийного устройства. Этот вариант выполнения настоящего изобретения включает выполнение процесса инициализации периферийного устройства, имеющего интерфейс MMC/SD, а после завершения указанного процесса инициализации прием аргумента запроса на загрузку в периферийном устройстве, а также извлечение и посылку загрузочных данных из модуля памяти указанного периферийного устройства через указанный интерфейс MMC/SD в указанное хостовое устройство.
Согласно еще одному аспекту настоящего изобретения предложен компьютерный программный продукт, загружаемый из сервера, для реализации вышеописанного способа загрузки хостового устройства из периферийного устройства, имеющего интерфейс MMC/SD. Компьютерная программа включает программные коды, предназначенные для выполнения всех шагов вышеописанных способов при выполнении указанной программы в хостовом устройстве, периферийном устройстве, имеющем интерфейс MMC/SD, или в системе, включающей хостовое устройство с вставленным периферийным устройством, имеющим интерфейс MMC/SD.
Согласно еще одному аспекту настоящего изобретения предложен компьютерный программный продукт, включающий программные коды, хранящиеся на считываемом компьютером носителе, с целью реализации вышеописанных способов, в результате которых реализуется загрузка хостового устройства из периферийного устройства, имеющего интерфейс MMC/SD, при выполнении указанного программного продукта в хостовом устройстве, периферийном устройстве, имеющем интерфейс MMC/SD, или в системе, включающей хостовое устройство с вставленным периферийным устройством, имеющим интерфейс MMC/SD.
Согласно еще одному аспекту настоящего изобретения предложен сигнал с компьютерными данными. Сигнал с компьютерными данными реализован в виде несущей волны и представляет собой программу, которая заставляет компьютер выполнять шаги вышеописанного способа загрузки хостового устройства из периферийного устройства, имеющего вышеописанный интерфейс MMC/SD, при выполнении указанного программного продукта в хостовом устройстве, периферийном устройстве, имеющем интерфейс MMC/SD, или в системе, включающей хостовое устройство с вставленным периферийным устройством, имеющим интерфейс MMC/SD.
Предпочтительно, чтобы компьютерная программа/компьютерный программный продукт был распределен в различных частях системы, включающей хостовое устройство и периферийное устройство, имеющее интерфейс MMC/SD; например, одна часть компьютерной программы может быть расположена и выполняться в хостовом устройстве, и одна компьютерная программа - располагаться и выполняться в периферийном устройстве, имеющем интерфейс MMC/SD. Поэтому компьютерная программа и устройство для выполнения компьютерной программы должны отличаться по функциональным возможностям и исходному коду.
Согласно еще одному аспекту настоящего изобретения предложено загружаемое хостовое устройство, сконфигурированное для загрузки из периферийного устройства, имеющего интерфейс MMC/SD. Хостовое устройство включает внутренний или внешний источник питания, процессор, связанный с указанным источником питания, и интерфейс MMC/SD, связанный с указанным процессором и с указанным источником питания. Интерфейс MMC/SD включает выводы питания, шину передачи данных с выводами шины передачи данных, линию синхронизации с выводом синхронизации и линию CMD с выводом CMD. Хостовое устройство сконфигурировано для подачи питания на выводы указанного интерфейса MMC/SD, установки вывода CMD указанного интерфейса MMC/SD в процессе включения питания в низкое состояние (сигнала) и контроля шины передачи данных на появление стартового бита передачи данных.
В сущности, этот аспект изобретения относится с хостовому устройству, которое способно выполнять процедуру загрузки, раскрытую в предыдущей части описания. Процессор может быть снабжен центральной памятью и может нуждаться в выполнении процедуры загрузки.
В сущности, устройство выставляет не ожидаемое состояние сигнала на выводе команд интерфейса MMC/SD. В течение инициализации линия передачи команд/вывод интерфейса MMC/SD может быть установлен в низкое состояние (вместо высокого в настоящее время) для индикации запроса на загрузку. Таким образом, принцип настоящего изобретения основан на том, что (известный или новый) сигнал используется в течение процедуры инициализации в качестве "не ожидаемого" входного сигнала, сигнализируя этим, что хостовое устройство действительно требует загрузочных данных.
В одном из примеров варианта выполнения загружаемого хостового устройства указанный процессор сконфигурирован для посылки синхросигнала из указанного хостового устройства на указанные выводы шины передачи данных указанного интерфейса MMC/SD и установки вывода CMD указанного интерфейса MMC/SD в течение процесса включения питания в низкое состояние при передаче от 24 до 148, предпочтительно от 60 до 100, а наиболее предпочтительно 74 инициализирующих тактов синхронизации. В этом варианте выполнения настоящего изобретения хостовое устройство использует другой "не ожидаемый сигнал" для индикации запроса загрузочных данных. В этом варианте выполнения настоящего изобретения требуется, чтобы соответствующее периферийное устройство, имеющее интерфейс MMC/SD, было способно идентифицировать синхросигнал на выводе синхронизации в течение процесса включения питания/инициализации. Кроме того, предусмотрено использование количества синхросигналов, посланных в интерфейс MMC/SD, в качестве параметра кодирования, например, используемой ширины шины передачи данных, частоты, которая используется для передачи загрузочных данных.
В еще одном примере варианта выполнения хостового устройства согласно настоящему изобретению указанный процессор дополнительно сконфигурирован для посылки синхросигнала из указанного хостового устройства на указанные выводы шины передачи данных указанного интерфейса MMC/SD до тех пор, пока карта не начнет посылку первых данных через указанную шину передачи данных. То есть хостовое устройство сконфигурировано для подачи синхросигнала на вывод синхронизации до тех пор, пока начало передачи данных не сможет быть обнаружено хостовым устройством по приему стартового бита первого кадра данных или пока все загрузочные данные не будут переданы в хостовое устройство.
В еще одном примере выполнения настоящего изобретения указанный процессор сконфигурирован для установки выводов шины передачи данных в низкое состояние для индикации ширины шины передачи данных, которая используется для передачи периферийным устройством, имеющим интерфейс MMC/SD и вставленным в указанный интерфейс MMC/SD. Это может быть осуществлено процессором, сконфигурированным для установки выводов от Dat0 до Dat7, которые должны использоваться для передачи загрузочных данных, в низкое состояние. Можно также предусмотреть и противоположный подход, т.е. установить все выводы Dat0-7, используемые для передачи загрузочных данных, в высокое состояние для индикации использования ширины шины, равной 8-битов. (В этом случае интерфейс MMC/SD был бы по умолчанию установлен на 8-битовую передачу загрузочных данных.) (Кроме того, предусмотрено использование хостового устройства или периферийного устройства, имеющего интерфейс MMC/SD, которое сконфигурировано для использования одной из схем кодирования, перечисленных в разделе настоящего описания, относящемся к способу.)
Согласно еще одному аспекту настоящего изобретения предложено периферийное устройство, имеющее интерфейс MMC/SD, которое сконфигурировано для загрузки загружаемого хостового устройства (которое, в свою очередь, сконфигурировано для загрузки из периферийного устройства, имеющего интерфейс MMC/SD). Согласно изобретению указанное периферийное устройство содержит интерфейс MMC/SD, контроллер периферийного устройства, связанный с указанным интерфейсом MMC/SD, и модуль памяти, связанный с указанным контроллером периферийного устройства. Как определено в технических требованиях к MMC/SD, интерфейс MMC/SD содержит выводы питания, шину передачи данных с выводами шины передачи данных, линию синхронизации с выводом синхронизации и линию CMD с выводом CMD. Периферийное устройство, имеющее интерфейс MMC/SD, отличается тем, что указанный контроллер периферийного устройства сконфигурирован для посылки первых данных из заранее заданной области памяти через шину передачи данных, начиная со стартового бита первого кадра данных, при получении питания по выводам указанного интерфейса MMC/SD периферийного устройства, и низкого состояния сигнала на выводе CMD указанного интерфейса MMC/SD в течение включения питания. В периферийном устройстве, имеющем интерфейс MMC/SD, контроллер периферийного устройства связан с указанным интерфейсом MMC/SD и с указанным модулем памяти.
Кроме того, предусмотрено, что устройство (контроллер) сконфигурировано для автоматического выбора заранее заданного файла в модуле памяти с целью передачи загрузочных данных. Должно быть понятно, что процесс включения питания включает выдачу/обнаружение питания на выводах питания, а также выдачу нулевого потенциала на вывод заземления (являющийся частью выводов подачи питания в интерфейсе MMC/SD).
В одном из примеров варианта выполнения настоящего изобретения указанное периферийное устройство, имеющее интерфейс MMC/SD (контроллер), дополнительно сконфигурировано для посылки указанных первых данных из заранее заданной области памяти через шину передачи данных только при приеме низкого состояния сигнала на указанном выводе CMD интерфейса MMC/SD до или в процессе включения питания в течение передачи от 24 до 148, предпочтительно от 60 до 100, а наиболее предпочтительно 74 тактов синхронизации при инициализации.
В этом варианте выполнения настоящего изобретения карта MMC/SD способна подсчитывать количество тактов синхронизации, принятых в течение процедуры инициализации, для идентификации принятого/индицированного запроса на загрузку из хостового устройства (для чего требуется соответствующее изменение конструкции периферийного устройства, имеющего интерфейс MMC/SD).
В еще одном примере варианта выполнения настоящего изобретения указанный контроллер периферийного устройства дополнительно сконфигурирован для приема низкого состояния сигнала на выводах шины передачи данных указанного интерфейса MMC/SD, индицирующего ширину для шины передачи данных, которая используется для передачи указанных данных, и посылки указанных данных с использованием указанной ширины шины передачи данных. Этот вариант выполнения настоящего изобретения относится к карте ММС, способной распознать в течение процедуры запуска состояние сигнала на выводах Dat (0-2, 0-3 или 0-7), чтобы на основе этого сигнала определить ширину шины, которая используется для передачи загрузочных сигналов. Кроме того, предусмотрена конфигурация периферийного устройства, имеющего интерфейс MMC/SD, так чтобы оно могло распознать ширину шины передачи данных, которая зашифрована, например, двоичным кодом.
Таким образом, согласно данному аспекту настоящего изобретения периферийное устройство, имеющее интерфейс MMC/SD способно в течение процедуры включения питания осуществлять проверку и распознавание состояния сигнала в линии сигнала CMD и, в конечном счете, в более сложных вариантах выполнения настоящего изобретения, также состояние сигнала (или количество импульсов) в линиях синхронизации и шины с целью распознания запроса на загрузку. (См., например, часть описания, относящуюся к способу согласно настоящему изобретению.)
Согласно еще одному аспекту настоящего изобретения предложено загружаемое хостовое устройство, сконфигурированное для загрузки из периферийного устройства, имеющего интерфейс MMC/SD. Хостовое устройство содержит (как и все другие вышеописанные хостовые устройства) источник питания, процессор, связанный с указанным источником питания, и интерфейс MMC/SD, связанный с указанным процессором и с указанным источником питания, причем указанный интерфейс MMC/SD имеет выводы питания, шину передачи данных с выводами шины передачи данных, линию синхронизации с выводом синхронизации и линию CMD с выводом CMD.
Это хостовое устройство сконфигурировано для посылки в течение процесса инициализации периферийного устройства, имеющего интерфейс MMC/SD, аргумента запроса на загрузку из указанного хостового устройства через указанный интерфейс MMC/SD в периферийное устройство и контроля шины передачи данных на появление стартового бита передачи данных.
Указанный аргумент запроса на загрузку может включать, например, команду сброса в указанном интерфейсе MMC/SD, посылаемую, например, в течение фазы CMD0 (то есть инициализации периферийного устройства, имеющего интерфейс MMC/SD, непосредственно после подачи на выводы питания карты рекомендованного напряжения).
В одном из примеров варианта выполнения настоящего изобретения указанное хостовое устройство сконфигурировано для посылки дополнительных аргументов через указанный интерфейс MMC/SD, причем указанные дополнительные аргументы индицируют параметры, относящиеся к загрузочной последовательности, например к количеству линий передачи данных, которые используются для чтения загрузочного сектора, используемой частоте синхронизации/режиму синхронизации и т.д. Эти дополнительные аргументы/параметры наряду с указанным аргументом запроса на загрузку посылаются из указанного хостового устройства в указанный интерфейс MMC/SD.
В еще одном примере варианта выполнения настоящего изобретения указанное хостовое устройство дополнительно сконфигурировано для установки выводов шины передачи данных указанного интерфейса MMC/SD в низкое состояние с целью индикации ширины шины передачи данных, которая используется для этой передачи. Это предусматривает наличие хостового устройства, способного к посылке информации о шине через выводы данных шины передачи данных в периферийное устройство, имеющее интерфейс MMC/SD, с целью конфигурирования передачи загрузочных данных. Примеры множества возможностей индикации/ сигнализации этих параметров даны в описании способа согласно настоящему изобретению. Подразумевается, что хостовое устройство не может быть загружено из обычного периферийного устройства, имеющего интерфейс MMC/SD.
Согласно еще одному аспекту настоящего изобретения предложено периферийное устройство, имеющее интерфейс MMC/SD, которое сконфигурировано для загрузки загружаемого хостового устройства (которое, в свою очередь, сконфигурировано для загрузки из периферийного устройства, имеющего интерфейс MMC/SD). Согласно настоящему изобретению, периферийное устройство содержит интерфейс MMC/SD, имеющий выводы питания, шину передачи данных с выводами шины передачи данных, линию синхронизации с выводом синхронизации и линию CMD с выводом CMD, контроллер периферийного устройства, связанный с указанным интерфейсом MMC/SD, и модуль памяти, связанный с указанным контроллером периферийного устройства. Кроме того, согласно настоящему изобретению указанное периферийное устройство, имеющее интерфейс MMC/SD, сконфигурировано для посылки данных, начиная со стартового бита передачи данных, через указанный интерфейс MMC/SD в указанное хостовое устройство в случае, если загрузочные данные хранятся в периферийном устройстве, при условии и после приема аргумента запроса на загрузку из указанного хостового устройства в указанный интерфейс MMC/SD периферийного устройства и при получении синхросигнала на линии синхронизации.
Например, предусмотрено, что периферийное устройство, имеющее интерфейс MMC/SD, распознает аргумент запроса на загрузку, если запрос на загрузку включает, например, команду сброса (как определено в технических требованиях к интерфейсу MMC/SD).
В одном из примеров варианта выполнения настоящего изобретения указанный контроллер периферийного устройства дополнительно сконфигурирован для приема низкого состояния сигнала на выводах шины передачи данных указанного интерфейса MMC/SD, причем указанный вывод индицирует ширину шины передачи данных, которая используется для передачи, и при этом указанный контроллер периферийного устройства дополнительно сконфигурирован для использования индицированной ширины шины передачи данных для той шины передачи данных, которая используется для передачи. Примеры кодирования ширины шины в виде 8-разрядного аргумента выводов данных / линий Dat0-Dat7 интерфейса MMC/SD раскрыты выше в описании способа согласно настоящему изобретению.
В другом примере варианта выполнения настоящего изобретения указанный контроллер периферийного устройства дополнительно сконфигурирован для приема, наряду с аргументом запроса на загрузку из указанного хостового устройства, дополнительных аргументов, индицирующих параметры, относящиеся к последовательности начальной загрузки, такие как количество линий передачи данных, которые используются для чтения загрузочного сектора, частота/режим синхронизации, которые используются, и/или другие параметры. Периферийное устройство, имеющее интерфейс MMC/SD (контроллер), в этом варианте выполнения настоящего изобретения дополнительно сконфигурировано для посылки указанных (затребованных загрузочных) данных через указанную шину передачи данных в указанное хостовое устройство согласно указанным параметрам, индицированным в указанном принятом аргументе.
Следует также отметить, что во всех вышеописанных реализациях загрузочных устройств главной конструкторской задачей являлось сокращение времени доступа к загрузочным данным при более или менее разумном подходе к полной инициализации интерфейса MMC/SD, а затем поиска загрузочных данных, хранящихся в указанном периферийном устройстве, имеющем интерфейс MMC/SD.
(Следует отметить, что термин "интерфейс MMC/SD" используется для обозначения или только интерфейса ММС, или комбинированного интерфейса или даже только интерфейса SD, поскольку не все интерфейсы ММС поддерживают также форм-фактор SD).
Как в случае приборной панели на автомобилях, проектировщики ММС, похоже, используют в процедуре инициализации интерфейса MMC/SD ввод "все в высоком состоянии", чтобы иметь возможность проверки, не вышел ли из строя или не имеет ли дефекта один из выводов. Это единственный случай, когда способ согласно настоящему изобретению может дать неправильные результаты, если низкое состояние сигнала обусловлено дефектом электроники.
Согласно еще одному аспекту настоящего изобретения предложено загружаемое хостовое устройство, сконфигурированное для загрузки из периферийного устройства, имеющего интерфейс MMC/SD. Это хостовое устройство содержит источник питания, процессор, связанный с указанным источником питания, и интерфейс MMC/SD, связанный с указанным процессором и с указанным источником питания, причем указанный интерфейс MMC/SD имеет выводы питания, шину передачи данных с выводами шины передачи данных, линию синхронизации с выводом синхронизации и линию CMD с выводом CMD. Хостовое устройство согласно этому аспекту настоящего изобретения сконфигурировано для запуска стандартного обмена данными инициализации периферийного устройства через указанный интерфейс MMC/SD до достижения периферийным устройством, имеющим интерфейс MMC/SD, состояния ожидания и для выполнения обмена данными между указанным хостовым устройством и указанным периферийным устройством в указанном состоянии ожидания с целью поиска действительного загрузочного кода в компонентах шины.
Указанный процессор может быть снабжен (загружаемой) основной памятью. (Это хостовое устройство сконфигурировано вообще не посылать "аргумент запроса на загрузку", поскольку хостовое устройство может быть способно к автономному поиску файлов данных, которые могут быть распознаны как загрузочные файлы/загрузочные данные.) Таким образом, запрос на загрузку дается в более поздней фазе последовательности инициализации совместно или после команд CMD0, CMD1, CMD2, CMD3 (для нормальной инициализации, пока карта не вошла в состояние ожидания). После того как периферийное устройство, имеющее интерфейс MMC/SD, достигнет состояния ожидания, хостовое устройство может просмотреть один за другим компоненты в шине в поисках действительного загрузочного кода.
Это хостовое устройство может использовать обычную инициализацию периферийного устройства, имеющего интерфейс MMC/SD, прежде, чем хостовое устройство запустит приложение для активного поиска загрузочных данных. Такая реализация периферийного устройства, имеющего интерфейс MMC/SD, требует, чтобы хостовое устройство даже в незагруженном состоянии было способно выполнить целиком процесс инициализации и процедуры поиска/загрузки для загрузочных данных, хранящихся в периферийном устройстве. Это можно рассматривать как некоторую возможность базовой системы ввода/вывода (BIOS), позволяющую устройству управлять интерфейсом MMC/SD для инициализации периферийного устройства, а затем проводить поиск загрузочных данных. Это может быть реализовано, например, с помощью простейшего жестко запрограммированного алгоритма инициализации периферийного устройства, имеющего интерфейс MMC/SD, и алгоритма для поиска/загрузки загрузочных данных.
Эта реализация имеет существенное преимущество, поскольку может быть выполнена при использовании соответствующим образом модифицированного хостового устройства и полностью обычных периферийных устройств, имеющих интерфейс MMC/SD. Однако тот факт, что пользователь может иметь к ним доступ, означает, что пользователь может неумышленно вставить в разъем (то есть в интерфейс) неправильное периферийное устройство, имеющее интерфейс MMC/SD. Таким образом, эта реализация особенно полезна для приложений, в которых четко установлено, что устройство не будет функционировать без периферийного устройства, имеющего интерфейс MMC/SD, например для игровых устройств (типа игровых консолей для N участников), или таких, в которых карты MMC/SD используются в качестве встроенной памяти (то есть пользователь не имеет доступа к карте и не сможет делать бесполезные попытки управлять устройством, в то время как периферийное устройство, имеющее интерфейс MMC/SD, не содержит загрузочных данных).
Согласно еще одному аспекту настоящего изобретения предложено загружаемое хостовое устройство, сконфигурированное для загрузки из периферийного устройства, имеющего интерфейс MMC/SD, причем указанное периферийное устройство имеет регистр рабочего состояния (OCR, Operation Condition Register) с дополнительным аргументом запроса на загрузку. Как и в других вышеописанных вариантах выполнения хостовых устройств, указанное хостовое устройство содержит источник питания, процессор, связанный с указанным источником питания, и интерфейс MMC/SD, связанный с указанным процессором и с указанным источником питания, причем указанный интерфейс MMC/SD имеет выводы питания, шину передачи данных с выводами шины передачи данных, линию синхронизации с выводом синхронизации и линию CMD с выводом CMD. Согласно настоящему изобретению хостовое устройство сконфигурировано для посылки, после инициализации периферийного устройства, имеющего интерфейс MMC/SD, аргумента запроса на загрузку в указанный интерфейс MMC/SD и для контроля шины передачи данных на появление загрузочных данных, принимаемых из периферийного устройства через указанный интерфейс MMC/SD.
То есть хостовое устройство после инициализации периферийного устройства, имеющего интерфейс MMC/SD, может послать аргумент запроса на загрузку в указанный интерфейс MMC/SD и контролировать шину передачи данных на появление загрузочных данных, принимаемых из периферийного устройства через указанный интерфейс MMC/SD. Это может произойти, например, в течение или после фазы/периода "CMD1" обмена данными. В отличие от вышеописанной версии хостового устройства, для передачи загрузочных данных предусмотрен специальный запрос для периферийного устройства/в периферийном устройстве. Таким образом, в этом варианте выполнения настоящего изобретения процедура загрузки для хостового устройства включает только процесс инициализации, передачу запроса загрузочных данных и прием загрузочных данных. В этом выполнении периферийное устройство, имеющее интерфейс MMC/SD, "знает", присутствуют ли загрузочные данные и в каком месте они находятся. Даже при том, что специалисту в данной области техники этот факт очевиден, подчеркнем, что хостовое устройство фактически "знает" (то есть хранит) аргумент запроса на загрузку регистра рабочего состояния для периферийных устройств, имеющих интерфейс MMC/SD.
Эта реализация настоящего изобретения требует нового определения регистровой информации, производимой на уровне CMD1, и дополнительного аргумента в регистре рабочего состояния для индикации, имеет ли компонент внедренный/включенный загрузочный код. Таким образом, хостовое устройство может запросить загрузочные данные, посылая CMD1 (аргумент, назначенный команде CMD1).
Согласно дополнительному аспекту настоящего изобретения предложено периферийное устройство, имеющее интерфейс MMC/SD. Это периферийное устройство сконфигурировано для загрузки загружаемого хостового устройства, рассчитанного на загрузку из периферийного устройства, имеющего интерфейс MMC/SD. Это периферийное устройство, имеющее интерфейс MMC/SD, в своем регистре рабочего состояния имеет дополнительный аргумент запроса на загрузку. Периферийное устройство содержит интерфейс MMC/SD, включающий выводы питания, шину передачи данных с выводами шины передачи данных, линию синхронизации с выводом синхронизации и линию CMD с выводом CMD, контроллер периферийного устройства с регистром рабочего состояния, связанный с указанным интерфейсом MMC/SD, и модуль памяти, связанный с указанным контроллером периферийного устройства.
Это периферийное устройство, имеющее интерфейс MMC/SD, в своем регистре рабочего состояния имеет дополнительный аргумент запроса на загрузку. Это периферийное устройство, имеющее интерфейс MMC/SD (или его контроллер), сконфигурировано для приема, после процедуры инициализации периферийного устройства, имеющего интерфейс MMC/SD, аргумента запроса на загрузку в периферийном устройстве, извлечения (указанных затребованных загрузочных данных из модуля памяти) и посылки указанных загрузочных данных из модуля памяти периферийного устройства через указанный интерфейс MMC/SD в указанное хостовое устройство. Таким образом, периферийное устройство позволяет хостовому устройству запрашивать загрузочные данные, посылая единственный запрос на передачу загрузочных данных. Однако регистр рабочего состояния карты MMC/SD должен быть изменен, а это подразумевает тот факт, что обычные, имеющиеся на рынке, периферийные устройства, имеющие интерфейс MMC/SD, фактически не могут быть модернизированы с добавлением им этой дополнительной характеристики.
В одном из примеров варианта выполнения настоящего изобретения указанный регистр рабочего состояния с указанным аргументом запроса на загрузку реализован в периферийном устройстве, имеющем интерфейс MMC/SD, в виде жестко запрограммированного аппаратного компонента, соединенного с указанным контроллером периферийного устройства или реализованного в нем.
В этом решении с использованием аппаратных средств компонент, который включает способность к загрузке, только отвечает с использованием своего регистра рабочего состояния, и после завершения квитирования установления связи (handshake) CMD1 (состояние готовности) хостовое устройство может только продолжать тактирование шины для повторного приема первых данных по линии передачи данных. Однако для этой реализации требуется разное оборудование между загружаемыми/незагружаемыми компонентами. В любом случае без приема запроса на загрузку даже периферийное устройство, имеющее интерфейс MMC/SD и допускающее процесс загрузки, может использоваться в качестве периферийного устройства, имеющего интерфейс MMC/SD и не допускающего процесса загрузки.
В еще одном примере варианта выполнения настоящего изобретения указанный регистр рабочего состояния (OCR) с указанным аргументом запроса на загрузку реализован в виде программного обеспечения, работающего в контроллере периферийного устройства. Этот вариант выполнения настоящего изобретения представляет решение с использованием встроенного программного обеспечения, в котором все компоненты в шине отвечают с использованием своего регистра OCR до тех пор, пока они не становятся готовы, и только последний ответ включает действительное указание на способность к загрузке. Эта реализация является более сложной вследствие того, что если имеется более одного компонента в той же самой шине, и компонент, способный к загрузке, оказывается готов раньше, чем компонент, не способный к загрузке, способность к загрузке должна быть вновь проверена позже в инициализирующей последовательности (например, путем отдельного повторного чтения регистра OCR).
Следует отметить, что карта памяти для контроллера карты памяти может содержать дополнительные подэлементы, перечисленные в технических требованиях к интерфейсу MMC/SD, например модуль обнаружения включения питания, ядро памяти, интерфейс памяти, карту интерфейса памяти, контроллер интерфейса карты памяти и другие компоненты.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Ниже изобретение будет описано подробно со ссылками на сопровождающие чертежи, где
на фиг.1 показана последовательность операций, иллюстрирующая обе части способа согласно одному из аспектов настоящего изобретения,
на фиг.2 показан вариант выполнения способа согласно настоящему изобретению, альтернативный показанному на фиг.1,
на фиг.3 показан другой вариант процедуры загрузки согласно настоящему изобретению,
на фиг.4 показана еще одна реализация настоящего изобретения, в которой запрос на загрузку передают после того, как периферийное устройство, имеющее интерфейс MMC/SD, полностью инициализировано,
на фиг.5 показаны хостовое устройство и периферийное устройство, имеющее интерфейс MMC/SD, которые связаны через интерфейс MMC/SD, и
на фиг.6 показаны хостовое устройство и периферийное устройство, имеющее интерфейс MMC/SD, причем каждое из этих устройств снабжено специальным блоком загрузки, связанным через интерфейс MMC/SD.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ВЫПОЛНЕНИЯ НАСТОЯЩЕГО ИЗОБРЕТЕНИЯ
Ниже в подробном описании идентичные компоненты обозначены одинаковыми позициями, даже если они показаны в разных вариантах выполнения настоящего изобретения. Для ясности и краткости изложения настоящего изобретения чертежи могут быть выполнены не в масштабе, а некоторые особенности могут быть показаны несколько схематично.
На фиг.1 и последующих фиг.2, 3 и 4 часть последовательности операций для хостового устройства изображена слева, в то время как часть последовательности операций, изображенная справа, относится к действиям или процессам, выполняемым в периферийном устройстве, имеющем интерфейс MMC/SD.
Для дополнительной иллюстрации способов согласно настоящему изобретению некоторые выбранные сигналы, например питания (PWR), данных (DAT), которые иногда даже разложены на единичные сигналы данных (Dat0.. Dat1…), синхронизации (CLK) и сигнал команд, обозначены обычным способом слева направо. Для лучшей иллюстрации сигналов низкого состояния сигналы низкого состояния изображены как переходы от высокого до низкого состояния.
Обычные сигналы обозначены (когда это возможно) прерывистыми линиями.
На фиг.1 показана последовательность операций, иллюстрирующая обе части способа согласно одному из аспектов настоящего изобретения. В этой последовательности операций хостовое устройство загружается из периферийного устройства, которое связано через интерфейс MMC/SD с картами MMC/SD. Последовательность операций начинается в верхнем левом углу, при этом хостовое устройство подает питание в периферийное устройство, имеющее интерфейс MMC/SD, обеспечивая питание на выводах питания интерфейса карты MMC/SD. Таким образом, периферийное устройство принимает сигнал питания (вверху справа).
Одновременно (или после этого) хостовое устройство устанавливает "низкий" уровень сигнала в линии передачи команд (CMD). Периферийное устройство, имеющее интерфейс MMC/SD, принимает этот сигнал (ожидая, согласно существующим техническим требованиям к MMC/SD/интерфейсу, высокого состояния сигнала (а затем команду CMD0) и обнаруживает (согласно существующим техническим требованиям к инициализации интерфейса MMC/SD) "неожиданный" сигнал. Карта MMC/SD (согласно настоящему изобретению) сконфигурирована для распознавания этого низкого состояния сигнала и интерпретирует его как запрос на начальную загрузку. После обнаружения запроса на загрузку периферийное устройство, имеющее интерфейс MMC/SD, просто извлекает загрузочные данные (например, из выделенного файла или зоны памяти) и посылает их через интерфейс в хостовое устройство (как обозначено сигналом DAT).
Соответственно хостовое устройство контролирует выводы данных интерфейса для приема сигналов начальной загрузки. Принимая данные, хостовое устройство может загрузить их в основную память хостового устройства, фактически завершая запрос на загрузку.
Индикация обычного состояния сигналов в линии передачи команд (все время высокое до передачи сигналов CMD0, CMD1, и CMD2… в обычном процессе инициализации), на фиг.1 показана прерывистой линией.
На фиг.2 показан вариант способа согласно настоящему изобретению, альтернативный показанному на фиг.1. Описано добавление к тому, что раскрыто на фиг.1. Способ на фиг.2 начинается с тех же самых шагов, что и на фиг.1. Дополнительно к сигналу низкого состояния, выдаваемому на выводе CMD, хостовое устройство выдает синхросигнал на выводе синхронизации (по меньшей мере 74 такта или пока не будут переданы все загрузочные данные).
Выдавая этот дополнительный сигнал, периферийное устройство, имеющее интерфейс MMC/SD, может четко различить, например, неисправность командного вывода и запрос на загрузку, состоящий из двух различных компонентов сигнала.
На дополнительном шаге хостовое устройство устанавливает два вывода Dat0 и Dat1 шины передачи данных в низкое состояние, таким образом индицируя ширину шины передачи данных для использования при последующей передаче данных. (Традиционно выводы шины установлены в "высокое" состояние, как обозначено прерывистыми линиями.) Сигналы "низкого" состояния принимаются картой и интерпретируются соответствующим образом; поэтому на последнем шаге только выводы Dat0 и Dat1 изображены посылающими сигналы, в то время как выводы Dat2 и Dat… для передачи загрузочных данных не используются.
В такой реализации хостовое устройство может начать загрузку загрузочных данных с первых шагов после соединения периферийного устройства, имеющего интерфейс MMC/SD, что, таким образом, значительно ускоряет процесс загрузки.
На фиг.3 показана аналогичная процедура загрузки. В отличие от варианта, изображенного на фиг.2, используется модифицированная команда CMD0 для индикации запроса на загрузку периферийному устройству, имеющему интерфейс MMC/SD. Традиционно процедура инициализации включает команду CMD с аргументом 00Н. В показанном варианте выполнения способа согласно настоящему изобретению используется (согласно обычным техническим требованиям) "не ожидаемый" сигнал CMD0, имеющий аргумент 01Н. При приеме модифицированного сигнала CMD0 карта ММС может распознать входящий запрос на загрузку даже до того, как периферийное устройство, имеющее интерфейс MMC/SD, достигнет состояния инициализации.
Модифицированная команда CMD0 может быть послана отдельно или (как на фиг.2) совместно с синхросигналом.
Кроме того, в аргументе команды наряду с запросом на загрузку могут переноситься другие параметры. Такие дополнительные параметры могут представлять собой, например, используемую ширину шины и используемый режим синхронизации (при этом нужно распределять отдельные биты/значения).
На фиг.4 изображен другой вариант выполнения настоящего изобретения, в котором запрос на загрузку передается после того, как периферийное устройство, имеющее интерфейс MMC/SD, оказывается полностью инициализировано, то есть достигло "состояния ожидания". В состоянии ожидания хостовое устройство посылает команду запроса на загрузку в периферийное устройство, имеющее интерфейс MMC/SD, через линию передачи команд (и начинает тактировать вывод синхронизации интерфейса MMC/SD). В этом варианте выполнения настоящего изобретения требуется, чтобы соответствующая команда запроса на загрузку была определена в протоколе интерфейса MMC/SD (то есть в регистре рабочего состояния периферийного устройства, имеющего интерфейс MMC/SD). (Кроме того, предусмотрено, что хостовое устройство автономно просматривает модуль памяти периферийного устройства, имеющего интерфейс MMC/SD, в поисках определенной структуры данных, распознаваемой как загрузочные данные, например, отмеченных именем файла вида "**.bot".) При приеме запроса на загрузку периферийное устройство, имеющее интерфейс MMC/SD, может автоматически определить желаемые загрузочные данные и может инициировать передачу данных.
На фиг.5 показаны хостовое устройство и периферийное устройство, имеющее интерфейс MMC/SD и подключенное через интерфейс MMC/SD. Хостовое устройство содержит процессорный блок (центральный процессор) и контроллер интерфейса MMC/SD. Для того чтобы не загромождать чертеж, изображены только выводы CMD, CLK и DAT интерфейса MMC/SD. Карта памяти MMC/SD содержит контроллер периферийного устройства, служащий посредником между интерфейсом и модулем памяти и предназначенный для управления всеми процедурами, которые выполняются между интерфейсом MMC/SD и модулем памяти.
В этих вариантах выполнения настоящего изобретения контроллер интерфейса хостового устройства сконфигурирован для реализации способа согласно настоящему изобретению (например, путем посылки сигналов, необходимых для его реализации).
Поэтому хостовое устройство (или контроллер интерфейса хостового устройства) может иметь выделенный модуль загрузки, реализованный как программное обеспечение в хостовом устройстве.
В этих вариантах выполнения настоящего изобретения контроллер интерфейса периферийного устройства, имеющего интерфейс MMC/SD, сконфигурирован для реализации способа согласно настоящему изобретению (например, путем посылки сигналов, необходимых для его реализации).
Аналогично контроллер интерфейса MMC/SD может содержать выделенный модуль загрузки, реализованный как программное обеспечение. Модуль загрузки программного обеспечения позволяет контроллеру периферийного устройства определять, принят ли сигнал, индицирующий запрос на загрузку, и нужно ли послать загрузочные данные в хостовое устройство.
На фиг.6 показаны хостовое устройство и периферийное устройство, имеющее интерфейс MMC/SD, как на фиг.5, при этом каждое устройство имеет выделенный модуль загрузки или блок загрузки.
В этих вариантах выполнения настоящего изобретения блок загрузки/модуль загрузки, связанный с контроллером интерфейса хостового устройства, сконфигурирован для реализации способа согласно настоящему изобретению (например, путем посылки сигналов, необходимых для его реализации). Хостовое устройство (или контроллер интерфейса хостового устройства) имеет выделенный модуль загрузки, реализованный в виде аппаратного обеспечения в хостовом устройстве. Такой модуль загрузки должен быть связан с центральным процессором, чтобы иметь возможность определять, должна ли быть проведена процедура загрузки или нет. Кроме того, модуль загрузки или блок загрузки должен также быть связан с интерфейсом (MMC/SD) (или контроллером), чтобы иметь возможность произвести все шаги, необходимые для вызова (или выполнения) процедуры загрузки (то есть послать все необходимые сигналы). Блок загрузки может быть реализован в виде схемы, включенной параллельно контроллеру интерфейса между самим интерфейсом и центральным процессором.
Указанный модуль загрузки может содержать компоненты, предназначенные для установки вывода команд указанного интерфейса MMC/SD в течение включения питания в низкое состояние, посылки синхросигнала из указанного хостового устройства на указанный вывод синхронизации указанного интерфейса MMC/SD в течение всего времени, пока карта посылает данные через указанную шину передачи данных, установки выводов шины передачи данных в низкое состояние, индикации ширины шины передачи данных, которая используется для передачи данных, и/или может дополнительно содержать компоненты, сконфигурированные для посылки в течение процедуры инициализации аргумента запроса на загрузку в интерфейс MMC/SD, посылки синхросигнала по линии синхронизации, и/или дополнительно может содержать компоненты, сконфигурированные для посылки - после инициализации периферийного устройства, имеющего интерфейс MMC/SD, - аргумента запроса на загрузку в указанный интерфейс MMC/SD и контроля шины передачи данных на появление стартового бита загрузочных данных, принимаемых из периферийного устройства через указанный интерфейс MMC/SD.
В другом примере варианта выполнения указанного периферийного устройства согласно настоящему изобретению указанный регистр рабочего состояния с указанным аргументом запроса на загрузку реализован в виде программного обеспечения, работающего в контроллере периферийного устройства.
В этих вариантах выполнения настоящего изобретения контроллер интерфейса MMC/SD сконфигурирован для реализации способа согласно настоящему изобретению (например, путем посылки сигналов, необходимых для его реализации) при использовании выделенного модуля загрузки или блока загрузки.
Аналогично карта памяти MMC/SD или контроллер интерфейса MMC/SD может представлять собой выделенный модуль загрузки, реализованный в виде программного обеспечения или аппаратного обеспечения в запоминающем устройстве MMC/SD. Такой модуль загрузки должен быть связан с контроллером периферийного устройства (или по меньшей мере с интерфейсом), чтобы быть в состоянии определять, принят ли сигнал, индицирующий запрос на загрузку и нужно ли послать загрузочные данные в хостовое устройство. Для упрощения процесса загрузки модуль загрузки может также быть связан с выделенным загрузочным сектором, заданным в модуле памяти периферийного устройства.
Указанный модуль загрузки может включать компоненты, предназначенные для посылки первых данных из заранее заданной области памяти через шину передачи данных, начиная со стартового бита первого кадра данных, после приема низкого состояния сигнала на выводе команд или во время включения питания.
Кроме того, предусмотрено, что блок загрузки или модуль загрузки содержит выделенные компоненты для приема синхросигналов в качестве дополнительного параметра, индицирующего запрос на загрузку, и может дополнительно содержать компонент, предназначенный для посылки указанных данных с использованием ширины шины, индицированной низким состоянием сигнала, принятого на выводах шины передачи данных.
В блоке загрузки может также иметься выделенный регистр рабочего состояния с дополнительным аргументом запроса на загрузку, расположенный в указанном периферийном устройстве, имеющем интерфейс MMC/SD.
В еще одном примере варианта выполнения настоящего изобретения указанный регистр рабочего состояния с указанным аргументом запроса на загрузку реализован в виде программного обеспечения, работающего в контроллере периферийного устройства.
Применение настоящего изобретения обеспечивает намного более эффективную начальную загрузку с использованием памяти, встроенной в интерфейс карты памяти, при использовании существующих разъемов/протоколов для минимизации изменений в программных/программно-аппаратных средствах.
Данная заявка содержит описание реализации и вариантов выполнения настоящего изобретения посредством примеров. Специалистам в данной области техники очевидно, что настоящее изобретение не ограничено деталями вариантов его выполнения, представленными выше, и что изобретение может также быть реализовано в другой форме без отхода от сущности изобретения. Варианты выполнения настоящего изобретения, представленные выше, нужно рассматривать как иллюстративные, а не ограничительные. Таким образом, возможности реализации и использования изобретения ограничены только формулой изобретения. Следовательно, различные возможности реализации настоящего изобретения, определяемого формулой изобретения, включая эквивалентные реализации, также входят в объем изобретения.