Расчет скорости передачи данных прерывания

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

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

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

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

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

Вопросы

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

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

ответы

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

б) 876,7 -????

1 ответ

Решение

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

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

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

Другие вопросы по тегам