В большинстве встроенных систем процессор будет в конечном итоге отвечать за определение состояния различных устройств, которые преобразуют внешние раздражители в логические напряжения цифрового уровня (например, при нажатии кнопки штырь становится низким; в противном случае он будет находиться на высоком уровне). ), и управляющие устройства, которые преобразуют напряжения логического уровня непосредственно в действие (например, когда на выводе высокий уровень, загорается индикатор; когда на низком уровне он гаснет). Раньше у процессоров не было общего ввода-вывода, а вместо этого приходилось использовать общую шину для связи с устройствами, которые могли обрабатывать запросы ввода-вывода и устанавливать или сообщать о состоянии внешних цепей. Хотя этот подход не был полностью лишен преимуществ (один процессор мог контролировать или контролировать тысячи каналов на общей шине), он был неудобен во многих реальных приложениях.
Хотя процессор может управлять любым количеством входов и выходов, используя четырехпроводную шину SPI или даже двухпроводную шину I2C, во многих случаях число сигналов, которые процессор должен будет контролировать или контролировать, составляет достаточно мал, чтобы проще было включить схему для контроля или управления некоторыми сигналами непосредственно на самой микросхеме. Хотя специализированное аппаратное обеспечение для взаимодействия часто будет иметь выводы только для вывода или только для ввода (человек, выбирающий микросхемы аппаратного интерфейса, будет знать, сколько сигналов необходимо контролировать и сколько нужно контролировать), можно использовать конкретное семейство процессоров в некоторых приложениях, которые требуют, например, 4 входа и 28 выходов, а также другие приложения, требующие 28 входов и 4 выходов. Вместо того, чтобы требовать использования разных частей в приложениях с разным балансом между входами и выходами, проще просто иметь одну деталь с входами, которые могут быть сконфигурированы как входы или выходы по мере необходимости.