ВУЗ:
Составители:
Рубрика:
Микропроцессорные системы и программное обеспечение в средствах связи
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
- …
- следующая ›
- последняя »