Потоковые операции подчиненного устройства



страница1/2
Дата29.05.2018
Размер0,63 Mb.
  1   2
Расширенные операции шины Авалон

Потоковая операция

Потоковые операции подчиненного устройства


Операция чтения подчиненного устройства, выполняющего

потоковые операции

Операция записи подчиненного устройства, выполняющего

потоковые операции
Операции мастера, выполняющего потоковые операции.

Операции чтения на шине Авалон со временем ожидания (с латентностью).

Операция чтения с латентностью для подчиненного устройства.

Операция чтения с латентностью для мастера.

Сигналы Управления шины Авалон.

Сигнал запроса прерывания.

Логика управления сигналом сброса.

Сигнал начала операции.

----------------

Расширенные операции шины Авалон

Потоковая операция

Потоковые операции создают открытый канал между мастером, выполняющим потоковые операции, и подчиненным устройством, выполняющим потоковые операции, чтобы выполнять последовательные передачи данных. Этот канал позволяет передавать данные между парой мастер - подчиненный, поскольку данные становятся доступными, без того, чтобы мастер непрерывно обращался к регистрам состояния в подчиненном внешнем устройстве, с целью определить, может ли подчиненное устройство посылать или получать данные. Потоковые операции позволяют максимизировать производительность пары мастер - подчиненный, при условии что не возникает переполнение данными или выхода за нижний предел буфера обмена, на подчиненном внешнем устройстве(например, ситуации когда буфер обмена заполнен или считан весь).

В режиме потоковой операции, простые сигналы управления потоком данных передаются от подчиненного устройства мастеру, всякий раз, когда подчиненное устройство имеет новые данные (или может принимать новые данные), модуль шины Авалон автоматически передает данные. Режим потоковой операции устраняет то ограничение по производительности, которое обычно возникает для мастера, когда он вынужден проверять регистры состояния подчиненного устройства для каждой операции пересылки данный, потому что теперь мастер не должен обращаться к подчиненному устройству и проверять его регистры состояния для каждой операции. Это уменьшает сложность проекта внешних устройств типа мастер с ограниченной функциональной сложностью, таких как обычные контроллеры DMA, которые могут иметь только простые сигналы управления потоком данных и счетчик для операций пересылки данных между подчиненными периферийными устройствами по возрастающим адресам в памяти подчиненных устройств.

Потоковые операции подчиненного устройства

Подчиненный интерфейс для периферийных устройств выполняющее потоковые операции представляет собой три сигнала в дополнение к тем, что использовались для основных подчиненных операций: readyfordata, dataavailable и endofpacket. Порт подчиненного устройства выполняющий потоковые операции определен как подчиненный порт, который использует один или большее количество этих сигналов. Подчиненное устройство указывает, что готово принять операцию записи от модуля шины Авалон, устанавливая readyfordata. Подчиненное устройство указывает, что оно может выдать данные для операции чтения от модуля шины Авалон, устанавливая dataavailable. Когда эти сигналы сбрасываются, то такое состояние вынуждает модуль шины Авалон (и также порт тот мастера, который инициализировал данную потоковую операцию) ждать, пока подчиненное устройство не будет готово продолжить операцию.

Этот режим работы, в котором модуль шины Авалон только инициализирует операцию, в случае когда сигналы dataavailable или readyfordata установлены, применяется только в при операции между портом мастера выполняющего потоковые операции и портом подчиненного устройства выполняющего потоковые операции. Операция от порта мастера, который не имеет возможности выполнять потоковые операции, может быть выдана к подчиненному порту в любое время, независимо от того способен ли подчиненный порт выполнять потоковые операции или нет. Например, модуль шины Авалон может выдать операцию к подчиненному устройству от мастера, не выполняющего потоковые операции, (CPU) к порту подчиненного устройства, выполняющего потоковые операции, даже в то время как другая операция мастера, выполняющего потоковые операции (контроллер DMA) находится в состоянии ожидания, потому что для нее сигнал dataavailable - сброшен.

