Проектируем свой компьютер: начало

Проектируем свой компьютер: начало

Оглавление

  1. Начало
  2. Элементарная ячейка памяти
  3. Регистр
  4. Декодер и оперативная память
  5. Арифметико-логическое устройство

1. Начало

Ключ к пониманию сложных систем

Самое первое, что нам предстоит освоить – это такое понятие как абстракция. Абстракции – это с чем мы сталкиваемся каждый день. Рассмотрим эту идею на примере автомобиля. Что бы им управлять, нам не обязательно вдаваться в детали его устройства. Мы просто воздействуем на руль, педали и коробку передач и машина реагирует соответствующим образом. Если смотреть чуть глубже можно понять, что автомобиль состоит из двигателя, трансмиссии, электронной начинки, системы охлаждения и шасси.

Каждый из этих элементов сам свою очередь состоит из каких-то частей. Например, электронная начинка может включать в себя аккумулятор, провода, фары и регулятор напряжения. Мы можем пойти еще дальше и задаться вопросом – а как устроен аккумулятор? Я не буду здесь касаться этого вопроса, если интересно, – можете загуглить :) 

Главную идею вы уловили – наш разум не в состоянии переварить устройство сложных механизмов сразу во всех деталях. Тут то нам на помощь и приходит абстракция - из всей системы  мы выхватываем только интересующий нас набор элементов и рассматриваем их взаимодействие друг с другом, игнорируя их внутреннее строение. Благодаря этому мы можем создавать сложные системы и понимать как они устроены.

Уровни абстракции компьютера

Теперь перейдем непосредственно к компьютеру и его уровням абстракции. 

  • Cофт (программное обеспечение)
  • Архитектура
  • Микроархитектура
  • Логические элементы
  • Девайсы (транзисторы и т.д.)
  • Физика

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

Логический элемент (мы будем называть его также логическим гейтом или просто гейтом – от английского logic gate) функционально представляет из себя довольно простое устройство. Он имеет вход и выход. На вход мы подаем некий сигнал или несколько сигналов и в ответ на это он выдает определенный сигнал на выход. Важно знать, что всего у нас есть два типа сигналов: их условно называют единица и ноль либо истина и ложь. Далее мы поймем почему. Логических элементов существует несколько типов. Рассмотрим их подробнее. 

AND

Рассмотрим гейт, который называют AND (И). 

Гейт AND

Как он работает? У него два входа (A и B) и один выход (X). Если на оба входа подаются единицы, то и на выходе гейт будет выдавать единицу. В любых других случаях на выходе мы будем иметь ноль. Более наглядно работу данного гейта можно изобразить используя таблицу (такие таблицы еще называют таблицами истинности). 

A

B

X

0

0

0

0

1

0

1

0

0

1

1

1

Его неспроста назвали И – если приглядеться, можно увидеть, что он представляет собой физическое воплощение логической операции конъюнкции. Конъюнкция, как гласит Википедия, – логическая операция, по смыслу максимально приближенная к союзу «и».

Ничего  сложного на самом деле тут нет – если мы слышим некое утверждение, например “2+2=4 И небо-голубое” то мы интуитивно чувствуем, что в целом это утверждение является истинным, поскольку обе его части истины. В остальных же случаях, когда одна или обе части утверждения ложны, – понятно что и в целом утверждение будет ложным. 

OR

Теперь рассмотрим такой гейт как OR (или). 

Гейт OR

И тут же ознакомимся с его таблицей истинности 

A

B

X

0

0

0

0

1

1

1

0

1

1

1

1

Если снова обратится к нашей интуиции, то мы поймем что логическая операция ИЛИ ведет себя именно таким образом. Если в утверждении с союзом “или” хотя бы одна часть будет истина то и само утверждение в целом будет истинно (“2*2=4 ИЛИ овчарки умеют летать”), если же обе части утверждения ложны то и само утверждение будет ложным. 

NOT

Еще один гейт – NOT (НЕ). 

Гейт NOT

Как мы видим у него только один вход и выход. Сам этот элемент как бы отрицает сигнал на входе. Единица превращается в ноль, а ноль наоборот в единицу. 

A

X

0

1

1

0

XOR

Гейт XOR (исключающее ИЛИ) 

Гейт XOR

Таблица истинности

A

B

X

0

0

0

0

1

1

1

0

1

1

1

0

NAND

Гейт NAND (НЕ-ИЛИ).

Гейт NAND

Этот логический гейт выдает ноль только когда на обоих его входах единица. В остальных же случаях на выходе гейта мы имеем единицу. 

A

B

X

0

0

1

0

1

1

1

0

1

1

1

0

Все эти логические элементы по-сути являются некими кирпичами. Комбинируя гейты друг с другом можно построить вычислительную систему любой сложности.

 
Телефон: +7 499 444 17 50 | 8 800 444 17 50 бесплатно по России | E-mail: school@codeby.email
Все курсы Партнерам Возврат Контакты