|
|||
Запоминающие устройства ⇐ ПредыдущаяСтр 5 из 5 Запоминающие устройства с неявно выраженной адресацией.
Служат для хранения очередей данных и называются также буферными регистрами.
FIFO
FIFO – FIRST IN FIRST OUT – первым вошел первым вышел (синоним очередь в столовой).
Ставится между источником и приемником данных, когда потери информации не допустимы, а приемник не может быстро обработать данные. Строится на основе регистровых файлов с раздельной адресацией записи и чтения. Сигнал «поставить в очередь», поступая на вход WE разрешения записи, записывает этим данные, стоящие на входе DI в тот регистр памяти, номер которого, СТ1 – счетчик хвоста. По срезу этого импульса «поставить в очередь» выходной код СТ1 увеличивается на 1, определяя адрес записи следующих данных. При сигнале «извлечь из очереди», поданном на RE – разрешения чтения, на выходе DO появляется слово, которое хранилось в регистре по адресу, указанному выходным кодом СТ2 – счетчика головы. По срезу импульса «извлечь из очереди» код этого счетчика СТ2 увеличивается на 1, подготавливая к чтению следующее слово. Если коды на выходах счетчиков СТ1 хвоста и СТ2 головы раны, что определяет компаратор, то на выходе ЛЭ И1 будет сигнал «буфер полон», если последним обращением к буферу был импульс «поставить в очередь». Это значит что больше записывать в буфер нельзя, надо срочно подключать еще один буфер FIFO. Если же при СТ1=СТ2 последним было «извлечь из очереди», то данный буфер FIFO пуст, и обращаться за данными к этому буферу нет смысла.
LIFO
LIFO – LAST IN FIRST OUT – последним вошел первым вышел (синоним – магазин автомата, поленица дров, STACK – стек, копна)
Используется когда процесс обработки данных по одной задаче прерывается обработкой данных по другой, более срочной задаче, тогда данные прерванного задания записываются в буфер LIFO. Если же теперь текущее задание прерывается еще более срочным заданием, то данные для просто текущего задания заносятся «поверх» данных несрочного. Если теперь еще более срочное задание прервано сверх срочным, то данные для еще более срочного запишутся в буфер LIFO сверху данных просто срочного задания и т.д. Счетчик СТ здесь реверсивный. Адрес, по которому производится запись в стек, всегда на 1 больше, чем адрес, по которому выполняется чтение из стека. Эту задачу выполняет сумматор SM в режиме INCREMENT – увеличение на 1, приращение 1. Если на выходах счетчика все нули, то схема ИЛИ даст сигнал «стек пуст». Если на выходах счетчика все единицы, то схема И даст сигнал «стек полон». По нулевому адресу записаны всегда самые несрочные данные.
|
|||
|