В течение любой операции, порт подчиненного устройства выполняющее потоковые операции может устанавливать сигнал endofpacket, который пропускают через модуль шины Авалон к внешнему устройству мастера так, чтобы он мог ответить. Интерпретация сигнала endofpacket зависит от проекта, и внешнее устройство - мастер должно иметь возможность соответственно ответить на этот сигнал. Сигнал endofpacket не гарантирует, что модуль шины Авалон остановит поток операций к подчиненному порту. Например, endofpacket может использоваться как пакет delineator(разграничитель пакетов в непрерывном потоке данных), так что внешнее устройство мастер знает, где начинаются и где заканчиваются пакеты в более длинном потоке данных. Или в другом варианте сигнал, endofpacket может быть предназначен для того, чтобы прервать поток операций по пересылке данных, и заставить мастера возвратиться позже, чтобы продолжить любые дальнейшие операции чтения или записи.



Операция чтения подчиненного устройства, выполняющего потоковые операции

Внешнее подчиненное устройство, выполняющее потоковые операции, устанавливая сигнал dataavailable указывает, что оно готово к операции чтения. Когда сигнал dataavailable сброшен, модуль шины Авалон не будет инициализировать операцию чтения. Когда сигнал dataavailable установлен, модуль шины Авалон может начать операцию чтения, устанавливая chipselect по переднему фронту синхрочастоты, подобно любой другой операции чтения Авалон. Синхронизация и последовательность выдачи сигналов read_n, byteenable_n и readdata те же самые как и нормальной операция чтения подчиненного устройства. В соответствии с назначениями, указанными в PTF файле, операция может использовать время предустановки и/или циклы ожидания, включая циклы ожидания, определяемые периферийным устройством.

После того, как операция заканчивается, и если внешнее устройство не имеет больше данных для последующих операций чтения, то оно должно сбросить сигнал dataavailable так, чтобы модуль шины Авалон не пытался инициализировать другую операцию чтения на следующем переднем фронте синхрочастоты. Когда внешнее устройство сбросит dataavailable, модуль шины Авалон вынужден сбросить сигналы chipselect, read_n, address и byteenable_n для этого подчиненного порта. Поэтому, модуль шины Авалон не может начинать другую операцию чтения с этим подчиненным портом, пока внешнее устройство снова не установит сигнал dataavailable. Если порт мастера, выполняющего потоковые операции, инициализирует операцию чтения (или продолжает инициализировать последовательные операции чтения) в то время как dataavailable подчиненного порта сбрасывается, то порт мастера просто вынужден ждать, пока подчиненный порт не сможет передавать данные снова.

Функция endofpacket не определена в Спецификации Шины Авалон; сигнал просто пропускают через модуль шины Авалон к порту мастера. Следующие рекомендации – не являются частью Спецификации Шины Авалон, но могут помочь понять, как порт мастера может фиксировать сигнал endofpacket от подчиненного порта. Подчиненный порт должен установить endofpacket в то же самое время, как он устанавливает достоверный сигнал readdata так, чтобы мастер мог фиксировать endofpacket вместе с readdata. Подчиненный порт может сбрасывать endofpacket для каждой операции, или периферийное устройство может устанавливать endofpacket неопределенно долго и ждать, пока мастер его не сбросит. В примере 14 показана операция чтения подчиненного устройства, выполняющего потоковые операции. В этом примере предположим, что внешнее устройство мастера Авалон, выполняющее потоковые операции, инициализирует последовательность потоковых операций начинающихся в то время, как подчиненный порт установит сигнал dataavailable. Кроме того, предположим, что мастер продолжает инициализировать операции чтения в непрерывной последовательности. Через некоторое время, подчиненный порт сбросит dataavailable, вынуждая модуль шины Авалон (и порт мастера) ждать. Позже подчиненный порт снова установит dataavailable, и модуль шины Авалон продолжит последовательность подчиненных операций чтения. В этом примере, обратите внимание на то, что данные читаются из одного и того же адреса подчиненного устройства, которое выставляет новые данные относительно каждой операции. Это - обычная операция для внешнего устройства, типа UART или SPI, управляемого через регистры состояния. В примере 14 показан подчиненный порт, который устанавливает сигнал endofpacket вместе с выдачей последнего блока данных и прежде, чем он сбросит dataavailable. Это - не требование, поскольку endofpacket не имеет никакого отношения к dataavailable, ни к тому, как внешнее устройство мастер отвечает на него. Последовательность операций заканчивается, когда модуль шины Авалон сбрасывает chipselect и read_n, в то время как dataavailable все еще остается установленным, что означает, что порт мастера, а не подчиненное устройство, выбрал режим завершения последовательности операций.



