УСТРОЙСТВО ПРЯМОГО ОТОБРАЖЕНИЯ АДРЕСОВ ДАННЫХ, РАСПОЛАГАЮЩИХСЯ ВО ВНЕШНЕМ ПОСЛЕДОВАТЕЛЬНОМ ПЗУ, В АДРЕСНОЕ ПРОСТРАНСТВО МИКРОПРОЦЕССОРНОГО ЯДРА, КОМПЬЮТЕРНАЯ СИСТЕМА И СПОСОБ ПЕРЕДАЧИ ДАННЫХ
DEVICE FOR DIRECT MAPPING OF DATA ADDRESSES, LOCATED IN EXTERNAL SERIAL ROM, TO ADDRESS SPACE OF MICROPROCESSOR CORE, COMPUTER SYSTEM AND METHOD OF TRANSMITTING DATA

Назначение изобретения
Изобретение относится к компьютерной технике, в частности к системам памяти и способам управления ими с возможностью выполнять программу с того же накопителя, где она размещена, без ее предварительной загрузки в оперативную память микропроцессора применительно к недорогим компьютерным системам с небольшим объемом оперативной памяти и к способам передачи данных в них.
Уровень техники
Известно решение по патенту США 6601167 В1 (приоритет от 14.01.2000), включающее в себя способ инициализации компьютерной системы, включающей процессор и память последовательного доступа с программой загрузки, хранящейся в ней, и соответствующую компьютерную систему для осуществления способа. Загрузчик в ответ на инициализацию компьютерной системы сначала управляет последовательным запоминающим устройством для чтения загрузочной программы, после чего управляет процессором для перехода к работе загрузочной программы в памяти последовательного доступа. Первая страница памяти программы начальной загрузки вызывает загрузочный код, который должен быть передан в оперативное запоминающее устройство (ОЗУ). Затем процессор переключается на код в ОЗУ, заставляет передать оставшуюся часть загрузочного кода из памяти последовательного доступа в ОЗУ и выполнить его. Недостатком данного решения является необходимость использования внутреннего ОЗУ даже для небольших компьютерных систем.
Известны другие решения, включающие в себя устройства загрузки с использованием NAND флэш-памяти, например по патенту США 7849302, приоритет от 10 апреля, и способ получения команд загрузки из энергонезависимой памяти, например решение по патенту США 20068533448 (приоритет от 06.12.2010), которые могут быть реализованы путем обнаружения сигнала сброса, относящегося к устройству, и получения заранее определенной страницы данных из энергонезависимой области памяти в регистр, связанный с энергонезависимой памятью, при постраничном извлечении данных из энергонезависимой памяти, при этом сама страница данных включает в себя команды загрузки устройства. При получении команды на считывание данных, хранящихся в регистре, используют включенный в нее адрес, идентифицирующий местоположение одной или более команд в регистре. В результате из регистра извлекается одна или более команд для исполнения процессором. Эти команды включают в себя команды загрузки данных из регистра памяти во внутреннее ОЗУ. Недостатком решений по данному патенту является то, что данный патент подразумевает использование многосигнального интерфейса NAND Flash памяти, описанного в стандарте ONFI. Стоит также отметить, что данный патент подразумевает использование в качестве загрузочного ПЗУ исключительно NAND Flash память, что сужает круг устройств, которые можно использовать в качестве ПЗУ в соответствующих компьютерных системах.
Из заявки на получение патента США 2005/0108500 (приоритет от 18.11.2003), известно решение архитектуры загрузочной флэш-памяти, которая позволяет использовать неадресуемую память NAND, которая будет использоваться в качестве загрузочной памяти в цифровых процессорных системах. NAND-память имеет более низкую стоимость и более высокую плотность и важна для реализации процессоров с низким энергопотреблением. В начале процедуры (последовательной) загрузки предварительно выбранный адрес передается в NAND флэш-память. Этот предварительно выбранный адрес совпадает с тем, который ожидает процессорное ядро в начале процесса загрузки. После завершения цикла выбранной длительности флэш-память NAND переходит к следующей, последовательной ячейке памяти и, таким образом, выводит последовательность команд по линии передачи данных. Линии передачи данных из флэш-памяти NAND предоставляют собой линии входа для передачи данных процессорному ядру. Процессорное ядро во время загрузки компьютера получает новые загрузочные команды в тот момент времени, когда они выходят из NAND флэш-памяти. Недостатком данного решения является то, что заявленный метод загрузки предусматривает использование исключительно NAND Flash памяти, а для метода загрузки то, что в нем используется многосигнальный интерфейс между микропроцессором и микросхемой NAND Flash, что, во-первых, требует большого количества выводов микросхемы системы на кристалле (СнК), а во-вторых, требует наличия специализированного интерфейса устройства микропроцессора. Кроме того, данный подход может потребовать наличия внутреннего ОЗУ.
Известно также решение по заявке на получение патента США 2004/0230738 А1 (приоритет 29.10.2003) в виде устройства, позволяющего управлять исполнением команд непосредственно из последовательной флэш-памяти, и чип флэш-памяти с использованием этого устройства, при этом контроллер ПЗУ с определенным объемом хранения данных имеет доступ к ПЗУ для чтения целых страниц памяти, в которых хранятся требуемые данные, и может передавать необходимые данные основному управляющему модулю или исполнять их. Устройство включает в себя кэш-модуль для доступа к указанному адресу памяти ПЗУ в ответ на команду, полученную от управляющего модуля, и чтения или записи данных основным управляющим модулем и контроллер ПЗУ с загрузчиком, позволяющим осуществлять загрузку путем чтения данных с ПЗУ с хранением загрузочных кодов в буфере и немедленной передачей загрузочных кодов в основной управляющий модуль по его требованию. Основным недостатком является обязательное наличие внутреннего ОЗУ.
Все известные решения объединяет то, что после включения питания микросхема СнК, содержащая микропроцессорное ядро, начинает процедуру начальной инициализации, для чего микропроцессорное ядро начинает считывать и выполнять инструкции программы начальной инициализации с некоторого начального адреса в собственном адресном пространстве. Т.е. программа начальной инициализации располагается в загрузочном энергонезависимом постоянном запоминающем устройстве (ПЗУ), выполненном, например, по технологии Flash, или загрузочное ПЗУ реализуют в составе микросхемы, что требует наличия специального технологического процесса, делает процесс изготовления микросхемы дороже. При использовании другого более дешевого и распространенного варианта с применением внешней микросхемы загрузочного ПЗУ типа Flash для доступа к загрузочному ПЗУ параллельного типа требуется несколько десятков выводов микросхемы СнК, в том числе выводы адреса, данных и управления.
Кроме того, для уменьшения необходимого количества выводов как СнК, так и микросхемы памяти, уменьшения размеров и снижения стоимости корпусов СнК и микросхем памяти, а следовательно, размеров и стоимости печатных плат компьютерных систем широко используются ПЗУ последовательного типа (например, формата SPI (последовательный периферийный интерфейс)) для хранения программы начальной инициализации, которые осуществляют передачу данных чтения и записи, управляющую и статусную информацию по однобитному последовательному каналу. В частности, микросхемы ПЗУ типа SPI используют три линии для приема и передачи данных:
- вход для тактирования передаваемых или принимаемых данных (Serial Clock);
- вход для передачи данных от контроллера к микросхеме (SI - Serial Input), по этой линии побитно передают адрес, данные для записи, и коды команд управления микросхемой;
- выход для передачи данных от микросхемы к контроллеру, по этой линии побитно передают читаемые данные, а также информацию о состоянии микросхемы (SO - Serial Output).
Для взаимодействия с ПЗУ такого типа требуется специальный контроллер, инициирующий операции чтения/записи/стирания и т.д. путем подачи специализированной последовательности команд. Недостатком такого рода решений является то, что содержимое последовательного ПЗУ прямо не отображается в адресном пространстве микропроцессорного ядра, что сильно влияет на сложность программного обеспечения.
Имеющиеся решения для работы с таким ПЗУ требуют наличия встроенного в микросхему СнК начального микроПЗУ и внутреннего загрузочного оперативного запоминающего устройства ОЗУ. В этом случае после включения питания микропроцессорное ядро считывает и выполняет инструкции из микроПЗУ, результатом выполнения которых будет копирование программы начальной инициализации из последовательного ПЗУ во внутреннее загрузочное ОЗУ, после чего происходит передача управления на команду внутреннего загрузочного ОЗУ, что сказывается на быстродействии, сложности конструкции и, следовательно, стоимости системы.
Раскрытие изобретения
Для преодоления указанных недостатков в заявленном решении предлагается использовать промежуточный блок (1) - устройство прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ (2), в адресное пространство микропроцессорного ядра (3). Устройство (1), которое включает в себя регистр считанных данных (4), регистр адреса (5) и конечный автомат блока прямого отображения адресов (6), производящий автоматические обращения к регистрам контроллера внешнего последовательного ПЗУ (7). При использовании устройства (1) прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ (2), в адресное пространство микропроцессорного ядра (3) в компьютерной системе его располагают между микропроцессорным ядром (3) и контроллером (7) внешнего последовательного ПЗУ (2). Функция устройства (1) прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ (2), в адресное пространство микропроцессорного ядра (3) заключается в преобразовании запросов на чтение ПЗУ (2), поступающих со стороны микропроцессорного ядра (3), в последовательность обращений к контроллеру (7) внешнего последовательного ПЗУ (2), результатом работы которого является набор слов данных, считанных из внешнего последовательного ПЗУ (2) (Фиг. 1) и переданных по шине данных в микропроцессорное ядро.
В результате работы компьютерной системы с использованием устройства прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ, в адресное пространство микропроцессорного ядра осуществляется передача данных компьютерной системой (а в качестве наилучшего варианта осуществления компьютерной системы осуществляется передача начального кода загрузки компьютерной системы), располагающихся во внешнем последовательном ПЗУ, благодаря тому, что в системе, состоящей из микропроцессорного ядра, внешнего последовательного ПЗУ, контроллера последовательного ПЗУ, устройства прямого отображения адресов данных, располагающихся в последовательном ПЗУ, в адресное пространство микропроцессорного ядра, шины данных, шины адреса и шины управления, в момент готовности к работе внешнего последовательного ПЗУ с компьютерной системы снимают сигнал сброса, производят автоматическую инициализацию одного или нескольких регистров управления контроллера внешнего последовательного ПЗУ с использованием конечного автомата устройства прямого отображения в адресное пространство микропроцессорного ядра адресов данных, располагающихся во внешнем последовательном ПЗУ, содержащем начальный код загрузки, и ожидают от микропроцессорного ядра поступления запросов на чтение, а при получении запроса на чтение и адреса от микропроцессорного ядра по шине управления и по шине адреса соответственно с использованием конечного автомата устройства (1) прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ, в адресное пространство микропроцессорного ядра производят соответствующую запись в регистр данных и, быть может, в регистр управления контроллера внешнего последовательного ПЗУ, после этого с использованием конечного автомата устройства (1) прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ, в адресное пространство микропроцессорного ядра выполняют чтение регистра данных контроллера внешнего последовательного ПЗУ до тех пор, пока полностью не считают слово данных, которое затем передают в микропроцессорное ядро по шине данных блока прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ (2), в адресное пространство микропроцессорного ядра для использования в микропроцессорном ядре, до окончания получения запросов на чтение данных из ПЗУ (2). Несмотря на то, что основная часть обращений на чтение ПЗУ со стороны микропроцессора происходит во время загрузки, такие обращения могут поступать в течение всей работы компьютерной системы, что позволяет использовать внешнее последовательное ПЗУ в качестве источника данных и после загрузки.
Техническим результатом использования описанного выше устройства (1) прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ (2), в адресное пространство микропроцессорного ядра является упрощение конструкции благодаря замене параллельного способа передачи данных в последовательный, снижению числа контактов, снижению требований к объему ОЗУ при возможности отказа от встроенных в микросхему начального микроПЗУ и внутреннего загрузочного ОЗУ, что в целом приводит также к снижению материалоемкости и, следовательно, к снижению стоимости микросхемы.
Описание чертежей
Решение проблемы и сущность заявленных технических решений могут быть пояснены с помощью следующих чертежей.
Фиг 1. Компьютерная система и схема ее работы с устройством прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ, в адресное пространство микропроцессорного ядра.
Фиг. 2. Алгоритм работы устройства прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ, в адресное пространство микропроцессорного ядра.
Осуществление изобретения
Заявленное изобретение в форме устройства (1) прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ (2), в адресное пространство микропроцессорного ядра (3) включает в себя регистр считанных данных (4), регистр адреса (5) и конечный автомат (6) устройства (1) прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ (2) в адресное пространство микропроцессорного ядра (3). В компьютерной системе устройство (1) располагается между микропроцессорным ядром (3) и контроллером (7) внешнего последовательного ПЗУ (2). Устройство (1) преобразует цикл чтения со стороны микропроцессорного ядра (3) в последовательность обращений к контроллеру (7) внешнего последовательного ПЗУ (2), в результате чего на выходе из него получают слово данных, считанное из внешнего последовательного ПЗУ (2) (фиг. 1), которое передается в микропроцессорное ядро (3) по шине данных (8). Функция преобразования цикла чтения со стороны микропроцессорного ядра (3) в последовательность обращений к контроллеру внешнего последовательного ПЗУ (7) осуществляется благодаря конечному автомату (6) устройства (1). Алгоритм работы устройства (1) прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ (2), в адресное пространство микропроцессорного ядра (3) представлен на фиг. 2. Возможна ситуация, когда при работе устройства (1) в качестве внешнего последовательного ПЗУ используют микросхему Flash памяти с последовательным интерфейсом, в качестве которого используют SPI интерфейс, а в качестве контроллера этого последовательного ПЗУ используют SPI контроллер. Как уже указывалось выше, наилучшим вариантом осуществления изобретения является вариант, при котором устройство (1) используется для отображения в адресное пространство микропроцессорного ядра адреса данных, являющихся инструкциями начального кода загрузки, хранящегося во внешнем последовательном ПЗУ, но назначение устройства (1) может быть и не ограничено данной функцией, поскольку внешнее последовательное ПЗУ может продолжать использоваться в качестве источника данных после завершения чтения инструкций начального кода загрузки.
Заявленное изобретение по второму независимому пункту формулы - компьютерная система (фиг. 1) включает систему на кристалле и внешнее последовательное ПЗУ. При этом система на кристалле с использованием устройства (1) прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ (2), в микропроцессорное ядро (3) включает в себя микропроцессорное ядро (3), контроллер (7) внешнего последовательного ПЗУ (2) для параллельной передачи слов данных, считанных из внешнего последовательного ПЗУ, и устройство (1) прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ, в адресное пространство микропроцессорного ядра с обеспечением возможности осуществления обмена данными между ним и процессорным ядром (3) путем использования внутрисистемного интерфейса системы на кристалле.
Устройство (1) располагают между контроллером (7) внешнего последовательного ПЗУ (2) и микропроцессорным ядром (3). Оно предназначено для преобразования циклов чтения со стороны микропроцессорного ядра (3) в последовательность обращений к контроллеру (7) внешнего последовательного ПЗУ (2), в результате чего на выходе из устройства (1) получают слова данных, считанные из внешнего последовательного ПЗУ (2) (Фиг. 1), которые передаются в микропроцессорное ядро (3) по шине данных (8). Микропроцессорное ядро (3) способно производить чтение данных из внешнего по отношению к СнК внешнего последовательного ПЗУ (2) с помощью контроллера (7) внешнего последовательного ПЗУ (2) и устройства (1). Взаимодействие микропроцессорного ядра (3) с устройством (1) может производиться по любому внутрисистемному интерфейсу СнК: АМВА/ОСР/и т.д. В таких интерфейсах можно выделить набор шин, состоящий по меньшей мере из трех шин - шины данных (8), шины адреса (9), шины управления (10). Контроллер внешнего последовательного ПЗУ включает в себя конечный автомат (11) контроллера последовательного ПЗУ и набор регистров, среди которых можно выделить один или несколько регистров статуса (12), один или несколько регистров управления (13) и регистр данных (14). Обмен данными между устройством (1) прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ, в адресное пространство микропроцессорного ядра и контроллером (7) внешнего последовательного ПЗУ может осуществляться в соответствии с любым протоколом, поддерживаемым контроллером (7) внешнего последовательного ПЗУ. Обмен данными с внешним последовательным ПЗУ (2) производится по однобитным последовательным каналам (15). В компьютерной системе при работе устройства прямого отображения адресов данных в качестве внешнего последовательного ПЗУ может быть использована микросхема Flash памяти с последовательным интерфейсом, в качестве которого используют SPI интерфейс, а в качестве контроллера внешнего последовательного ПЗУ используют SPI контроллер. В описанной конфигурации компьютерная система с использованием устройства (1) прямого отображения адресов данных может отображать в адресное пространство микропроцессорного ядра адреса данных, являющиеся инструкциями начального кода загрузки, но не ограничивается этим, и внешнее последовательное ПЗУ продолжают использовать в качестве источника данных и после завершения чтения инструкций начального кода загрузки.
В результате работы описанной выше компьютерной системы, использующей устройство (блок) (1) прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ (2), в адресное пространство микропроцессорного ядра (3) осуществляют способ передачи данных (загрузки начального кода загрузки в частном случае) компьютерной системой, располагающихся во внешнем последовательном ПЗУ (2), благодаря тому, что в системе, включающей в себя СнК и внешнее по отношению к СнК последовательное ПЗУ (2). Сама СнК включает в себя микропроцессорное ядро (3), контроллер (7) внешнего последовательного ПЗУ (2) для параллельной передачи слов данных, считанных из внешнего последовательного ПЗУ, и устройство (1), которое осуществляет прямое отображение адресов данных, располагающихся во внешнем последовательном ПЗУ (2), в адресное пространство микропроцессорного ядра (3) с использованием шины данных (8), шины адреса (9) и шины управления (10). При этом в момент готовности к работе внешнего последовательного ПЗУ (2) с СнК снимают сигнал сброса, производят автоматическую инициализацию одного или нескольких регистров управления контроллера (7) внешнего последовательного ПЗУ (2) с использованием конечного автомата устройства (1) прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ (2), содержащем данные (например, начальный код загрузки в наилучшем варианте изобретения), в адресное пространство микропроцессорного ядра и ожидают от микропроцессорного ядра (3) поступления запросов на чтение, а при получении запроса на чтение и адреса от микропроцессорного ядра (3) по шине управления (10) и по шине адреса (9) соответственно с использованием конечного автомата устройства (1) производят соответствующую запись в регистр данных (14) и, быть может, в регистр управления (13) контроллера (7) внешнего последовательного ПЗУ (2), после этого с использованием конечного автомата (6) устройства (1) выполняют чтение регистра данных (14) контроллера (7) внешнего последовательного ПЗУ (2) до тех пор, пока полностью не считают слово данных, которое затем передают в микропроцессорное ядро (3) по шине данных (8) устройства (1) для использования в микропроцессорном ядре. Чтение-передача данных могут осуществляться в течение всего времени работы компьютерной системы. При этом предполагают, что основная часть обращений во внешнее последовательное ПЗУ (2) со стороны микропроцессорного ядра (3) происходит во время загрузки.
Предполагается, что СнК выводится из состояния сброса в тот момент, когда внешнее последовательное ПЗУ (2) (например, Serial Flash) уже готово к работе. При этом микросхема Flash памяти готова к работе не сразу после подачи на нее питания, а по прошествии некоторого времени, описанного в спецификации на эту микросхему. Под состоянием сброса понимается состояние микросхемы при активном уровне сигнала сброса - сигнала Reset. Соответственно, вывод системы из состояния сброса - это перевод сигнала сброса в неактивное состояние.
После снятия сигнала сброса конечный автомат (6) устройства (1) производит автоматическую инициализацию контроллера (7) внешнего последовательного ПЗУ (2) (например, SPI-контроллера). Под инициализацией контроллера внешнего последовательного ПЗУ подразумевается инициализация его регистра управления (13). При этом возможны реализации, при которых контроллер внешнего последовательного ПЗУ содержит не один, а несколько регистров управления. В этом случае конечный автомат (6) устройства (1) должен произвести автоматическую инициализацию всех регистров управления контроллера (7) внешнего последовательного ПЗУ (2). По окончании инициализации конечный автомат (6) устройства (1) ожидает запросы от микропроцессорного ядра (3) на чтение внешнего последовательного ПЗУ (2) по адресам, отображаемым в адресное пространство микропроцессорного ядра (3). При получении от микропроцессорного ядра запроса на чтение (запрос на чтение определяется по состоянию сигналов шины управления (10) и сопровождается получением адреса соответственно по шине адреса (9)) конечный автомат (6) устройства (1) производит запись в регистр (14) данных контроллера (7) внешнего последовательного последовательного ПЗУ (2) команды чтения ПЗУ (2), а также адреса, по которому производится чтение ПЗУ (2). Возможны также такие реализации контроллера (7) внешнего последовательного ПЗУ, при которых конечному автомату (6) устройства (1) необходимо также производить запись в регистр управления (13) контроллера (7) внешнего последовательного ПЗУ (2) для управления передачей команды чтения и адреса во внешнее последовательное ПЗУ (2).
После этого конечный автомат (6) устройства (1) ожидает появления кадра данных, считанных из ПЗУ (2), в регистре (14) данных контроллера (7) внешнего последовательного ПЗУ (2). Наличие данных в регистре (14) данных может быть определено либо по результатам периодических опросов регистра (12) состояния контроллера (7) последовательного ПЗУ (2), либо по состоянию каких-либо контрольных сигналов (например, сигналов прерывания), выходящих из контроллера (7) последовательного ПЗУ (2).
После того как кадр считанных данных появляется в регистре (14) данных контроллера (7) последовательного ПЗУ, конечный автомат (6) устройства (1) производит считывание этих данных и проверяет, полностью ли было считано запрашиваемое слово данных. Если слово данных было считано не полностью, конечный автомат (6) устройства (1) ожидает появления в регистре (14) данных контроллера (7) внешнего последовательного ПЗУ (2) следующего кадра данных.
После того как запрашиваемое слово данных полностью считано из внешнего последовательного ПЗУ (2) и сформировано в регистре (4) считанных данных устройства (1), это слово данных передается в микропроцессорное ядро (3) по шине данных (8). При этом передача слова данных может сопровождаться изменением состояния сигналов шины управления (10).
После того как слово данных передано микропроцессорному ядру, конечный автомат (6) устройства (1) переходит в состояние ожидания следующего запроса на чтение.
Для реализации описанного способа загрузки в качестве внешнего последовательного ПЗУ (2) может быть использована SPI Flash память, а в качестве контроллера (7) внешнего последовательного ПЗУ (2) - контроллер SPI, а в качестве последовательного интерфейса к внешнему последовательному ПЗУ (2) используют SPI интерфейс. В этом случае ПЗУ (2) необходимо иметь всего лишь три порта для приема и передачи данных по проводам шины (15):
- вход (SC - Serial Clock) для тактирования передаваемых или принимаемых данных;
- вход (SI - Serial Input) для передачи данных от контроллера (7) к микросхеме ПЗУ (2), по этой линии побитно передают адрес, данные для записи и коды команд управления микросхемой ПЗУ (2);
- выход (SO - Serial Output) для передачи данных от ПЗУ (2) к контроллеру (7), по этой линии побитно передают читаемые данные, а также информацию о состоянии ПЗУ (2).
Управление микросхемой внешнего последовательного ПЗУ (2) производится контроллером (7) внешнего последовательного ПЗУ (2) посредством набора команд этого ПЗУ. Контроллер (7) последовательного ПЗУ (2) содержит набор вспомогательных регистров, среди которых можно выделить регистр данных (14), регистр управления (13) и регистр состояния (12). При этом возможны реализации, при которых контроллер (7) внешнего последовательного ПЗУ (2) содержит несколько регистров управления и состояния, а также отдельно регистры считанных и записываемых данных. В упрощенном виде, для считывания данных из внешнего последовательного ПЗУ (2) требуется выполнить следующую последовательность операций:
- инициализация регистра управления (13);
- запись команды чтения в регистр данных (14);
- запись адреса данных, располагающихся в ПЗУ, в регистр данных (14);
- периодический опрос регистра состояния (12), пока не станет активным признак завершения цикла чтения кадра данных из последовательного ПЗУ (2);
- считывание данных из регистра данных (14).
Конечный автомат (6) устройства (1) в частном случае исполнения может быть представлен в виде двух автоматов - основного и вспомогательного, при этом вспомогательный автомат будет предназначен исключительно для взаимодействия с микропроцессорным ядром (3) по выбранному протоколу и управляется основным автоматом.
Фактически можно считать, что реализуется способ передачи данных в описанной выше компьютерной системе, включающей в себя систему на кристалле и внешнее последовательное ПЗУ, при этом система на кристалле включает в себя микропроцессорное ядро, контроллер внешнего последовательного ПЗУ для параллельной передачи слов данных, считанных из последовательного ПЗУ и устройство прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ, в адресное пространство микропроцессорного ядра с обеспечением возможности осуществления обмена данными между ним и процессорным ядром путем использования внутрисистемного интерфейса системы на кристалле, содержащего набор шин, включающий в себя, по меньшей мере, шину данных, шину адреса и шину управления, а названное устройство прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ, в адресное пространство микропроцессорного ядра содержит регистр считанных данных, регистр адреса и конечный автомат устройства прямого отображения адресов с возможностью осуществления прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ, в адресное пространство микропроцессорного ядра, преобразования запросов на чтение со стороны микропроцессорного ядра в последовательность обращений к контроллеру внешнего последовательного ПЗУ и передачи по шине данных последовательности слов данных, считанных из внешнего последовательного ПЗУ, в микропроцессорное ядро. При подключении системы на кристалле в момент готовности к работе внешнего последовательного ПЗУ с системы на кристалле снимают сигнал сброса, производится автоматическая инициализация, по меньшей мере, одного регистра управления контроллера внешнего последовательного ПЗУ с использованием конечного автомата устройства (1) прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ, в адресное пространство микропроцессорного ядра, при этом ожидают от микропроцессорного ядра поступления запросов на чтение данных. При получении запроса на чтение очередного слова данных и его адреса от микропроцессорного ядра по шине управления и по шине адреса соответственно с использованием конечного автомата устройства прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ, в адресное пространство микропроцессорного ядра производят соответствующие записи в регистр данных контроллера последовательного ПЗУ. После этого с использованием конечного автомата устройства прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ, в адресное пространство микропроцессорного ядра выполняют чтение регистра состояния контроллера последовательного ПЗУ до тех пор, пока в регистре данных контроллера последовательного ПЗУ не появится очередной кадр данных, считанный из внешнего последовательного ПЗУ. Затем производят чтение регистра данных контроллера последовательного ПЗУ, повторяя последние две операции чтения регистра статуса и чтения регистра данных до тех пор, пока полностью не считают запрашиваемое слово данных, которое затем передают в микропроцессорное ядро по шине данных устройства прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ, в адресное пространство микропроцессорного ядра для использования в микропроцессорном ядре, до момента окончания получения запросов на чтение данных из ПЗУ от микропроцессорного ядра. При реализации способа в качестве последовательного ПЗУ можно использовать микросхему Flash памяти с последовательным интерфейсом, например с SPI интерфейсом, а в качестве контроллера (7) использовать SPI контроллер. Реализация описанного способа передачи данных может использоваться тогда, когда в качестве данных из внешнего последовательного ПЗУ считывают инструкции начального кода загрузки (в наилучшем варианте осуществления изобретения), а также после окончания передачи инструкций начального кода загрузки компьютерной системы с продолжением использования внешнего последовательного ПЗУ в качестве источника данных. При осуществлении способа сигнал сброса снимают с компьютерной системы в тот момент, когда внешнее последовательное ПЗУ уже готово к работе, при этом микропроцессор обращается к данным во внешнем последовательном ПЗУ по заранее известному для используемой архитектуры микропроцессора адресу. При получении запроса на чтение и адреса от микропроцессорного ядра по шине управления и по шине адреса соответственно с использованием конечного автомата устройства прямого отображения адресов производят соответствующую запись также, по крайней мере, в один регистр управления контроллера внешнего последовательного ПЗУ. Для определения наличия кадра данных, считанного из последовательного ПЗУ, в регистре данных контроллера внешнего последовательного ПЗУ используют контрольные сигналы прерываний контроллера внешнего последовательного ПЗУ.
Осуществление описанной компьютерной системы и способа передачи данных (в т.ч. загрузки) с использованием устройства (1) прямого отображения адресов данных, располагающихся во внешнем последовательном ПЗУ, в адресное пространство микропроцессорного ядра обеспечит следующие преимущества:
- исключение необходимости наличия в СнК внутренних блоков памяти - начального микроПЗУ в контроллере (7) внешнего последовательного ПЗУ (2) и внутреннего ОЗУ для загрузки;
- использование последовательного интерфейса (например, SPI) между СнК и микросхемой внешнего последовательного ПЗУ (2) (например, микросхемой Flash памяти), что уменьшает количество выводов СнК;
- возможность использования широкого спектра микросхем ПЗУ (2) (в частности, Flash памяти) за счет малого количества требований к данным микросхемам;
- упрощение программного доступа к данным в ПЗУ (2) за счет прямого отображения ПЗУ в адресное пространство микропроцессора и исключения таким образом необходимости подачи специальных команд для чтения ПЗУ (2).
Отсутствие известных технических решений, позволяющих обеспечить указанные выше преимущества, позволяет считать, что заявленные решения отвечают требованиям патентоспособности.