Входно-изходни данни синхронни и асинхронни - какво е това
В компютърните системи синхронният вход и синхронният изход се разбират като процеси на вход-изход на проби от данни, при които времевите интервали (периодичност) на предаване на проби към вход или изход се запазват изрично. Входно-изходният синхрон се осигурява от някакъв вид хардуерна поддръжка (таймери и различни други периферни устройства със средства за синхронизация и използване на буфериране на данни за изравняване на входно-изходния поток от данни). В същото време терминът синхронен вход-изход не означава задължителното присъствие на сигнал за синхронизация на входно-изходния интерфейс, а синхронизмът може да се осигури както чрез вътрешна, така и чрез външна синхронизация.
Обикновено в процесорните и измервателните системи посоката на потока от данни (към вход или изход) се разглежда спрямо компютъра (процесора), който е в центъра на разглежданата архитектура. По-специално, ADC и цифровите (дискретни) входни показания се считат за входни данни, а DAC и цифровите (контролни) изходни показания се считат -theme-font:minor-latin; mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi; mso-ansi-language:RU;mso-fareast-language:EN-US;mso-bidi-language:AR-SA">– изходни данни.
При асинхронен вход и изход времевите интервали (периодичност) за предаване на показанията към входа или изхода не се запазват. В същото време данните влизат на входа или изхода със скоростта на самия интерфейс за пренос на данни, с непредсказуеми забавяния на буферирането, без да се запазват никакви времеви интервали. По-специално това означава за програмиста, че когато използваасинхронни I/O функции, няма смисъл да се сравняват моментите на извикване на асинхронната I/O функция с физическите моменти на изпълнение на тази операция „от другата страна на интерфейса“ (такова сравнение има смисъл само със статистически метод за обработка на данни). Фактът, че е извършена асинхронна изходна операция, може да се провери чрез потвърждение (ако тази изходна операция има потвърждение или потвърждението може да бъде получено чрез последваща операция за въвеждане на данни). При асинхронен I/O буферирането на данни, споменато по-горе, може да играе обратната роля и да увеличи несигурността във времето за доставка на данни при липса на механизъм за синхронизация и контрол на трафика на данни.
По време на синхронно събиране в системи за събиране на данни софтуерната среда от приемащата страна често получава данни асинхронно, но ако е известно, че получените данни са събрани без загуба и синхронно (например ADC в синхронен режим), тогава програмно тези данни се считат за синхронни, например, когато се използват спектрални DSP алгоритми. По същия начин, когато се реализира синхронен изход чрез буфер, предаващата страна асинхронно запълва буфера (с контрол на неговото запълване), а приемащата страна (например DAC) интерпретира получените данни като синхронни.
Когато I/O несинхронизираните обикновено могат да бъдат малка част от даден период на придобиване, се използва терминът квазисинхронен I/O. В този режим установеният среден период на събиране на данни се наблюдава на фона на възможна фазова нестабилност на периодичния I/O процес. Квази-синхронният режим обикновено е доста приемлив за системи за управление, но за вход може да се приложи квази-синхронен режим на придобиване (например ADC), където не се използваспектрална обработка на сигнала. Квазисинхронният режим не позволява възстановяване на оригиналната форма на вълната, тъй като извадките от данни не са строго ограничени във времето, с изключение на случая, когато случайната стойност на фазовата нестабилност е количествено известна и този фактор се взема предвид при възстановяване на формата на вълната.
С историческото развитие на нивата на софтуер и хардуер се появяват все повече и повече междинни софтуерни и хардуерни нива, в резултат на което се появяват все повече и повече асинхронни интерфейси и внедряването на синхронни I / O интерфейси става по-сложно.