Пример 14. Операция чтения подчиненного устройства, выполняющего потоковые операции

Этот пример демонстрирует соответствующие PTF параметры:

Нет установленных циклов ожидания Read_Wait_States = "0"



Нет предустановки Setup_Time = "0"


Описание временных соотношений сигналов

(A) Первый цикл шины начинается на переднем фронте синхрочастоты.



  1. Устанавливаются, защелкнутые на регистре, достоверные выходные сигналы от шины

Авалон - address и read_n, к подчиненному устройству.

(C) Модуль шины Авалон декодирует address, затем устанавливает chipselect.



  1. Подчиненный порт устанавливает достоверный readdata перед следующим передним

фронтом синхрочастоты. Модуль шины Авалон фиксирует readdata на следующем

переднем фронте синхрочастоты.



  1. Для каждого цикла шина, что chipselect и read_n остаются установленными,

подчиненный порт производит достоверные readdata. (В этом примере, address остается

постоянным, но это не может иметь место для всех периферийных проектов).



  1. Подчиненный порт может установить сигнал endofpacket в любое время, в то время как он

устанавливает достоверные readdata. (В этом примере, подчиненное устройство сбросит

endofpacket после одного цикла шины, но это может варьироваться для разных

периферийных проектов.


  1. Подчиненное устройство, выполняющее потоковые операции, сбрасывает dataavailable,

вынуждая модуль шины Авалон отложить любые последующие потоковые операции

чтения. Обратите внимание, что read_n и chipselect все еще устанавливаются, указывая,

на то, что порт мастера, выполняющего потоковые, операции все еще ожидает окончания

операции.

(H) Модуль шины Авалон сбрасывает address, read_n и chipselect в ответ на dataavailable.

(I) Через некоторое время, подчиненный порт устанавливает dataavailable.



  1. В ответ на dataavailable, модуль шины Авалон подтверждает адрес, read_n и chipselect.

(Если бы не было потоковой операции, ожидающей продолжения, то эти сигналы остались

бы неопределенными).

(K) Новая операция потокового чтения начинается на переднем фронте синхрочастоты.

(L-M) Подчиненный порт устанавливает достоверные данные readdata перед передним

фронтом синхрочастоты для каждого цикла шины, так что chipselect и read_n остаются

установленными.



  1. Модуль шины Авалон сбрасывает read_n и chipselect, указывая на то, что пока нет

Необходимости для выполнения потоковых операций

  1. В этом примере сигнал dataavailable остается установленным, указывая, что другая

потоковая операция может начаться в любом более позднем цикле шины.

Операция записи подчиненного устройства, выполняющего потоковые операции

Внешнее подчиненное устройство, выполняющее потоковые операции указывает на то, что оно может принимать операцию записи, устанавливая readyfordata. Модуль шины Авалон никогда не будет инициализировать операцию записи, когда сигнал readyfordata находится в неактивном состоянии. Когда сигнал readyfordata установлен, модуль шины Авалон может начать операцию записи, устанавливая chipselect и address на переднем фронте синхрочастоты, подобном любой другой операции чтения Авалон. Синхронизация и последовательность выдачи сигналов write_n, byteenable_n и writedata выполняются так же, как и нормальная операция чтения подчиненного устройства. В соответствии с назначениями, указанными в PTF файле, операция может использовать время предустановки и/или циклы ожидания, включая циклы ожидания, определяемые периферийным устройством.

После того, как операция заканчивается и, если внешнее устройство не может принять большее количество данных в последующих операциях записи, то оно должно сбросить readyfordata так, чтобы модуль шины Авалон не инициализировал другую операцию записи на следующем переднем фронте синхрочастоты. Когда внешнее устройство сбросит readyfordata, модуль шины Авалон вынужден сбросить chipselect, write_n, address и byteenable_n для этого подчиненного порта. Поэтому, модуль шины Авалон не может начать другую операцию записи для этого подчиненного порта, пока внешнее устройство снова не установит readyfordata. Если порт мастера, выполняющего потоковые операции, инициализирует операцию записи (или продолжает инициализировать последовательные операции записи) в то время как readyfordata подчиненного порта сбрасывается, то порт мастера просто вынужден ждать, пока подчиненный порт не сможет снова принимать данные. Функция endofpacket не определена в Спецификации Шины Авалон, этот сигнал просто пропускают через модуль шины Авалон к порту мастера. Следующие рекомендации – не являются частью Спецификации Шины Авалон, но могут помочь понять, как порт мастера может фиксировать сигнал endofpacket от подчиненного порта. Подчиненный порт должен установить endofpacket как можно скорее после того, как он зафиксирует writedata от модуля шины Авалон. Подчиненный порт должен установить endofpacket прежде, чем будет сброшен chipselect, чтобы порта мастера мог зафиксировать endofpacket в течение той же самой операции шины. Подчиненный порт может сбрасывать endofpacket для каждой операции, или внешнее устройство может устанавливать endofpacket неопределенно долго и ждать когда его сбросит мастер. Если внешнее подчиненное устройство, выполняющее потоковые операции требует времени хранения (очень редкий случай), то endofpacket должен быть задержан до тех пор, пока модуль шины Авалон не сбросит chipselect (даже после того, как будет сброшен write_n).

В примере 15 показаны потоковые операции записи подчиненного устройства. В этом примере, предположим, что внешнее устройство мастера выполняющего потоковые операции Авалон инициализирует последовательность потоковых операций, начинающихся в то время, когда подчиненный порт установит readyfordata. Кроме того, предположим, что мастер продолжает инициализировать операции записи в непрерывной последовательности. Через некоторое время, подчиненный порт сбросит readyfordata, вынуждая модуль шины Авалон (и порт мастера) ждать. Позже подчиненный порт снова устанавит readyfordata, и модуль шины Авалон продолжит последовательность операций записи подчиненного устройства.

1 В этом примере, данные записываются по постоянному адресу подчиненного устройства, что является обычным для периферийных устройств, управляемых через регистры, например UART или SPI.
В примере 15 показано, как подчиненный порт устанавливает сигнал endofpacket во время последовательности операций записи. Интерпретация зависит от реализации проекта мастера и подчиненного устройства. Это - не требование, поскольку endofpacket не имеет никакого отношения к readyfordata, ни к тому, как внешнее устройство мастер отвечает на него. Последовательность операций заканчивается, когда модуль шины Авалон сбрасывает chipselect и write_n, в то время как readyfordata все еще остается установленным, что означает, что порт мастера, а не подчиненное устройство, выбрал режим завершения последовательности операций.

Пример 15. Операция записи подчиненного устройства выполняющего потоковые операции

Этот пример демонстрирует соответствующие PTF параметры:

Нет установленных циклов ожидания

Нет предустановки Setup_Time = "0"

Нет времени хранения






Описание временных соотношений сигналов

(A) Первый цикл шины начинается на переднем фронте синхрочастоты

(B) Устанавливаются, защелкнутые на регистре, достоверные выходные сигналы от шины

Авалон - address и read_n, к подчиненному устройству.

(C) Модуль шины Авалон декодирует адрес, затем устанавливает chipselect.

(D) В случае необходимости, подчиненное устройство устанавливает endofpacket перед предыдущим передним фронтом синхрочастоты для текущей операции шины. В этом примере, подчиненное устройство сбросит endofpacket после одного цикла шина, но это может варьироваться в зависимости от периферийного проекта.



  1. Подчиненный порт фиксирует writedata и endofpacket на переднем фронте

синхрочастоты.

(F-G) Для каждого цикла шины, что chipselect и write_n остаются установленными, модуль

шины Авалон выдает достоверные writedata, и подчиненный порт должен фиксировать их

на следующем переднем фронте синхрочастоты. В этом примере, address удерживается

постоянным, но это может иметь место не для всех периферийных проектов.


  1. Подчиненное устройство, выполняющее потоковые операции, сбрасывает readyfordata,

вынуждая модуль шины Авалон откладывать любые последующие потоковые операции записи. Обратите внимание, что write_n, chipselect и writedata все еще остаются установленые, указывая то, что порт мастера выполняющего потоковые операции все еще ожидает окончания операции. В ответ, модуль шины Авалон сбросит address, write_n, chipselect и writedata.

(I) Через некоторое время, подчиненный порт снова устанавливает readyfordata.

(J) В ответ на readyfordata, модуль шины Авалон подтверждает address, write_n, chipselect и writedata. Обратите внимание, что если бы не было потоковой операции, ожидающей продолжения, то эти сигналы остались бы неопределенными. Новая операция потоковой записи начинается на следующем переднем фронте синхрочастоты.

(K-L) Подчиненный порт фиксирует writedata на переднем фронте синхрочастоты. Для каждого цикла шины, пока chipselect и write_n остаются установленным, модуль шины Авалон выставляет достоверные writedata.

(M) Модуль шины Авалон сбросил write_n и chipselect, указывая что пока, нет данных для потоковых операций. В этом примере readyfordata остается установленным, указывая, что другая потоковая операция может начинаться в любом более позднем цикле шином.

Операции мастера, выполняющего потоковые операции.

Интерфейс для внешних устройств мастера выполняющего потоковые операции почти идентичен интерфейсу, используемому для нормальных операций мастера Авалон. Интерфейс мастера, выполняющего потоковые операции, представляет только один дополнительный сигнал endofpacket, который может или не может быть необходимым в зависимости от периферийного проекта. Синхронизация и последовательность выдачи сигналов write_n, read_n, address, writedata, readdata, byteenable_n и других сигналов следуют за тем же самым правилам как и нормальные операции мастера. Мастер, выполняющий потоковые операции, определен как порт мастера, который имеет назначение "Is_Stream_Read" или "Is_Stream_Write" или оба назначения, объявленные в файле PTF.

Если модулю шины Авалон требуется, чтобы мастер ждал его в любое, требуемое ему время, то модуль шины Авалон устанавливает сигнал запроса ожидания - waitrequest, и порт мастера должен ему повиноваться. Есть несколько причин, по которым мастеру, вероятно, придется ждать. Например, другой мастер может обращаться к целевому подчиненному порту, или подчиненный порт может требовать циклы ожидания, или порт подчиненного устройства выполняющего потоковые операции не может выдать или принять новые данные, и так далее. Причина установки сигнала запроса ожидания не касается порта мастера, потому что в любом случае, порт мастера не может прерывать операцию, как только она началась. Порт мастера должен только правильно выполнить свои действия по сигналу запроса ожидания. Логика внутри модуля шины Авалон скрывает детали от порта мастера, что упрощает периферийный проект для внешних устройств мастера.

Если сигнал endofpacket присутствует, то его пропускают от подчиненного порта до порта мастера в течение каждой операции. Порт мастера фиксирует endofpacket на последнем переднем фронте синхрочастоты как для операции чтения, так и для операции записи. Интерпретация сигнала endofpacket зависит от периферийного проекта. Например, сигнал endofpacket может использоваться как пакет delineator(разграничитель пакетов в непрерывном потоке данных), так что внешнее устройство мастер знает, где начинаются и где заканчиваются пакеты в более длинном потоке данных. В другом случае, главное внешнее устройство может быть разработано так, что по значению сигнала endofpacket, оно может определить, когда нужно инициализировать другую операцию.

Модуль шины Авалон не имеет встроенной блокировки времени доступа для порта мастера, независимо от того является ли это внешнее устройство потоковам или нет. Порт мастера должен остановиться, для пока сигнал запроса ожидания остается установленным, и нет никакого другого способа прервать операцию. Поэтому, если мастер нуждается в методе передачи данных к или от подчиненного устройства только по определенному условию, например, когда подчиненное устройство готово, пара master-slave должна использовать некоторое соглашение, которое использует или сигнал endofpacket или регистр состояния внутри подчиненного внешнего устройства, или оба этих условия.

Функция endofpacket не определена в Спецификации Шины Авалон, сигнал просто пропускают от подчиненного порта к порту мастер через модуль шины Авалон. Следующие рекомендации – не являются частью Спецификации Шины Авалон, но могут помочь понять, как порт мастера может фиксировать сигнал endofpacket от подчиненного порта. Порт мастера может фиксировать сигнал endofpacket на последнем переднем фронте синхрочастоты для текущей операции. Это - тот фронт синхрочастоты, для которого модуль шины Авалон сбросил сигнал запроса ожидания, и порт мастера готов закончить операцию. Когда и почему подчиненный порт сбросит сигнал endofpacket, зависит от проекта внешнего устройства. Однако, обратите внимание, что порт мастера только видит достоверный endofpacket сигнал в течение потоковой операции при адресации соответствующего подчиненного порта. В примере 16 показаны потоковые операции чтения, выполняемые мастером, за которыми следуют потоковые операции, в которых оба сигнала и запрос ожидания и endofpacket установлены в одно и тоже время в течение операции.



Пример 16. Мастер, выполняющий потоковые операции, производит операции чтения, за которыми следуют операции записи.





Описание временных соотношений сигналов

(A) Первый цикл шины начинается на переднем фронте синхрочастоты.

(B) Порт мастера устанавливает address, write_n и достоверные writedata.

(C) Модуль шины Авалон устанавливает waitrequest перед следующим передним фронтом синхрочастоты, вынуждая порт мастера ждать.

(D) Сигнал waitrequest установлен на переднем фронте синхрочастоты, так порта мастера удерживает сигналы address, write_n и writedata постоянными.

(E) Модуль шины Авалон сбрасывает waitrequest.

(F) Модуль шины Авалон фиксирует writedata на переднем фронте синхрочастоты.

(G) Порт мастера, выполняющего потоковые операции, сохраняет address и установленный write_n и выдает новые writedata. Обратите внимание, что в зависимости от периферийного проекта сигнал address может не оставаться постоянным.

(H) В случае необходимости, порт мастера фиксирует endofpacket на последнем переднем фронте синхрочастоты текущей операции. Порт мастера заканчивает потоковую операцию записи, сбрасывает address, write_n и writedata.

(I) Порт мастера в течение следующего цикла шины начинает операцию чтения, устанавливая read_n и достоверное значение сигналов address.

(J) Модуль шины Авалон устанавливает waitrequest, чтобы указать, что он не может возвращать достоверные данные на следующем переднем фронте синхрочастоты.

(K) В конечном счете, модуль шины Авалон сбрасывает waitrequest и выставляет достоверные readdata. В этом примере модуль шины Авалон устанавливает endofpacket, но интерпретация этого режима должна соответствовать внешнему устройству мастера выполняющего потоковые операции.

(L) Порт мастера фиксирует readdata и endofpacket, в случае необходимости, на переднем фронте синхрочастоты.

(M) Порт мастера сохраняет address и read_n, установленными для другой потоковой операции чтения, поэтому модуль шины Авалон выдает достоверные readdata.

(N) Порт мастера сбрасывает read_n и address и операция заканчивается.

Операции чтения на шине Авалон со временем ожидания (с латентностью).

Операции чтения Авалон со временем ожидания(с латентностью) увеличивают полосу пропускания для синхронных внешних устройств, которые требуют нескольких циклов времени ожидания для первого доступа, но потом могут возвращать данные каждый цикл шины. Не существует операции записи Авалон со временем ожидания, потому что операции записи Авалон не требуют какого либо подтверждения того, что сигнал возвратился от подчиненного порта. Латентные операции позволяют мастеру выдать запрос чтения, направленный к несвязанной задаче, и получить данные позже. Несвязанная задача может начинать другую операцию чтения, даже при том, что данные от первой операции все еще не возвращены. Это особенно часто употребляется для операций выборки команды и операций чтения DMA, для которых доступ к последовательным адресам является нормой. В этих случаях, мастер CPU или DMA может делать предвыборку ожидаемых данных, таким образом сохраняя синхронную память активной и сокращая среднее время доступа. Обратите внимание, что латентность отличается от циклов ожидания, и латентность и циклы ожидания могут происходить в течение одной операции. Например, если подчиненный порт без латентности требует, чтобы один цикл ожидания был бы представлен для того, чтобы он мог выдавать достоверные данные, то в лучшем случае порт может завершать только одну операцию за два такта синхрочастоты. С другой стороны, мастер, работающий с латентными устройствами, может поддерживать среднюю норму доступа к данным, близко к одной операции за цикл шины, при доступе к данным из латентного подчиненного порта без циклов ожидания. Даже при том, что первый доступ имеет начальное время ожидания в несколько циклов синхрочастоты, мастер может производить новую операцию чтения на каждом цикле синхрочастоты, и поэтому может получать достоверные данные на каждом цикле синхрочастоты. Основа операций с латентностью - разъединение стадии адреса и стадии данных при передаче данных по шине, и обеспечение дополнительного сигнала управления - datavalid, который сообщает о том, что из подчиненного порта возвратились достоверные данные. Выдача сигналов адреса и сигналов управления для того, чтобы инициализировать операцию, и фиксация приходящих данных проводится независимо, и по-возможности одновременно. После того, как модуль шины Авалон фиксирует адрес, мастер может выполнить любые другие операции, например, большее количество операций чтения. В течение стадии данных сразу или чуть позже, подчиненный порт устанавливает datavalid и возвращает достоверные данные.



Операция чтения с латентностью для подчиненного устройства.

Латентный подчиненный порт должен быть объявлен с назначением Read_Latency в системе PTF файла. Порт подчиненного устройства Авалон с латентностью, отличной от нуля требует один или более циклов шины для того, чтобы выдать данные после того, как адрес и сигналы управления будут зафиксированы от модуля шины Авалон. После того, как подчиненный порт фиксирует адрес, модуль шины Авалон может немедленно инициализировать новую операцию, даже перед тем как достоверные readdata возвратятся от предыдущей операции. Таким образом, не латентные операции подчиненного устройства Авалон заканчиваются только тогда, когда подчиненное устройство выдаст достоверные данные на шинах readdata модулю шины Авалон, и поэтому не латентные подчиненные устройства могут одновременно обрабатывать только одну операцию. Подчиненные порты, имеющие латентность чтения отличную от нуля, могут иметь в любое время многократные операции, находящиеся в стадии ожидания. Операции чтения подчиненного устройства с латентностью можно представить как операции, имеющие две стадии: стадию адреса и стадию латентности (времени ожидания).

Синхронизация и последовательность сигналов в течение стадии адреса идентичны сигналам для не латентных операций шины Авалон, кроме сигнала readdata. Подчиненный порт может использовать время предустановки и циклы ожидания, включая peripheralcontrolled циклы ожидания. После любой предустановки и/или циклов ожидания, подчиненный порт должен фиксировать address на последнем переднем фронте синхрочастоты для данной операции. Учтите, что для операций чтения без латентности, достоверные значения readdata всегда устанавливаются на последнем переднем фронте синхрочастоты. Для операций с латентностью, сигнал readdata не будет установлен в течение стадии адреса. Сразу же после того, как стадия адреса завершается, может быть инициализирована новая операция на сигналах chipselect, address, read_n и be_n (если они присутствуют).

В течение стадии латентности, внешнее устройство обрабатывает адрес по за несколько циклов синхрочастоты и, затем, выдает readdata после установленного времени ожидания. Если время латентности(ожидания) для чтения внешнего устройства - N, то подчиненный порт должен представить достоверные readdata на N-м переднем фронте синхрочастоты, после фронта, на котором был зафиксирован адрес. Например, если подчиненный порт имеет время латентности (ожидания) для чтения - 1 (то есть, объявление в PTF файле: Read_Latency = 1), то подчиненный порт представит достоверные данные на следующем(то есть, первом) переднем фронте синхрочастоты после фиксации адреса. Это будет фиксированное время латентности, и подчиненный порт обязан установить достоверные readdata через N циклов шины после того, как он зафиксирует адрес. Если внешнее устройство требует переменного количества времени, чтобы представить данные, подчиненный порт должен использовать управляемые внешним устройством циклы ожидания в течение стадии адреса. Стадия латентности и операция шины закончатся после того, как подчиненное устройство представит свои данные на readdata. В примере 17 показоно несколько передач данных между модулем шины Авалон и латентным подчиненным портом с PTF назначением Read_Latency=2. Этот подчиненный порт использует управляемые внешним устройством циклы ожидания.

Обратите внимание, что подчиненные операции чтения с латентностью, отличной от нуля, не будут гарантированно иметь последовательные расположения адресов. Например, если в системе есть несколько мастеров шины, то подчиненный порт не имеет представления, в каком порядке модуль шины Авалон предоставляет каждому мастеру доступ к шине. Также обратите внимание на то, что к подчиненному порту с латентностью чтения отличной от нуля, могут обращаться порты мастера, которые не знают о латентности, и такой случай не требует никаких специальных доработок проекта. Размещает таких мастеров на шине, модуль шины Авалон просто вынуждает их ждать, когда подчиненное устройство будет возвращать достоверные данные в каждой операции. Это ограничивает производительность определенной пары мастер – подчиненное устройство, при выполнении одновременно только одной операции.


Каталог: pub -> binary -> altera -> nios tut -> Avalon
pub -> Учебно-методический комплекс «Современный терроризм: сущность, причины, модели и механизмы противодействия»
pub -> Обзор портовой инфраструктуры Каспийского моря и порта Оля
pub -> О состоянии и мерах по созданию основной экспозиции в музее икн по истории возникновения и развития города Зеленодольска и района
pub -> 9. примерный перечень вопросов, входящих в экзаменационные билеты государственного экзамен
pub -> Михаил смирнов
pub -> Конституционно-правовой статус республики южная осетия и вариативные модели его развития
Avalon -> Краткий обзор Термины и Концепции Цикл шины Передача данных по шине Передача данных потоком по шине
Avalon -> Операции мастера Авалон


Поделитесь с Вашими друзьями:
  1   2


База данных защищена авторским правом ©grazit.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал