Видео: АСУ, транзисторы
Все что вы хотели узнать и стеснялись спросить про то как устроен компьютер, что такое программа, операционная система и тот "новый язык для анализа данных", который обгоняет другие во всевозможных рейтингах популярности. Далеко не каждый может представить себе как электроны приводят в движение не просто электродвигатель кулера на процессоре, а объекты в памяти и записи в базах данных. Ровно об этом сейчас начнется повествование. Наливайте чай/кофе, приступаем...
Для начала бы разобраться чем так заняты программисты и где их место в огромном поле всевозможной инженерной деятельности.
Автоматизированные системы обработки информации
Программисты и все их братья по огромному цеху информационных технологий заняты созданием и развитием автоматизированных систем обработки информации. Сперва ознакомимся с понятием автоматизированной системы. Это система, где для совершения какого-либо вычисления кроме участия техники определенная роль выделяется для человека. В любом случае, услышав слово «автоматизированная», необходимо сразу вспомнить о том, что где-то там присутствует человек. Разумеется, мы не ошибемся, если в качестве примера вспомним микрокалькулятор.
Не забудем упомянуть про программное обеспечение, установленное на вашем компьютере. За редким исключением все это можно отнести к калькуляторам. От приложения Калькулятор недалеко и до приложения Adobe Photoshop. Несомненно, сложность и применяемый математический аппарат Adobe Photoshop не входит ни в какое сравнение с калькулятором, но по сути в обоих случаях человек вводит данные и получает результат.
В задачах управления объектами предусмотрена замкнутая система, в которой циркулируют данные. Под управлением объектом понимается контроль его параметров. А контроль это не просто просмотр, но и доведение их до нужных значений. Вычислитель занимается тем, что вырабатывает управляющее воздействие на объект управления. Это есть результат его вычислений.
Разница между требуемым значением параметра (цель управления) и показанием датчика называется ошибкой управления. Задачей вычислителя является выработка необходимого воздействия на управляемый объект с целью уменьшения ошибки управления. Как только разница между требуемым и текущим показанием параметров оказывается равна нулю — считается что цель управления достигнута. На данном рисунке роль человека — это ввод требуемого показания параметра.
Примеры автоматизированных систем в технике
Без конкретики все может выглядеть сложно, поэтому вот примеры. На беспилотный летательный аппарат возложена задача поддержания нужной высоты полета.
Рассмотренный ранее контур управления должен быть обязательной частью летательного аппарата если речь идет об автоматике и обычно работает так:
- Пользователь закладывает в память нужные величины высот полета. Они выставляются на вход вычитателя.
- На второй вход вычитателя поступают показания датчика высоты полета.
- В случае разности этих величин на вычислитель поступает ненулевая ошибка управления, которая участвует вычислении управляющего воздействия на поворотный механизм руля высоты.
- Как только требуемая высота полета совпадает с измеренной высотой — ошибка управления становится равной нулю, что прямым образом сказывается на управляющем воздействии.
Подобным же образом устроены автоматические системы управления климатом, скоростью транспортных средств и другие автоматические системы управления.
Что делают разработчики ?
Настало время определить — для чего же нужны разработчики.
Эта схема автоматизированной системы позволит без труда это понять:
- Во первых, они необходимы при разработке алгоритмов обработки данных и вместе с этим для описания алгоритмов на языках программирования. Таких программистов назовем разработчиками программного обеспечения.
- Во вторых, они нужны для разработки архитектур вычислительных систем в случае недостаточной производительности существующих архитектур. Таких разработчиков назовем разработчиками аппаратных платформ.
- В-третьих, инженеры разработчики необходимы при проектировании перспективных систем передачи данных.
Такая классификация весьма условна, в данном случае она нужна для того чтобы описать весь спектр применения интеллекта и навыков разработчиков. Программистами в этой классификации называют первых в этом списке.
Может показаться, что разработка программы для настольного компьютера гораздо проще чем разработка программы для современного авиалайнера. Такое заблуждение рассеивается само собой когда узнаешь, что настольный компьютер это широко распространенное стандартное устройство, настолько стандартное, что находит применение во многих сферах. Авиастроение не исключение. В отличии от своего настольного собрата, бортовой компьютер имеет корпус, защищенный от пыли, перепадов давления, температур.
Также обычные кабели передачи данных не подходят для работы в непростых условиях. Для бортовых компьютеров предусмотрены хорошо защищенные многожильные кабели. Как это не удивительно, это все те же интерфейсы передачи данных к которым мы все привыкли.
Итак, задача программистов — разработка или использование существующих алгоритмов обработки данных. Также в круг обязанностей входит описание алгоритмов на формальном языке, понятном вычислителю.
А теперь транзисторы.
С этого элемента все начинается. Компьютеры, к которым мы все привыкли работают с уровнями напряжений, принимающими абстрактные значения «0» и «1». Для безошибочного взаимодействия всех частей компьютера друг с другом диапазоны напряжений стандартизированы. Устройства с такой системой сигналов называется цифровой.
Цифровое устройство
Для построения цифровой схемы любой сложности чаще всего применяется транзисторы двух видов.
Разница в их работе заключается лишь в том какой уровень напряжения на затворе открывает электрическую цепь между истоком и стоком. Транзистор pmos закрыт при уровне напряжения 1, при этом транзистор nmos открыт.
В случае уровня напряжения на затворе ноль pmos транзистор открывается, nmos транзистор закрывается.
Далее неспеша построим процессор и начнем запускать программы. Продолжение следует...