Расчет скорости передачи данных прерывания - PullRequest
0 голосов
/ 22 декабря 2011

В настоящее время я изучаю прерывания, но не понимаю, как вы рассчитываете скорость передачи данных для вопроса ниже.У меня есть ответы, но я понятия не имею, как вы туда попали.Если бы кто-то мог объяснить мне, как он рассчитывается, он был бы очень признателен.

Вот вопрос ...

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

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

тактовых циклов для ответа на прерывание = 15 команд, выполненных в ISR = 70 средних тактовых циклов на инструкцию= 5 битов на элемент данных = 32
тактовая частота = 10 МГц

Вопросы

a) Сколько времени в микросекундах для ответа на прерывание от интерфейса, запустите прерываниеподпрограмма обслуживания (ISR) и возврат к прерванной программе?

б) Какова максимальная скорость передачи данных в Кбит / с?

Ответы

а) 36,5 - я понимаюэто

б) 876,7 - ????

1 Ответ

1 голос
/ 22 декабря 2011

Поскольку каждый ISR занимает 36,5 мкс, абсолютное максимальное число , которое может произойти за секунду, составляет 27 397,2603.

В каждом ISR обрабатывается 32 бита данных.

Следовательно, 27397,2603 * 32 бита = 876,712,33 бита в секунду

...