Проектируем свой компьютер: начало
1. Начало
Ключ к пониманию сложных систем
Самое первое, что нам предстоит освоить — это такое понятие как абстракция. Абстракции — это с чем мы сталкиваемся каждый день. Рассмотрим эту идею на примере автомобиля. Что бы им управлять, нам не обязательно вдаваться в детали его устройства. Мы просто воздействуем на руль, педали и коробку передач и машина реагирует соответствующим образом. Если смотреть чуть глубже можно понять, что автомобиль состоит из двигателя, трансмиссии, электронной начинки, системы охлаждения и шасси.
Каждый из этих элементов сам свою очередь состоит из каких-то частей. Например, электронная начинка может включать в себя аккумулятор, провода, фары и регулятор напряжения. Мы можем пойти еще дальше и задаться вопросом — а как устроен аккумулятор? Я не буду здесь касаться этого вопроса, если интересно, — можете загуглить :)
Главную идею вы уловили — наш разум не в состоянии переварить устройство сложных механизмов сразу во всех деталях. Тут то нам на помощь и приходит абстракция — из всей системы мы выхватываем только интересующий нас набор элементов и рассматриваем их взаимодействие друг с другом, игнорируя их внутреннее строение. Благодаря этому мы можем создавать сложные системы и понимать как они устроены.
Уровни абстракции компьютера
Теперь перейдем непосредственно к компьютеру и его уровням абстракции.
- Cофт (программное обеспечение)
- Архитектура
- Микроархитектура
- Логические элементы
- Девайсы (транзисторы и т.д.)
- Физика
Итак, на физическом уровне мы имеем заряженные частицы (электроны и протоны), которые взаимодействуют между собой силами притягивания и отталкивания. На уровне девайсов мы видим устройства, которые организовывают движение электронов таким образом, что бы они выполняли полезную работу (вычисления). Первые два уровня являются скорее прерогативой инженеров-электронщиков, поэтому мы сразу перейдем к уровню логических элементов, абстрагируясь от их физического строения, а отталкиваясь от этого уровня можно будет двигаться выше по этой лестнице абстракций.
Логический элемент (мы будем называть его также логическим гейтом или просто гейтом — от английского logic gate) функционально представляет из себя довольно простое устройство. Он имеет вход и выход. На вход мы подаем некий сигнал или несколько сигналов и в ответ на это он выдает определенный сигнал на выход. Важно знать, что всего у нас есть два типа сигналов: их условно называют единица и ноль либо истина и ложь. Далее мы поймем почему. Логических элементов существует несколько типов. Рассмотрим их подробнее.
AND
Рассмотрим гейт, который называют AND (И).