ВУЗ:
Составители:
Рубрика:
Микропроцессорные системы и программное обеспечение в средствах связи
222
последний обрабатываемый отсчёт. Например, на рис. 4.5, a) указатель
содержит адрес 20044, в то время как на рис. 4.5, б) он содержит адрес
20045. Когда появляется новый отсчёт, он заменяет самый «старый»
отсчёт в массиве, и указатель перемещается на один адрес вперед.
Круговые буферы эффективны, потому что когда появляется новый от-
счёт, должно быть изменено
только одно значение – значение указате-
ля.
Чтобы управлять круговым буфером, необходимы четыре пара-
метра. Первый – указатель, который указывает начало кругового буфе-
ра в памяти (в этом примере, 20041). Второй – указатель на конец мас-
сива (например, 20048), или переменная, которая содержит его длину
(например, 8). Третий параметр – шаг адресации памяти. На рис. 4.5
размер шага
равен единице, например: ячейка с адресом 20043 содер-
жит один отсчёт, ячейка с адресом 20044 содержит следующий отсчёт,
и так далее. Часто значение шага исключительно важно. Например, ад-
ресация может относиться к байтам, и каждый отсчёт может требовать
двух или четырех байт, чтобы вместить его значение. Соответственно,
размер шага должен быть равен
двум или четырём. Эти три параметра
определяют размер и конфигурацию кругового буфера, и не будут ме-
няться в течение выполнения программы. Четвертый параметр – указа-
тель на самый последний отсчёт, должен изменяться с каждым появле-
нием нового отсчёта. Другими словами, должна использоваться про-
граммируемая логика, которая контролирует, как обновляется значение
четвертого параметра
, основываясь на значении первых трех пара-
метров. Так как эта логика весьма проста, она должна быть очень бы-
стродействующей. ПЦОС должны быть оптимизированы для примене-
ния управляющих круговых буферов так, чтобы достичь самой высокой
из возможных скоростей работы.
Пусть для каждого нового отсчёта в схеме на рис. 4.5, ПЦОС дол-
жен
выполнить следующую операцию :
Микропроцессорные системы и программное обеспечение в средствах связи
последний обрабатываемый отсчёт. Например, на рис. 4.5, a) указатель
содержит адрес 20044, в то время как на рис. 4.5, б) он содержит адрес
20045. Когда появляется новый отсчёт, он заменяет самый «старый»
отсчёт в массиве, и указатель перемещается на один адрес вперед.
Круговые буферы эффективны, потому что когда появляется новый от-
счёт, должно быть изменено только одно значение – значение указате-
ля.
Чтобы управлять круговым буфером, необходимы четыре пара-
метра. Первый – указатель, который указывает начало кругового буфе-
ра в памяти (в этом примере, 20041). Второй – указатель на конец мас-
сива (например, 20048), или переменная, которая содержит его длину
(например, 8). Третий параметр – шаг адресации памяти. На рис. 4.5
размер шага равен единице, например: ячейка с адресом 20043 содер-
жит один отсчёт, ячейка с адресом 20044 содержит следующий отсчёт,
и так далее. Часто значение шага исключительно важно. Например, ад-
ресация может относиться к байтам, и каждый отсчёт может требовать
двух или четырех байт, чтобы вместить его значение. Соответственно,
размер шага должен быть равен двум или четырём. Эти три параметра
определяют размер и конфигурацию кругового буфера, и не будут ме-
няться в течение выполнения программы. Четвертый параметр – указа-
тель на самый последний отсчёт, должен изменяться с каждым появле-
нием нового отсчёта. Другими словами, должна использоваться про-
граммируемая логика, которая контролирует, как обновляется значение
четвертого параметра, основываясь на значении первых трех пара-
метров. Так как эта логика весьма проста, она должна быть очень бы-
стродействующей. ПЦОС должны быть оптимизированы для примене-
ния управляющих круговых буферов так, чтобы достичь самой высокой
из возможных скоростей работы.
Пусть для каждого нового отсчёта в схеме на рис. 4.5, ПЦОС дол-
жен выполнить следующую операцию :
222
Страницы
- « первая
- ‹ предыдущая
- …
- 220
- 221
- 222
- 223
- 224
- …
- следующая ›
- последняя »
