Главное Свежее Вакансии   Проекты
Комментируемое:
83 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

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

ОглавлениеНачалоЭлементарная ячейка памятиРегистрДекодер и оперативная память (скоро)Арифметико-логическое устройство (скоро)

1. Начало


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


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

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

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

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


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

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

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

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

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 (или).


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

A B X

0 0 0

0 1 1

1 0 1

1 1 1

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

NOT


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


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

A X

0 1

1 0

XOR


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


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

A B X

0 0 0

0 1 1

1 0 1

0 0 0

NAND


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


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

A B X

0 0 1

0 1 1

1 0 1

1 1 0

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

Источник

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Первые Новые Популярные
Комментариев еще не оставлено
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.