Очень-очень-очень широкий вопрос. Для того чтобы ответить на него с нужной для программиста полнотой нужно высшее техническое (желательно радиотехническое) образование. Идите его получать))) В процессе обучения вы не поучите все ответы, но хотя бы поймете где их искать и сможете их понять. Хотите попробовать сами? Начните с Харрис и Харрис "Цифровая схемотехника и архитектура компьютера". Благо в сети есть официально бесплатный экземпляр. Понимать будете больше и сможете сформулировать вопросы дальше.