В цифровой электронике FIFO (аббревиатура от «первым пришел — первым вышел») представляет собой цифровую электрическую цепь, которая хранит входящие данные и выводит сохраненные данные в том порядке, в котором они были получены. электроника|Электронные FIFO обычно используются для буферизации и управления потоками между аппаратными устройствами или между программным обеспечением и аппаратными устройствами, которые в течение конечных интервалов работают с разными скоростями передачи данных. FIFO в основном состоит из пары счетчиков, которые служат регистрами адреса памяти для чтения и записи, массива адресуемой памяти, а также логики состояния и управления. Память обычно является двухпортовой, чтобы обеспечить одновременные операции чтения и записи FIFO, и состоит из регистрового файла или двухпортового ОЗУ (оперативного запоминающего устройства).
===Регистры адреса памяти===
Электронный FIFO обычно реализуется как кольцевой буфер, который использует два регистра адреса памяти (MAR) для хранения адресов («Указатель (компьютерное программирование) | указатели» на) следующих ячеек памяти, к которым осуществляется доступ:
* Чтение MAR (RMAR) — содержит следующее место для чтения данных из
* Запись MAR (WMAR) — содержит следующее место для записи данных
Каждый MAR реализован как счетчик (цифровой)|счетчик, счетчик которого увеличивается каждый раз при передаче данных (WMAR увеличивается при записи FIFO; RMAR увеличивается при чтении FIFO). Первоначально оба MAR указывают на первую ячейку памяти, и FIFO пуст. FIFO заполняется, когда адрес записи достигает адреса чтения, и пуст, когда адрес чтения достигает адреса записи. Следовательно, когда FIFO заполняется или опустошается, адреса памяти для чтения и записи становятся равными.
Чтобы различать пустую и полную память, каждый MAR имеет дополнительный бит сверх того, что необходимо для адресации памяти. Все выходные биты MAR, за исключением нумерации бит#Самый значащий бит|Старший значащий бит (MSB) (т. е. младшие биты), служат адресом памяти. И наоборот, все выходные биты, включая старший бит, используются для контроля уровня FIFO (количества сохраненных слов). В тех случаях, когда MAR используют двоичные счетчики, текущий уровень FIFO представляет собой разницу между их двоичными выходными значениями: level=WMAR-RMAR. Для других выходных кодировок (например, кода Грея) перед вычислением разницы выходные данные MAR необходимо преобразовать в двоичные. В любом случае справедливо следующее:
* FIFO пуст, когда RMAR и WMAR равны
* FIFO полон, когда RMAR и WMAR различаются только старшими битами
===Флаги состояния===
FIFO обычно выводит сигналы состояния, которые указывают, достигнуты ли определенные пороговые значения уровня данных. Типичные примеры таких флагов состояния включают «полный», «пустой», «наполовину полный», «почти полный» и «почти пустой».
===Синхронный FIFO===
Синхронный FIFO — это электронный FIFO, в котором для чтения и записи используются общие часы. Поскольку операции чтения и записи выполняются в одном и том же тактовом домене, флаги могут генерироваться либо с помощью арифметики указателей, либо с помощью специального счетчика для мониторинга уровня FIFO.
===Асинхронный FIFO===
Асинхронный FIFO — это электронный FIFO, который использует разные такты для чтения и записи. Чтобы избежать ошибок из-за метастабильности, асинхронные FIFO обычно используют код Грея для указателей чтения и записи, а флаги генерируются посредством арифметики указателей.
== См. также ==
* Подход «дырявого ведра»
* Кольцевой буфер
В цифровой электронике FIFO (аббревиатура от «первым пришел — первым вышел») представляет собой цифровую электрическую цепь, которая хранит входящие данные и выводит сохраненные данные в том порядке, в котором они были получены. электроника|Электронные FIFO обычно используются для буферизации и управления потоками между аппаратными устройствами или между программным обеспечением и аппаратными устройствами, которые в течение конечных интервалов работают с разными скоростями передачи данных. FIFO в основном состоит из пары счетчиков, которые служат регистрами адреса памяти для чтения и записи, массива адресуемой памяти, а также логики состояния и управления. Память обычно является двухпортовой, чтобы обеспечить одновременные операции чтения и записи FIFO, и состоит из регистрового файла или двухпортового ОЗУ (оперативного запоминающего устройства).
===Регистры адреса памяти===
Электронный FIFO обычно реализуется как кольцевой буфер, который использует два регистра адреса памяти (MAR) для хранения адресов («Указатель (компьютерное программирование) | указатели» на) следующих ячеек памяти, к которым осуществляется доступ: * Чтение MAR (RMAR) — содержит следующее место для чтения данных из * Запись MAR (WMAR) — содержит следующее место для записи данных Каждый MAR реализован как счетчик (цифровой)|счетчик, счетчик которого увеличивается каждый раз при передаче данных (WMAR увеличивается при записи FIFO; RMAR увеличивается при чтении FIFO). Первоначально оба MAR указывают на первую ячейку памяти, и FIFO пуст. FIFO заполняется, когда адрес записи достигает адреса чтения, и пуст, когда адрес чтения достигает адреса записи. Следовательно, когда FIFO заполняется или опустошается, адреса памяти для чтения и записи становятся равными.
Чтобы различать пустую и полную память, каждый MAR имеет дополнительный бит сверх того, что необходимо для адресации памяти. Все выходные биты MAR, за исключением нумерации бит#Самый значащий бит|Старший значащий бит (MSB) (т. е. младшие биты), служат адресом памяти. И наоборот, все выходные биты, включая старший бит, используются для контроля уровня FIFO (количества сохраненных слов). В тех случаях, когда MAR используют двоичные счетчики, текущий уровень FIFO представляет собой разницу между их двоичными выходными значениями: level=WMAR-RMAR. Для других выходных кодировок (например, кода Грея) перед вычислением разницы выходные данные MAR необходимо преобразовать в двоичные. В любом случае справедливо следующее: * FIFO пуст, когда RMAR и WMAR равны * FIFO полон, когда RMAR и WMAR различаются только старшими битами
===Флаги состояния===
FIFO обычно выводит сигналы состояния, которые указывают, достигнуты ли определенные пороговые значения уровня данных. Типичные примеры таких флагов состояния включают «полный», «пустой», «наполовину полный», «почти полный» и «почти пустой».
===Синхронный FIFO=== Синхронный FIFO — это электронный FIFO, в котором для чтения и записи используются общие часы. Поскольку операции чтения и записи выполняются в одном и том же тактовом домене, флаги могут генерироваться либо с помощью арифметики указателей, либо с помощью специального счетчика для мониторинга уровня FIFO. ===Асинхронный FIFO=== Асинхронный FIFO — это электронный FIFO, который использует разные такты для чтения и записи. Чтобы избежать ошибок из-за метастабильности, асинхронные FIFO обычно используют код Грея для указателей чтения и записи, а флаги генерируются посредством арифметики указателей.
== См. также == * Подход «дырявого ведра» * Кольцевой буфер
«Электронный паспорт из поликарбоната» (также известный как «паспорт из поликарбоната» или «паспорт из ПВХ») — это тип паспорта, который содержит биометрический паспорт | страницу биоданных, сделанную из поликарбонат, прочный пластик, вместо ламинированного бумажного листа. Слои поликарбоната...
«Shkodra Elektronike» — албанский дуэт | музыкальный дуэт, состоящий из Коле Лака и Беатрис Джерджи. Они должны принять участие в конкурсе песни «Евровидение-2025» в Базеле от Албании.
== История ==
И Коле Лака, и Беатрис Джерджи родились в Шкодре, но выросли в Италии. Впервые они начали работать...
Università degli Studi eCampus (сокращенно Uni-eCampus) — итальянский университет дистанционного обучения со штаб-квартирой в Новедрате, провинция Комо в Ломбардии, и еще 45 филиалами.
Uni-eCampus был основан 30 января 2006 года и признан государством. Университет поддержал «Фонд eCampus for...