Как работает компьютер на самом деле? В этом видео простым языком объясняется фундаментальная основа IT: как нули и единицы превращаются в текст, изображения, команды и программы.
*https://www.youtube.com/watch?v=oOiyHq9MiAM
**https://300.ya.ru/v_1uWC5iV1
таймкоды
00:00:01 Введение
- Рекомендованные книги для начинающих IT-специалистов: «Код: тайный язык информатики» Чарльза и «Как на самом деле работает компьютер» Мэттью Джастиса.
- Видео основано на этих книгах и дополнительных источниках.
- Цель видео — расширить кругозор начинающих IT-специалистов и интересующихся устройством компьютеров.
00:01:23 История Тима и Веры
- Тим тайно влюблён в Веру и хочет общаться с ней после отбоя.
- Он пытается использовать лазерную указку и фонарик для передачи сообщений, но безуспешно.
- Вдохновившись фильмом про моряков, Тим узнаёт об азбуке Морзе.
00:03:07 Азбука Морзе
- Азбука Морзе использует точки и тире для кодирования информации.
- Тим адаптирует азбуку Морзе для передачи сообщений с помощью фонарика.
- Для упрощения декодирования Тим группирует коды букв по количеству символов.
00:05:18 Двоичный код
- Код Морзе является двоичным, так как каждый элемент включает один из двух компонентов: точку или тире.
- Тим строит древовидную структуру для упрощения декодирования.
00:06:05 Шрифт Брайля
- Луи Брайль разработал шрифт Брайля для слабовидящих людей.
- В шрифте Брайля каждый символ кодируется выпуклыми точками в прямоугольнике.
- Шрифт Брайля также относится к двоичной системе.
00:07:55 Помощь на экзамене
- Тим использует лампу на стене кабинета для передачи информации Вере.
- Принцип работы лампы аналогичен карманному фонарику.
- Тим планирует использовать выключатель для отправки сообщений.
00:08:53 Телеграф
- Телеграф использует электромагниты для передачи сигналов.
- На стороне отправителя находится ключ, а на стороне получателя — электромагнит.
- Для передачи сигналов на длинные расстояния используются повторители или реле.
00:09:52 Изобретение реле
- В первой половине XIX века реле было изобретено несколькими учёными.
- Реле использовалось как переключатель и усилитель электрического сигнала.
- Джозеф Генри демонстрировал работу реле на эксперименте с двумя электрическими цепями.
00:10:44 Принцип работы реле
- Слабый электромагнит управлял сильным, замыкая и размыкая цепь.
- Реле усиливало слабый сигнал, преобразуя его в сильный.
- Это позволило передавать телеграфные сообщения на большие расстояния.
00:12:40 История чисел
- Числа были придуманы для бухгалтерского учёта.
- Римские цифры основаны на счёте на пальцах.
- Десятичная система счисления связана с количеством пальцев на руках.
00:14:32 Системы счисления
- Десятичная система основана на основании 10.
- Система с основанием 8 имеет другие значения для одинаковых записей.
- Двоичная система использует только два символа: 0 и 1.
00:17:29 Двоичная система и компьютеры
- Двоичная система — основа работы компьютеров.
- Бит — минимальная единица информации в двоичной системе.
- Один бит может принимать значения 0 или 1.
00:18:41 Штрих-коды
- Штрих-коды состоят из 13 цифр и 30 полосок.
- Сканер делит штрих-код на 95 участков и присваивает единицы закрашенным участкам, а нули — незакрашенным.
- Первые и последние три бита настраивают сканер, а пятибитный разделитель делит штрих-код на левую и правую части.
00:20:32 Кодировка штрих-кодов
- Каждое значение кодируется семью битами.
- Кодировка L-типа имеет нечётное количество единиц, а кодировка типа P — чётное.
- Программа сама определяет чётность/нечётность и сторону сканирования штрих-кода.
00:21:31 Пример кодирования
- Пример штрих-кода начинается с цифры 9.
- Левая часть штрих-кода шифруется по схеме L-типа.
- Правая часть закодирована согласно кодировке типа P.
00:22:16 Контрольная цифра
- Алгоритм поиска контрольной цифры: умножение значений на коэффициенты, суммирование, нахождение остатка от деления на 10.
- Если остаток отличен от нуля, контрольная цифра равна разнице между 10 и остатком.
- Если остаток равен нулю, контрольная цифра равна нулю.
00:23:12 Азбука Морзе и биты
- Переписывание кодов Морзе с использованием единиц и нулей: точка — 1, тире — 3 единицы, паузы — 0.
- Преобразование азбуки Морзе в биты для шифрования.
00:24:08 Байт и восьмеричная система
- Байт — группа из восьми битов, может принимать 256 различных значений.
- Использование восьмеричной системы для упрощения работы с байтами.
- Проблема при использовании нескольких байтов в восьмеричной системе.
00:26:28 Шестнадцатеричная система
- Шестнадцатеричная система использует четыре бита для представления чисел.
- Представление чисел в шестнадцатеричной системе с помощью букв латинского алфавита.
- Перевод чисел из шестнадцатеричной в десятичную систему.
00:29:27 Кодирование текста
- Текст для компьютера — набор закодированных символов.
- Американский стандартный код для обмена информацией ASCII определяет 128 символов.
- Расширенные таблицы ASCII используют весь диапазон восьми бит.
00:32:05 Универсальный стандарт кодирования символов
- Цель стандарта — охватить символы всех письменностей мира.
- Кодовые пункты, глифы и имена символов в стандарте.
- Отказ от привязки символов к конкретному набору битов, каждый символ получает уникальный номер.
00:33:01 Кодировки UTF-8 и UTF-16
- UTF-8 использует переменное количество байт от 1 до 4 для кодирования символов.
- UTF-16 оперирует ячейками по 16 бит, большинство символов помещаются в одну ячейку.
- Некоторые символы занимают две ячейки.
00:33:50 Кодирование пикселей
- Изображение состоит из пикселей, каждый из которых имеет координаты и цвет.
- Для кодирования цвета используется набор нулей и единиц.
- Один бит позволяет закодировать два цвета, два бита — четыре цвета, три бита — восемь цветов.
00:34:43 Кодирование оттенков серого
- Пять бит позволяют закодировать 32 уровня серого.
- Оптимальное кодирование оттенков серого — один байт на пиксель, что даёт 256 оттенков.
- Человеческий глаз не способен различить более 256 градаций серого.
00:35:42 Кодирование цветных изображений
- Модель RGB использует три компонента: красный, зелёный и синий.
- Каждый компонент кодируется одним байтом, что даёт более 16 миллионов цветов.
- Для кодирования одного цветного пикселя требуется три байта.
00:36:41 Булева алгебра
- Булева алгебра работает с логическими значениями истина и ложь.
- Основные операции: логическое И, логическое ИЛИ и отрицание.
- Коммутативность, ассоциативность и дистрибутивность применимы к логическим операциям.
00:38:39 Пример с инопланетянами
- Инопланетяне выбирают кандидатов по логическим условиям: холостые женщины, работающие учителями или полицейскими; холостые мужчины, не работающие в правоохранительных органах; программисты.
- Условия записываются в виде булевых выражений с использованием логических операций.
- Пример с геологом показывает, как логические операции влияют на результат.
00:41:34 Автоматизация отбора
- Предлагается автоматизировать процесс отбора с помощью электрической схемы.
- Логическое И реализуется последовательным подключением выключателей, логическое ИЛИ — параллельным подключением.
- Схема позволяет кандидату самостоятельно отвечать на вопросы, перемещая переключатели.
00:43:57 Упрощение схемы
- Схема упрощается с помощью дистрибутивности.
- Количество переключателей сокращается до четырёх, что снижает вероятность ошибки.
00:44:24 Переключатели и их назначение
- Переключатели K1, K2, K3 и K4 представляют собой биты, каждый из которых имеет два состояния: включён или выключен.
- Переключатель K1 отвечает за пол кандидата: включён — мужчина, выключен — женщина.
- Переключатель K2 отвечает за статус кандидата: включён — холост, выключен — не холост.
00:45:23 Профессии и переключатели
- Профессии учителя, полицейского и программиста определяются двумя переключателями K3 и K4.
- Четыре возможных комбинации состояний переключателей: 00 — прочая деятельность, 11 — программист, 10 — учитель, 01 — полицейский.
- Количество переключателей сокращено с восьми до четырёх.
00:46:18 Логические вентили и реле
- Логический вентиль принимает один или несколько логических входов и выдаёт один логический выход.
- Реле используется для управления переключателями с помощью электричества.
- Буфер передаёт сигнал без изменения: если на входе единица, то и на выходе единица, если ноль, то и на выходе ноль.
00:48:11 Инвертор и последовательное соединение реле
- Инвертор инвертирует логический сигнал: если на входе ноль, то на выходе будет единица, и наоборот.
- Последовательное соединение реле реализует логическую операцию «И» и называется вентилем «И».
- Вентиль «И» имеет два входа и один выход, его поведение описывается таблицей истинности.
00:50:01 Параллельное соединение реле и вентиль «ИЛИ»
- Параллельное соединение реле реализует логическую операцию «ИЛИ» и называется вентилем «ИЛИ».
- Вентиль «ИЛИ» имеет закруглённую форму со стороны входов и может находиться в четырёх логических состояниях.
00:50:56 Построение схемы для отбора кандидатов
- Первый переключатель определяет пол кандидата: включён — мужчина, выключен — женщина.
- Для определения статуса используется инвертор.
- Профессии определяются двумя переключателями, состояния которых однозначно определяют каждую группу.
00:52:47 Проверка схемы
- Пример проверки: выключен ключ K3, включён ключ K4.
- Инвертор преобразует сигнал в единицу, и на вход логических вентилей поступают два сигнала.
- Только у вентиля, связанного с полицейским, оба сигнала равны единице, поэтому на выходе будет единица.
00:53:45 Дешифратор двух линий на четыре
- Схема, формирующая один активный выход из четырёх возможных, называется дешифратором двух линий на четыре.
- У дешифратора два входа и четыре выхода, и в каждый момент времени активен только один выход — тот, который соответствует входной комбинации.
00:54:04 Схема для пульта
- Схема использует четыре переключателя для генерации выходных сигналов.
- Перерисовываем схему на семь ключей с входными сигналами, принимающими два значения: ноль или единица.
- Соединяем входные сигналы схемы с выходными сигналами пульта.
00:55:04 Работа логических вентилей
- Вентиль «и» выдаёт единицу, если на входе две единицы.
- Вентиль «или» выдаёт единицу, если на входе хотя бы одна единица.
- Лампочка загорается, если на выходе всех вентилей получается единица.
00:56:03 Логические вентили «или не» и «и не»
- Вентиль «или не» работает наоборот: лампочка горит, если оба электромагнита не активны.
- Вентиль «и не» работает наоборот: лампочка горит, пока хотя бы один электромагнит не активен.
00:56:49 Основы работы компьютера
- Сложение чисел — основа работы компьютера.
- Цель — построить суматор — устройство, которое принимает два числа и выдаёт их сумму.
- Используем простые элементы: выключатели, реле и лампочки.
00:57:43 Переход к двоичной системе
- Двоичная система проще для электрических схем, так как переключатели и лампочки могут принимать только два состояния.
- Переключатели вводят числа, а лампочки выводят результат сложения.
00:58:43 Реализация суматора
- Начинаем с таблицы сложения для двоичных чисел.
- Выделяем таблицы суммы и переноса.
- Используем логические вентили для реализации схемы.
00:59:29 Полусуматор
- Полусуматор использует вентили «исключающее или» и «и».
- Разряд суммы задаётся выходом «исключающего или», а разряд переноса — выходом «и».
01:00:27 Сложение двоичных чисел
- Для сложения трёхзначных чисел используем два полусуматора.
- Третий полусуматор можно заменить на вентиль «или».
01:02:19 Полный суматор
- Полный суматор имеет три входа, один из которых — вход переноса.
- Для сложения четырёхбитных чисел используем четыре суматора.
01:03:19 Проверка работоспособности
- Подключаем переключатели ко входам, а лампочки к выходам сумм.
- Проверяем работоспособность, складывая два четырёхзначных числа.
01:04:02 Расширение схемы
- Можно создать восьмибитный суматор, копируя схему.
- Далее можно создать шестнадцатибитный суматор.
- Останавливаемся на восьмибитном суматоре для дальнейшей работы.
01:04:33 Объединение электромагнита и переключателя
- Электромагнит реле и переключатель контакта имеют разные источники питания.
- Объединим их в одну цепь с двумя переключателями: один управляется внешним воздействием, другой — электромагнитом.
- При включении первого переключателя цепь замыкается, лампочка загорается, электромагнит размыкает цепь.
01:05:25 Электромеханический зуммер и вибратор
- Устройство без лампочки используется как электромеханический зуммер.
- С молоточком и чашей получается аналог школьного звонка.
- Вибратор замыкает и размыкает цепь без внешнего воздействия, напоминая работу инвертора.
01:06:22 Принцип работы вибратора
- Сигнал, пройдя реле, возвращается на вход с противоположным значением из-за задержки в срабатывании реле.
- График зависимости выходного сигнала от времени имеет периодическую форму.
- Цикл колебаний — это интервал, в течение которого выход вибратора изменяется, а затем возвращается в исходное состояние.
01:07:13 Применение вибратора в автоматизации
- Вибратор важен для синхронной работы компонентов компьютера.
- Схема с двумя реле, соединёнными перекрестно, образует обратную связь, закрепляющую текущее состояние.
01:08:33 R-S триггер и его работа
- R-S триггер можно собрать на двух вентилях «или-не».
- Четыре возможные комбинации входов: единица, ноль, единица, ноль.
- При обоих входах, равных нулю, выход зависит от предыдущего значения.
01:12:51 Недостатки R-S триггера
- Запрещённое состояние при одновременной подаче сигналов на оба входа.
- Реакция на изменение входа всё время, пока подаётся сигнал.
01:13:47 Улучшение R-S триггера
- Установка двух вентилей «и» перед входами R и S для управления моментом записи.
- Сигнал разрешения записи управляет моментом записи данных.
01:14:39 Дезащёлка со срабатыванием по уровню
- Замена входов R и S на один вход D для устранения недопустимого состояния.
- Вход Clock синхронизирует работу схемы.
- Защёлка запирает один бит информации и хранит его для дальнейшего использования.
01:15:39 Введение в D-триггер
- D-триггер используется для изменения значения выхода только в момент перехода сигнала clock из одного состояния в другое.
- Состоит из двух защёлок: ведущей и ведомой.
01:16:02 Структура D-триггера
- Ведущая защёлка обозначается как Q1 и Q1’h, ведомая — как Q2 и Q2’h.
- Сигнал от ведущей защёлки поступает на вход ведомой напрямую и через инвертор.
- Схема упрощается путём соединения выхода Q1’h с входом верхнего вентиля ведомой защёлки.
01:17:01 Управление защёлками сигналом clock
- Сигнал clock управляет обеими защёлками, но перед входом в ведущую защёлку проходит через инвертор.
- Ведущая защёлка открыта при clock = 0, ведомая — при clock = 1.
- На выходе фиксируется только одно значение d в момент фронта сигнала clock.
01:17:58 Работа D-триггера пошагово
- При clock = 0 ведущая защёлка прозрачна, в неё записывается текущее значение d.
- При изменении clock от 0 к 1 ведущая защёлка закрывается, а ведомая открывается и принимает значение с выхода ведущей защёлки.
- Изменение сигнала d при clock = 1 не влияет на выходы 1 и 2.
01:19:54 Обозначение D-триггера на схемах
- D-триггер обозначается треугольной стрелкой на входе clock: просто треугольник — срабатывание по положительному фронту, треугольник с кружком — по отрицательному фронту.
- Превращается в управляемую ячейку памяти, обновляя бит только в нужный момент.
01:20:30 Преобразование защёлки
- Переименование входов и выходов: выход — вывод данных, вход — ввод данных, сигнал записи — v.
- При v = 1 значение от входа передаётся на выход, при v = 0 защелка закрыта.
- Объединение четырёх защёлок создаёт четырёхбитную группу памяти.
01:22:20 Компоновка однобитных защёлок
- Задача: записать и прочитать четыре отдельных однобитовых значения.
- Использование однобитовых защёлок в роли ячеек записи и хранения данных.
- Моделирование двух логических блоков: один управляет записью данных, другой — чтением.
01:23:15 Управление записью данных
- Первый блок управляет сигналом записи каждой из ячеек.
- Для записи сигнала во вторую защёлку на вход записи второй защёлки подаётся единица, на все остальные — ноль.
- Применение дешифратора двух линий на четыре для выбора нужной ячейки.
01:24:13 Логика записи данных
- Переключатели s1 и s2 управляют записью данных в разные защёлки.
- Запись в первую защёлку происходит при выключенных переключателях, во вторую — при нуле на s1 и единице на s2.
- Логика записи продолжается с учётом состояния переключателей.
01:24:57 Управление записью данных
- Запись данных происходит только при значении сигнала, равном единице.
- Для записи в третью защёлку переключатель должен быть включён, а сигнал записи — равен единице.
- После записи данных вход отключается для их сохранности.
01:25:55 Блок считывания
- Задача блока считывания — выбрать сигнал от нужной защёлки и вывести его на общий выход схемы.
- Используется селектор четырёх линий на одну для выбора сигнала.
- Переключатели S3 и S4 определяют, какой вентиль И будет открыт.
01:26:48 Работа селектора
- Комбинация переключателей S3 и S4 определяет, какой вентиль И будет активен.
- Выход вентиля И зависит от значения на его третьем входе, которое хранится на выходе соответствующей защёлки.
- Выходы остальных вентилей И равны нулю и не влияют на общий выход.
01:27:32 Сокращение переключателей
- Для выбора нужной защёлки достаточно двух переключателей, которые называются адресом.
- Двухбитный адрес однозначно определяет, к какой защёлке обращаться.
01:28:30 Память с произвольным доступом
- Конфигурация защёлок представляет собой память с произвольным доступом.
- Для хранения четырёх битов используется массив RAM 4×1.
- Увеличение количества защёлок и переключателей позволяет хранить больше бит.
01:30:13 Ограничения реле
- Реле громоздкие, имеют ограниченную скорость срабатывания и изнашиваются.
- Вакуумные электронные лампы стали следующим шагом в развитии электроники.
01:31:07 Преимущества вакуумных ламп
- Лампы переключаются в тысячи раз быстрее реле и работают бесшумно.
- Они стали основой первых электронных компьютеров.
- Недостатки ламп: высокое энергопотребление, тепловыделение, частые перегорания.
01:32:57 Введение транзисторов
- Транзисторы управляют электрическим током с помощью полупроводников.
- Биполярный транзистор типа NPN имеет три вывода: базу, коллектор и эмиттер.
- Управление транзистором осуществляется подачей слабого тока на базу.
01:33:54 Преимущества транзисторов
- Транзисторы миниатюрны, надёжны, энергоэффективны и имеют высокую скорость переключения.
- Последовательное подключение двух транзисторов реализует логическую операцию «И», а параллельное — «ИЛИ».
01:34:53 Интегральные схемы
- Интегральные схемы объединяют несколько транзисторов, резисторов и проводников на одной кремниевой пластинке.
- Это позволяет изготавливать схемы целиком на кристалле, что делает их меньше, быстрее, дешевле и надёжнее.
01:35:48 Микропроцессоры
- Микропроцессор — это мозг современного компьютера, объединяющий миллионы или миллиарды транзисторов на одном кристалле.
- Интегральные схемы стали основой для создания микропроцессоров.
01:35:59 Основы работы процессора
- Процессор выполняет инструкции, хранящиеся в памяти.
- Инструкции выполняют фундаментальные операции: доступ к памяти, арифметические и логические операции, отслеживание хода программы.
- Основные компоненты процессора: арифметико-логическое устройство, устройство управления и регистры.
01:36:59 Роль регистров и АЛУ
- Регистры — это сверхбыстрая внутренняя память процессора, хранящая данные и адреса для текущей команды.
- АЛУ выполняет математические и логические операции, получая значения и код операции.
- Устройство управления управляет работой процессора.
01:37:49 Цикл работы процессора
- Работа процессора состоит из цикла выборки, декодирования и исполнения инструкций.
- Устройство управления считывает инструкцию из памяти и помещает её в регистр команд.
- Декодер инструкций определяет тип операции: арифметическая, логическая, передача данных или переход.
01:38:43 Архитектура CISC и RISC
- CISC — архитектура со сложным набором инструкций, где каждая команда может выполнять несколько действий.
- RISC — архитектура с упрощённым набором инструкций, где команды максимально простые и выполняют одно элементарное действие.
- Обе архитектуры служат одной цели: быстрое и эффективное выполнение команд программы.
01:40:34 Конвейерная обработка
- Конвейерная обработка позволяет процессору выполнять шаги цикла для разных инструкций одновременно.
- Это значительно увеличивает общую производительность процессора.
01:41:28 Многоядерные процессоры
- Многоядерный процессор содержит несколько ядер, работающих параллельно.
- Каждое ядро имеет свои АЛУ и регистры, что позволяет выполнять несколько задач одновременно.
01:42:23 Кэш-память
- Кэш-память — это быстрая память на кристалле процессора, хранящая копии данных из оперативной памяти.
- Кэш-память разделена на иерархию уровней: первый уровень — самый быстрый, второй уровень — больше по объёму, но медленнее, третий уровень — самый большой и медленный, общий для всех ядер.
01:44:20 Машинный код
- Инструкции процессора записаны в виде машинного кода — длинных последовательностей нулей и единиц.
- Каждая комбинация имеет строго определённый смысл.
- Пример 32-битной инструкции для процессоров ARM: поле условия позволяет процессору принимать решение о выполнении команды в зависимости от флагов состояния.
01:45:16 Тип инструкции
- Определяет категорию команды: арифметика, работа с памятью, переход.
- Код 001 указывает на команду обработки данных с непосредственным числом.
- Биты с 24 по 21 определяют код операции, а биты с 11 по 0 — закодированное числовое значение.
01:46:13 Код операции и бит состояния
- Код 1101 означает операцию перемещения данных.
- Бит 20 S-бит управляет обновлением флагов состояния процессора.
- В нашей инструкции S-бит равен нулю, так как простое перемещение числа не меняет состояние флагов.
01:47:11 Регистры и операнд
- Биты с 19 по 16 указывают регистр источника, а биты с 15 по 12 — регистр назначения.
- В инструкции регистр источника игнорируется, так как перемещаем число, а не содержимое регистра.
- Операнд — число 4, которое будет перемещено в регистр R7.
01:48:08 Язык ассемблера
- Ассемблер упрощает написание программ на машинном коде, используя мемокоды.
- Программа ассемблер переводит код ассемблера в машинный код.
- Высокоуровневые языки программирования устраняют недостатки ассемблера.
01:49:04 Вторичное хранилище данных
- Процессор и оперативная память энергозависимы, поэтому требуется вторичное хранилище.
- Основные виды вторичного хранилища: жёсткие диски и твердотельные накопители.
01:49:55 Жёсткие диски
- Данные записываются и считываются с вращающихся магнитных пластин.
- Плюсы: низкая цена за гигабайт, высокая ёмкость.
- Минусы: низкая скорость, чувствительность к ударам, шум.
01:50:53 Твердотельные накопители
- Данные хранятся в полупроводниковых ячейках памяти.
- Плюсы: высокая скорость, бесшумность, устойчивость к вибрациям и ударам, низкое энергопотребление.
- Минусы: более высокая цена за гигабайт, ограниченный ресурс ячеек.
01:51:52 Устройства ввода-вывода
- Устройства ввода: мышь, клавиатура, микрофон.
- Устройства вывода: монитор, динамики, принтер.
- Вторичное хранилище также считается устройством ввода-вывода для процессора.
01:52:52 Шина и её типы
- Шина — совокупность проводников для передачи сигналов между компонентами компьютера.
- Три типа шин: шина данных, шина адреса, шина управления.
- Системная шина обеспечивает взаимодействие процессора, памяти и устройств ввода-вывода.
In this video
Введение
0:01
Согласно многочисленным опросам и отзывам людей, связанных с IT, книгой, с которой они рекомендуют начать свой путь
0:07
айтишника, является код Тайный язык информатики, автор Чарльз Пецульт.
0:13
Почётное второе место занимает книга Мэтью Джастиса, как на самом деле работает компьютер. В основе этого видео
0:20
лежат обе эти книги, а также за дополнительными разъяснениями приходилось обращаться ещё вот к этим.
0:28
Поэтому, если во время просмотра данного фильма у вас появится желание закрепить материал или разобраться в каких-то
0:35
вопросах глубже, эти книги должны вам в этом помочь. В любом случае, если вы
0:40
находитесь на начальном этапе входа в сферу IT или просто заинтересовались тем, как устроен компьютер, то вам
0:47
повезло. Всего лишь за несколько часов разбора данного видео ваш кругозор очень
0:53
сильно расширится. Вы пройдёте путь от изобретения телеграфа до устройства современной вычислительной машины. Путь,
1:00
который занял у прогрессивного человечество пару столетий. Для более простого восприятия видео разбавлено
1:07
выдуманными историями из невыдуманной жизни, которые гармонично легли между теорией. Приятного просмотра.
Зачем нужен код?
1:16
Тим и Веры подростки, дома которых расположены по соседству, а окна из их комнат выходят друг на друга. Тим тайно
1:24
влюблён в веру и считает, что самое лучшее время для общения с ней, когда родители отправляют их спать. Идея
1:31
общаться после отбоя Вире тоже нравится. Ей просто нравится делать то, что не находит одобрения у её родителей. И вот
1:39
перед Тимом стоит задача, как сделать их общение более информативным, нежели
1:44
простые обмены жестикуляциями. Телефоном тоже не воспользуешься. Родители забирают его перед сном. Да и к
1:52
тому же общение должно быть без звуков, иначе их услышат и затея провалится.
1:58
Однажды он решает воспользоваться лазерной указкой, чтобы через окно на стене комнаты веры выводить буквы,
2:06
которые она смогла бы складывать слова. Идея не выгорела. Вера не смогла угадать
2:11
большую часть букв. Тогда Тим решил, что каждой букве будет соответствовать
2:16
определённое количество морганий фонарика, где одно моргание будет означать букву А, два, букву Б и так
2:24
далее. Предложение, которое Тим хотел передать Вере, начиналось с буквы Я, а
2:30
это аж 33 блика. К третьей букве Вера уже теряла интерес и засыпала. Время
2:36
шло, но Тим не сдавался. И вот как-то раз он смотрел фильм про моряков.
2:42
которые сигнализируют друг другу прожектором, посылая длинные и короткие блики. Папа ему пояснил, что для общения
2:50
моряки используют азбуку морзы. В этот момент по телу Тима как будто пробежала
2:56
маленькая молния. Он нашёл то, что искал, и скоро сможет передать вере
3:01
главное сообщение его жизни.
Азбука Морзе
3:07
Обычно говоря про азбуку Морзы, в качестве знаков для кодирования информации подразумевают использование
3:13
точек и тире в том смысле, что каждой букве алфавита соответствует набор из
3:19
определённого количества точек и тире. Хотя азбука морзы и не связана с
3:24
компьютером, но помогает понять суть кода, что необходимо для глубокого понимания работы компьютеров. В
3:31
дальнейшем под кодом будет подразумеваться система передачи информации между людьми и машинами. Код
3:37
обеспечивает коммуникацию. Люди используют код каждый день при общении.
3:42
Звуки, из которых складываются слова, являются кодом. Текст, написанный от
3:47
руки, также является кодом. В компьютерах также применяются различные типы кодов для передачи чисел, букв,
3:54
видео. Для обозначения тире Тим решает использовать долгое свечение фонарика. А
4:00
для точки короткая. К тому же должны быть паузы между буквами, а паузы между
4:06
словами пусть будут в два раза длиннее. Теперь простой привет займёт вместо 64
4:11
бликов в кодировке, придуманной Тимом, всего лишь 14 бликов, используя азбуку
4:17
Морзы. Зная, что вера не обладает хорошим
4:24
вниманием и усидчивостью, Тим предполагает, что найти буквы согласно таблице Морзы будет для неё непосильная
4:32
задача. Ведь в поисках каждой буквы придётся просматривать всю таблицу.
4:37
Задачу декодирования для веры необходимо упростить. Что если сгруппировать коды
4:42
букв таким образом, чтобы они располагались не согласно алфавиту, а согласно количеству символов точек и
4:49
тире? Получается, кодов, состоящих из одного символа, два, кодов, состоящих из
4:56
двух символов,четыре, из трёх-восем и так далее. Проглядывается закономерность. Удлинение
5:04
кода на один символ ведёт к увеличению числа кодов в два раза по отношению к
5:09
числу кодов длиной на один символ короче. Таким образом, можно вычислить,
5:14
сколько кодов можно составить, зная максимальную длину. При максимальной длине кодов четыре символа получится 30
5:22
кодов, что практически достаточно для всех букв кириллицы, особенно если и объединить с ё. Ну и твёрдый знак с
5:30
мягким знаком. останется только буква э, которую в качестве исключения можно
5:35
закодировать пятью символами. Тим идёт ещё дальше и строит древовидную
5:41
структуру. Теперь, имея набор точек и тире, достаточно идти по ветвям дерева в
5:47
поисках соответствующей буквы. Так, например, коду точка точка тире будет
5:53
соответствовать буква У. Код морза называется двоичным, так как любой его
5:58
элемент включает один из двух компонентов: точку или тире.
Шрифт Брайля
6:06
Азбукаморза — это не единственный способ кодирования букв письменного языка. Ещё
6:11
одна система кодирования также носит имя её создателя. Луи Брайль родился в 1809
6:18
году и в 3 года из-за недосмотра родителей он ослеп. Мальчик обладал
6:23
огромной тягой к знаниям и в 10 лет отправился в специализированное учебное заведение для слепых детей. В то время
6:30
лучшей практикой облегчить обучение слабовидящим считалась печать текстов выпуклыми буквами. Но как записывать
6:38
что-то за учителем было неясно. К 15 годам Брайль разработал собственную
6:43
методику кодировки букв, которая используется и по сей день, облегчая жизнь слабовидящим людям. В шрифте
6:51
Брайля каждый символ письменного языка кодируется одной или несколькими выпуклыми точками в прямоугольнике
6:57
размером две натри точки. Шрифт Брайля, также как и азбука Морза, относится к двоичной системе, так как каждая из
7:04
шести точек прямоугольника может принимать два значения: быть либо выпуклой, либо плоской. Общее число
7:12
комбинаций, которые можно сложить из шести точек, принимающих только два значения, равно 64.
7:19
Таким образом, всего можно закодировать 64 символа.
Карманный фонарик
7:25
Благодаря усилиям Тима Вера хорошо освоила азбуку Морза. И когда встал вопрос о том, как Тим может помочь Вере
7:33
сдать выпускной экзамен по биологии, метод кодирования информации был сразу обозначен. Необходимо было определиться
7:40
только со средством доставки информации, и Тим решил, что функцию карманного
7:46
фонарика может выполнять лампа на стене кабинета, где будет проходить экзамен.
7:52
Разберёмся, из чего состоит карманный фонарик. Основными его частями являются батарейка, лампочка, переключатель. И
8:01
всё это соединено проводами. Они образуют простейшую электрическую цепь.
8:06
Если переключатель поместить в положение включено, то цепь замыкается и лампочка
8:11
светится. Если переключатель поместить в положение выключено, то цепь размыкается
8:17
и лампочка выключается. Лампа в школьном классе над доской работает по такому же
8:23
принципу. Роль источника питания вместо батарейки играет подстанция, а роль
8:29
переключателя — выключатель на стене. Тим должен лишь перенести этот выключатель в соседний кабинет, откуда
8:36
он сможет отправлять информацию. Узнав номер билета, Тим сможет надиктовать
8:41
ответ Вери, используя азбуку Морзы. Данная конструкция не что иное, как
8:46
родственник телеграфа, нашедшего своё промышленное применение в 1844
8:52
году. Правда, вместо лампочки использовался электромагнит. Электромагнит — это устройство, которое
8:59
при прохождении через него электрического тока создаёт магнитное поле. Если электрическая цепь, в которой
9:05
находится электромагнит, замкнута, то он притягивает металлические предметы. На
9:11
стороне отправителя сигналов располагался ключ, оптимизированный для скоростной работы. Оператор передавал
9:18
длинные и короткие сигналы путём удержания цепи в замкнутом состоянии. На
9:24
стороне получателя находился электромагнит, и при получении сигналов замыкания цепи он притягивал
9:31
металлический рычаг, который при опускании и подъёме издавал характерные щелчки. Быстрые щелчки означали точку
9:39
длинные тире. У данной конструкции было ограничение. На длинных участках уровень
9:45
сигнала падает, поэтому необходимо использовать повторители или реле.
9:52
В первой половине XIX века реле было изобретено сразу несколькими независимыми друг от друга учёными. И
Реле
10:00
хотя они предлагали разные варианты его использования, мы познакомимся с реле как с устройством двойного назначения,
10:07
как переключатель, управляемый электрическим сигналом, и как усилитель, превращающий слабый сигнал в сильный.
10:15
Свойство реле работать в качестве переключателя демонстрировал на своих лекциях Джозеф Генри на простом
10:21
эксперименте с двумя электрическими цепями. В первой цепи, назовём её малой,
10:26
использовался слабый электромагнит. Во второй назовём её большой, сильный электромагнит. Настолько сильный, что
10:33
способны притянуть к себе тяжёлый груз. Особенностью конструкции было то, что большая цепь управлялась слабым
10:40
электромагнитом. При его активации ключ большой цепи притягивался к нему. Большая цепь замыкалась. Сильный
10:47
электромагнит становился активным и притягивал груз. Когда малый электромагнит отключался, пружина
10:53
возвращала ключ назад. Большая цепь размыкалась и груз падал. Так маленький
10:58
электромагнит фактически управлял большим. Это и есть принцип работы реле, как удалённого электрического
11:04
переключателя. Вторая важная способность реле — работать как усилитель электрического
11:10
сигнала. Как мы уже разобрали, телеграф, использующий приёмник сигнала в виде электромагнита, имел большой недостаток.
11:18
При передаче сигналов на дальние расстояния мощность сигнала падала, и он терялся. Реле, установленное в
11:25
промежуточном пункте, решало эту проблему. До его входа доходил очень
11:30
слабый ток, силы которого было достаточно только для того, чтобы замкнуть контакты реле. Через замкнутые
11:37
контакты проходил новый сильный ток из местного источника питания. Таким образом на выходе появлялся уже мощный
11:44
сигнал. Реле не усиливало ток напрямую, а использовала слабый сигнал как команду
11:50
для включения нового сильного сигнала. Именно благодаря этой способности реле
11:55
стало незаменимо в телеграфии. На длинных линиях ставили релейные станции,
12:01
которые освежали ослабший сигнал. Это позволило передавать телеграфные сообщения на расстоянии сотен и тысячи
12:08
километров. Идея, что язык — это просто код, должна
Системы счисления (десятичная, восьмеричная, двоичная), бит
12:13
казаться уже логичной. Но если, встретив одно слово, у людей чаще всего рисуются
12:19
похожие изображения, то встретив число, у разных людей, вероятнее всего,
12:25
возникнут совершенно различные образы. При том, что разные народы для передачи
12:30
информации используют разные языки, разные письменности, а для передачи
12:35
чисел большинство людей на планете используют одинаковые символы. По
12:40
утверждению историков, числа были придуманы из-за потребности вести бухгалтерский учёт. Требовался
12:47
инструмент для подсчёта предметов, скота или оформления обменов. Из всех
12:53
древнейших числовых систем до нас дошли римские цифры. Особые символы в римской
12:58
системе кратны значением 5 и 10. Это связано с тем, что изначально люди
13:04
считали на пальцах. Даже дети, когда учатся считать, также загибают пальцы.
13:09
Числа, которыми мы пользуемся сегодня, также можно выразить количеством загнутых пальцев на обеих руках.
13:16
Например, вам необходимо посчитать яблоки, которые вы собрали, помогая бабушке по огороду. После того, как ваши
13:23
пальцы будут загнуты, это будет означать, что яблок 10. И для продолжения счёта вам нужны ещё пальцы.
13:30
Тогда вы просите бабушку загибать по одному пальцу каждый раз, когда ваши пальцы при счёте будут заканчиваться.
13:38
Через некоторое время и у бабушки пальцы на руке закончатся. Придётся звать дедушку. Он будет загибать по одному
13:45
пальцу, когда уже у бабушки на руках закончатся все пальцы. Выходит, что один
13:50
ваш палец соответствует одному яблоку, один палец бабушки десятью вашим пальцам
13:56
или десятью яблоком, а один палец дедушки десяти пальцем бабушки или 100
14:02
вашим пальцем. Дедушкины пальцы выражают большее значение, чем бабушкины, и тем
14:07
более ваши. Пусть каждому участнику подсчётов соответствуют ячейке, в
14:13
которые справа налево будут вписаны количество их загнутых пальцев. Сначала ваши, затем бабушкины и потом дедушкины.
14:21
Для того, чтобы узнать точное количество собранных яблок, нужно каждую ячейку умножить на соответствующие значения,
14:28
кратные десятки. Количество ваших пальцев на обоих руках. Такая система
14:33
счисления, к которой мы привыкли и ежедневно пользуемся, называется системой с основанием десяти или
14:40
десятичная. А что, если бы у людей было бы только четыре пальца? Тогда сразу
14:46
после семёрки шла десятка, а после семнадцати двадцатка. При этом, несмотря
14:51
на то, что запись десятки как для пятипальцевых людей, так и для восьмипальцевых выглядит одинаково,
14:58
означает оно разное количество. Данная система называется по основанию восьми.
15:04
Посчитаем, какое бы количество яблок имелось бы в виду в привычной нам десятичной системе, если бы их собирала
15:11
четырёхпальцевая семья. Первая цифра справа означает количество единиц.
15:16
Вторая цифра — количество загнутых пальцев на руке бабушки. При этом один палец четырёхпальцевой бабушки
15:24
соответствует всем пальцам внука и равен восьми. Это значение мы должны умножить
15:29
на восемь. Третья цифра. Загнутые пальцы дедушки. Один палец дедушки — это восемь
15:36
пальцев бабушки. Значит, один палец дедушки — это 8 квадра пальцев
15:41
четырёхпалого внука. Перемножив числа на соответствующее им количество пальцев и
15:47
сложив эти результаты, мы получим, чему равно значение в десятичной системе. То
15:52
есть, несмотря на то, что записи в двух системах совпадают, означают они разное количество. Для того, чтобы не было
15:59
путаницы при работе с разными системами, их основания необходимо уточнять.
16:05
Существуют системы с разными основаниями, но особенно нас интересует система с основанием два или двоичная.
16:12
В ней имеется только два символа: 0 и оди, где ноль обозначает ноль чего-либо,
16:19
а единица количество, равное одной штуки чего-либо. Таким образом, людям с одним
16:24
пальцем на руке для подсчёта количества яблок придётся звать всю семью и всех соседей. Для обозначения одного
16:30
загнутого пальца они также используют запись в виде символа единицы. А вот для
16:35
обозначения двух загнутых пальцев придётся использовать привычный нам символ десятки 1. Продолжим аналогию с
16:43
размещением значений в ячейках. Только на этот раз для двоичной системы. Первая
16:49
ячейка справа обозначает количество единиц, количество загнутых пальцев. Данная ячейка может принимать два
16:55
значения. Ноль, когда ни один из пальцев не загнут, не собрано ни одного яблока.
17:01
и единица, когда загнут один палец или собрано одно яблоко. В случае загибания
17:07
второго пальца все пальцы закончились. Это обозначает, что теперь один палец
17:12
должен загнуть второй член семьи. Таким образом будет записана единица во второй ячейке, в то время как в первой значение
17:21
обнуляется. Итак, первая ячейка показывает количество единиц, вторая
17:26
ячейка — количество пар двоек. Третья- количество загнутых пальцев третьего
17:32
члена семьи, где каждый его палец соответствует двум пальцам предыдущего или четырём, есть 2² первого. Четвёртая
17:41
ячейка по аналогии отражает количество восьмёрок, то есть 2³ и так далее. Для
17:48
перевода двоичного числа в десятичное необходимо значение в ячейках перемножить на соответствующие им
17:54
степени двойки и полученные значения сложить. Двоичная система имеет
18:00
непосредственное отношение к компьютерам. Это самое простейшее из систем счислений. Слово бит является
18:08
сокращением от английского выражения двоичная цифра. Один бит — двоичная
18:14
цифра. минимально возможное количество информации, меньше бита — её отсутствие.
18:20
Один бит принимает только два значения ноль или один. Ну что можно передать с
18:26
помощью одного бита? А с помощью одного бита можно ответить на вопрос, где ноль
18:31
будет означать нет, а единица да. Ну а для передачи более сложной информации
18:36
можно использовать несколько бит. Рассмотрим, как биты справляются с
Разбираемся как закодирован штрих-код
18:43
передачей информации на примере обычного продуктового штрих-кода. На первый
18:48
взгляд набору чёрных полос. Штрих-код можно найти на каждом продукте, приобретённом в супермаркете. Он состоит
18:56
из тринадцати цифр. Первые три цифры соответствуют стране регистрации предприятия. Далее идёт код
19:03
производителя и код товара производителя. В конце стоит контрольная цифра. Данный штрих-код сканируется на
19:10
кассе, благодаря чему находится соответствующий продукт в базе и выставляется нужная цена. В книге код
19:17
Тайный язык информатики описан штрихкод стандарта США двенадцатизначный. Мы
19:23
разберём тринадцатизначный штрих-код, используемый в Европе. На вид штрих-код
19:29
состоит из 13 цифр и примерно 30ти полосок разной толщины. Для считывания
19:35
кода сканеру достаточно узкая полоска. Широкими они делаются для того, чтобы
19:40
кассиру было легче в него попасть. Ну а цифры нужны лишь для того, чтобы их можно было вести вручную, если полоски
19:48
повреждены. Сканируя слева направо, компьютер делит штрих-код на 95 участков
19:54
и присваивает единицы закрашенным участком, а незакрашенным нули. В
19:59
битовом представлении это выглядит так. Первые и последние три бита всегда имеют
20:06
значение 10. По ним сканер настраивается. Он вычисляет ширину штриха, промежутка, а
20:13
также ширину самого штрих-кода, так как его размер у каждой упаковки отличается.
20:20
Также имеется пятибитный разделитель в центре со значением 0110.
20:25
Без него штрих-код не будет прочитан. Этот разделитель делит штрих-код на левую и правую части. В левую часть
20:33
входят значения со второго по седьмое, а в правую с восьмого по тринадцатое.
20:38
Каждое значение кодируется семью битами. Способов кодировки три. LG R. Числа из
20:46
правой части кодируются всегда способом R. Цифры левой части имеют смешанную
20:52
кодировку и зависят от значения, указанного на первом месте всего кода. Особенностями кодировки L-типа является
20:59
то, что количество единиц в коде для любого значения нечётно. В кодировках Г
21:05
типа наоборот, их количество чётное, а тип R является инверсией L-типа, что
21:12
значит, на месте единиц стоят нули, а на месте нулей — единицы. Таким образом, не
21:17
имеет значения, какой стороной сканируется штрих-код. Программа сама определит по чётности нечётности, где
21:24
левая сторона штрих-кода, а где правая. Разберём, как были зашифрованы значения,
21:30
указанные на штрих-коде. Данный штрих-код начинается с цифры девять.
21:35
Согласно таблице, левая часть штрих-кода, значение со второго по седьмое, шифруется по схеме LGг LGL.
21:45
Первое значение 8 согласно кодировке L- типа имеет код 0110111.
21:52
Следующему значению двойки согласно кодировке Гтипа соответствует код
21:58
В тройке соответствует код 0100001
22:06
и так далее. Правая часть значения с восьмого по тринадцатое закодированы
22:12
согласно кодировке R — типа. Осталось разобраться, что означает
22:18
контрольная цифра. Для её поиска используется следующий алгоритм. Первое.
22:24
Умножаем значения с первого по двенадцатое на соответствующие им коэффициенты, а именно для значений на
22:31
нечётных позициях коэффициент равен единице, для чётных — трём. Второе.
22:38
Суммируем все полученные значения. Далее находим остаток отделения на 10. И
22:45
если остаток отличен от нуля, то контрольная цифра равна разнице между десятью и остатком. Если остаток равен
22:53
нулю, то и контрольная цифра равна нулю. Возможно, вся эта система кажется
22:59
излишне замороченной, но зато подрисовать фломастером полоску и получить товар по стоимости другого,
23:06
более дешёвого, у покупателя уже не получится. Вернёмся к азбуке Морзы. Её
23:12
коды также можно переписать, используя только единицу и ноль. Обозначим точку
23:18
единицей. Если принять, что тире в три раза длиннее точки, тогда тире будет
23:23
состоять из трёх единиц. Паузы между точками и тире равны по длине точки.
23:29
Обозначим их как 1. Паузы между буквами примерно равны длине тире,
23:34
соответственно, будут равны трём нулям. А пауза между словами соответствует
23:40
длине равной 2 тире или шести нулям. Теперь можно переписать азбуку морзы,
23:46
используя только нули и единицы, то есть преобразовать её в биты. Итак, с помощью
23:52
битов мы можем зашифровать штрих-код или азбуку морзы, но при использовании компьютера чаще всего приходится иметь
23:58
дело с текстами, картинками, музыкой и видео. Разберёмся, как с помощью нулей и
24:05
единиц можно представить текст и изображение. Для этого познакомимся ещё
24:10
с одним понятием байтом. Байт — это группа из восьми битв. Как
Байт (byte)
24:18
восьмиразрядное число байт может принимать 256 различных значений,
24:23
начиная значением, когда все биты равны нулю, и заканчивая значением, когда все биты равны единице. Так как байты часто
24:31
используются при описании работы компьютера, хотелось бы иметь запись более простую, нежели ряд из восьми
24:38
двоичных цифр. Для человека, в силу привычки работы с десячной системой,
24:43
было бы комфортным использовать десятичные эквиваленты, принимающие значение от нуля до 255.
24:50
Но процесс преобразования одного байта в десятичное число и наоборот в уме затруднителен. Потребуется как минимум
24:57
бумага и карандаш. куда проще будет использование восьмиричной системы, где
25:03
каждому числу восьмиричной системы соответствует трёхбитный эквивалент.
25:08
Имея один байт информации, его необходимо разделить на группы по 3 бита, начиная с правого края. Последней
25:15
группе для дополнения до трёх бит в уме приписывается ноль.
25:21
Таким образом, минимальному значению, которое принимает 1 байт, будет соответствовать ноль восьмиричной
25:28
системы. А максимальному значение 377 в восьмиричной системе.
25:35
Вроде бы решение найдено, но проблема начнётся сразу, как только мы захотим использовать несколько байт информации,
25:42
например, при составлении шестнадцатиразрядного числа, состоящего из двух байтов. Ведь представление
25:49
такого числа эквивалентом восьмиричной системы не совпадает с восьмиричным
25:54
представлением двух байтов, составляющих это шестнадцатиразрядное число. Это
26:00
происходит из-за того, что при преобразовании одного байта в число в восьмиричной системе для крайней левой
26:06
группы вместо трёх битов остаётся только два. Поэтому при объединении двух байтов
26:12
при попытке получить восьмиричное представление, эта левая группа отбирает один бит у соседнего байта, что приводит
26:20
к ошибке. Получается, для того, чтобы избежать захвата чужих битов, для
26:25
представления многобайтовых значений, необходимо использовать систему отсчёта, в которой все представленные числа будут
26:32
выражены либо двумя битами, либо четырьмя, так как только тогда байт будет разделён на равное количество
26:39
битов, и посягательств на соседние байты при переводе происходить не будет.
26:46
Система от счёта, в которой все числа можно выразить двумя битами, называется по основанию 4, так как такое сочетание
26:54
может описать четыре различных значения, которым будут сопоставлены эквиваленты 0
27:00
1 2 3. Система отсчёта, в которой все числа можно выразить четырьмя битами,
27:06
содержит 16 различных значений и называется шестнадцатиричной.
Шестнадцатеричная система
27:14
До этого мы имели дело с системами отсчёта с основанием меньше десяти. В
27:19
них использовались привычные нам числа от нуля до девяти. Далее для наглядности
27:25
мы будем использовать яблоки, чтобы было легче понять, о каких величинах идёт речь. Начнём с привычной нам десятичной
27:32
системы. В ней после девятки идёт десятка, что соответствует
27:37
десятияблокам. А в системе по основанию четыре десятка идёт после тройки. Ну и так как эта
27:44
система по основанию четыре, эта запись соответствует четырём яблокам в нашей
27:49
привычной десятичной системе. В восьмеричной системе десятка идёт после
27:55
семёрки, что соответствует восьмия яблокам в привычной нам десятичной системе. Ну а теперь шестнадцатиричная
28:03
система. Согласно аналогии, десятка в этой системе будет обозначать количество, равное шестнадцати яблокам в
28:10
нашей десятичной системе. При этом цифры 1 2 3 и так далее до девяти в
28:16
шестнадцатиричной системе равны этим же значениям в десятичной системе. Но в
28:21
промежутке между девяткой и десяткой системе по основанию 16 не хватает ещё
28:27
шести обозначений, которые бы покрыли значения соответствующие 10 11 12 13 14
28:35
15 в десятичной системе. Эти значения в шестнадцатиричной системе представлены
28:41
первыми шестью буквами латинского алфавита. Один байт представляется парой
28:47
шестнадцатиричных цифр. Ну а 2 байта или шестнадцатиразрядное число двоичной системы будет представлено четырьмя
28:54
значениями шестнадцатиричной системы. Так же как и в других системах,
29:00
положение каждой цифры в шестнадцатиричной системе соответствует степени числа её основания.
29:07
На десятичной системе это значение равно 16. Для перевода числа в десятичную
29:13
систему необходимо умножить все числа на соответствующие им значения и сложить.
29:18
При этом, если число выражено буквой, использовать его эквивалент из десятичной системы.
Цифровой текст, кодировки ASCII, Unicode
29:27
Произнося слово текст, мы представляем себе набор предложений, связанных между собой по смыслу. Для компьютера же смысл
29:34
роли не играет. Ему важно лишь как закодированы символы. Текст можно разбить на абзацы, предложения и слова.
29:42
Слова состоят из букв, а предложения могут содержать знаки припинания: точку,
29:47
вопросительный или восклицательный знак. Кроме того, текст может содержать цифры.
29:53
Чтобы компьютер мог создавать, хранить и читать текст, нужны правила, по которым каждый символ будет представлен с
30:00
помощью нулей и единиц. Одним из первых таких стандартов стал аски.
30:05
Американский стандартный код для обмена информацией. Классический asки определяет 128 символов, каждому из
30:13
которых соответствует код из семи бит. На практике символ обычно занимает целый
30:18
байт, хотя реально используется только 7 бит. Старший бит остаётся равным нулю. В
30:24
таблицу Аски входят латинские буквы, заглавные строчные, цифры, знаки
30:29
припинания и служебные символы. Позже появились расширенные таблицы.
30:34
основанные на аске, которые использовали весь диапазон 8 бит от 0 до 255 и могли
30:41
кодировать до 256 символов. Первые 128 символов совпадают с классический маски,
30:49
а вторая половина таблицы заполняется в зависимости от конкретной версии и региона. Из-за этого возможны так
30:56
называемые крокозябры, неправильное отображение текста, если кодировка при
31:01
записи и чтении не совпадает, так как одним и тем же кодом в разных версиях
31:06
могут соответствовать разные символы. Но всё же 256 символов недостаточно, а
31:13
использование множества различных кодировок: одна таблица для Западной Европы, другая для восточной, третья для
31:20
кириллицы, а ещё иероглифы и так далее. непрактично.
31:25
Решением в лоб было бы использование для кодирования символов сразу, например, трёх байт, а не одного. Ведь если
31:32
использовать по три байта на символ, получится уже более 16 млн возможных кодов. Достаточно, чтобы охватить все
31:40
языки мира. Но как заставить тогда использовать данную кодировку тех, кому достаточно символов, описанных
31:46
стандартом Аски? Ведь они должны вместо одного байта на символ тратить целых три. То есть вместо одного жёсткого
31:53
диска придётся потратиться на три. Производители дисков были бы только рады. Данную дилемму решает Unicд,
32:02
универсальный стандарт кодирования символов. Его цель — охватить символы всех письменностей мира и присвоить
32:09
каждому символу уникальный номер. Данный стандарт связывает кодовые пункты с
32:14
глифами и именами. Кодовый пункт — это уникальный номер, записанный в
32:19
шестнадцатиричной системе. Глифы — это конкретное графическое начертание
32:24
символа. Буквы разных алфавитов, математические знаки, ноты и даже
32:31
эмодзи. Имена — это название или описание символа. Глифы и имена также
32:36
уникальные. Таким образом, в качестве упрощения можно сказать, что уникод — это огромная таблица, в которой каждому
32:44
символу сопоставляется описание и свой уникальный номер, записанный в
32:49
шестнадцатиричной системе. То есть в уникоде отказались от привязки символов конкретным набором битов.
32:56
Каждый символ просто получил свой уникальный номер, кодовую точку. Для того, чтобы компьютер мог записать
33:03
символ, файл или память, используется специальная форма представления кодировка. Кодировка определяет, как
33:10
перевести кодовую точку в последовательность байтов. Наиболее распространёнными являются УTF8 и УTF16.
33:19
УТФ используют переменное количество байт от одного до четырёх. Английские
33:25
символы занимают один байт и совпадают с аске. Кириллица 2 байта. Эмодзи и редкие
33:32
знаки- 4 байта. УтF16 оперирует ячейками по 16 бит 2 байта. Большинство символов,
33:40
латиница, кирилица, помещаются в одну ячейку. Но есть и такие, которые занимают две ячейки.
Кодируем изображение
33:50
Картинка, которую мы видим на экране, на самом деле состоит из множества крошечных квадратиков пикселей. Чтобы
33:58
отобразить изображение, компьютер должен знать две вещи для каждого пикселя: где он находится, его координаты и какой у
34:06
него цвет. Так же, как и символы, цвета можно закодировать. Каждому оттенку
34:11
присвоить свой набор нулей единиц. Давайте поэкспериментируем. Начнём с одного бита. С его помощью
34:19
можно закодировать всего два цвета, например, чёрный и белый. Такая палитра
34:24
может подойти разве что для простого текста. Добавив ещё один бит, мы получаем четыре цвета: чёрный, белый,
34:32
например, жёлтый и красный. Технически это цветное изображение, но выглядит оно
34:38
так себе. Перейдём к трём битам, а это уже целых восемь цветов. В принципе,
34:44
если удачно выбрать эти восемь цветов, некоторые картинки могут получиться вполне читаемыми.
34:51
А что, если эти восемь комбинаций использовать для оттенков серого от
34:56
чёрного до белого? Плавность переходов уже лучше. Перейдём к пяти битам,
35:03
которые вместят 32 различных уровня серого. Гораздо лучше.
35:08
А где находится этот предел, после которого улучшения становятся бессмысленными? При экспериментах с
35:15
кодированием оттенков серого от чисто чёрного до чисто белого разработчики пришли к выводу, что оптимально
35:22
использовать всего 1 байт на пиксель. Этого хватает, чтобы передать 256
35:29
оттенков серого. Дело в том, что человеческий глаз не способен различить больше, чем 256 таких тонких градаций,
35:37
поэтому увеличение точности, например, до 1024 градаций зрительно почти ничего
35:44
не даст, но при этом потребует вдвое больше памяти. Ну а как насчёт цветных
35:49
изображений? Компьютеры используют так называемую модель RGB Red Green Blue.
35:55
Все цвета, которые мы видим, получаются путём смешивания этих трёх базовых
36:01
компонентов. Изменяя яркость каждого из них, можно получить практически любой
36:06
цвет. Код одного цветного пикселя складывается из трёх частей. Каждый из
36:12
этих трёх компонентов, красный, зелёный и синий, кодируется одним байтом, то
36:17
есть имеет 256 оттенков. Всего различных комбинаций оттенков красного,
36:24
зелёного и синего выходит более 16 млн. Именно столько цветов мы получаем своё
36:31
распоряжение, используя модель RGB. Таким образом, для кодирования
36:37
информации об одном цветном пикселе необходимо три байта по одному для
36:42
каждого из трёх цветовых каналов. В повседневной жизни почти каждый
Логика
36:47
человек сталкивается с задачами, связанными с обычной алгеброй. Мы складываем съеденные за день калории,
36:54
считаем дни до отпуска и так далее. В качестве операн в обычной алгебре
37:00
выступают числа, объединение которых происходит с помощью специальных операторов: сложения, вычитания,
37:06
умножения и других. Даже если вы используете основные правила обычной алгебры интуитивно, давайте коротко их
37:14
освежим. Коммутативность. Порядок операндов не влияет на результат. Ассоциативность.
37:21
Результат не зависит от расстановки скобок. Дистрибутивность. Умножение
37:27
можно распределить на сложение. Переменные ABC — это числа. Однако,
37:33
чтобы приблизиться к пониманию того, как работает компьютер, обычной алгебры недостаточно.
37:39
Необходимо познакомиться с булевой алгеброй, особой системой, в которой операндаме являются не числа, а
37:46
логические значения истина и ложь, которые также обозначаются единицей и
37:51
нулём или включено-выключено. Булевы переменные принимают одно из этих
37:56
значений. Рассмотрим три основные логические операции. Логическая и
38:03
результат данной операции принимает значение истина только в том случае, если оба условия имеют значение истина.
38:12
Логическое или результат данной операции принимает значение истина, если хотя бы
38:18
одно из условий имеет значение истина. Отрицание инвертирует значение. Из
38:25
истины делает ложь, а ложь превращает в истину. Также, как и в обычной алгебре,
38:30
в булевой действует коммутативность, ассоциативность и дистрибутивность, но уже для логических операций.
38:38
Рассмотрим пример. О чудо, ваш город прилетели инопланетяне. И с целью
38:44
совместного освоения галактического пространства жителям предлагается отправиться с ними. Но вот возьмут они
38:51
не всех. Им нужны следующие люди. Холостые женщины, работающие учителями
38:57
или в правоохранительных органах. Холостые мужчины, неработающие в правоохранительных органах. Любой, кто
39:05
работает программистом. Для каждого условия составим булево выражение, в
39:10
котором наименования переменных являются первыми буквами соответствующих характеристик. В первом условии кандидат
39:17
должен быть холостой женщиной, работающей учителем или полицейским, то есть удовлетворять трём условиям.
39:24
быть женщиной, быть холостой и иметь одну из двух названных профессий. Так
39:30
как названные три условия должны выполняться одновременно, они соединены логическим и при этом третье условие
39:38
имеет развилку. Кандидат может быть либо учителем, либо полицейским. Выполняться
39:43
должно хотя бы одно из этих двух условий, поэтому они соединены логическим или проверим на
39:50
работоспособность данное условие. Например, как оно будет исполняться, если придёт холостая женщина геолог.
39:58
Первые два операнта принимают значение истина. Запишем их как единицы. Вычислим
40:03
значение третьего операнда. Геолог не является ни учителем, ни полицейским.
40:09
Следовательно, оба операнта принимают значение ложь, нули. Их общий результат
40:14
также будет ноль, так как логическое или даёт в результате истину только тогда,
40:20
когда хотя бы один из операн имеет значение истина. Теперь общее условие
40:26
выглядит так. Итоговое значение данного условия ноль, так как при использовании
40:31
логического и, чтобы получить истину, оба операнта должны иметь значение
40:36
истина. Поэтому, несмотря на то, что при решении первого и результат будет истина
40:42
единица, то при решении второго и он изменится на ложь или ноль. Данный
40:48
кандидат не удовлетворяет заданному условию. Второе условие аналогично, за
40:55
исключением условия профессии. Кандидат не должен быть полицейским.
41:00
Данное условие можно записать, используя отрицание, логическое не. Таким образом,
41:06
если кандидат полицейский, логическое не превращает это значение из истины в
41:11
ложь. А если кандидат не является полицейским, логическое не обращает это
41:16
значение в истину. Третье условие самое простое. Оно выполняется всегда, когда
41:22
кандидат является по профессии программистом. Все три условия соединены оператором или
41:29
кандидат проходит отбор, если выполняется хотя бы одно условие из трёх.
41:35
После того, как предложение инопланетян было озвучено, жители города разделились на две части. Одни требовали прогнать
41:42
овальноголовых, другие же выстроились в очередь к космическому кораблю. Желающих
41:48
кардинально изменить свою жизнь было так много, что встал вопрос: как автоматизировать процесс отбора,
41:55
исключив долгие беседы? Было бы идеально, если кандидат самостоятельно в
42:02
случае положительного ответа на поставленный ему вопрос перемещал соответствующий переключатель в
42:08
положение включено. И по результатам этих выключателей, если кандидат подходит, загорается лампочка и дверь в
42:16
космический корабль открывается. Для того, чтобы составить такой прибор, разберёмся, как можно с уже знакомыми
42:23
нам лампочкой, батарейкой и выключателями перенести решение логических операций с бумаги на
42:28
электрическую схему. Договоримся, что значение истина на бумаге будет
42:34
соответствовать состоянию цепи, когда лампочка горит, значению ложь, когда
42:39
лампочка выключена. Обозначим выключатели буквами А и Б. Примем их
42:45
значение во включенном состоянии за истину, а выключенным за ложь. Тогда
42:51
реализацией логического и будет их последовательное подключение, так как
42:56
лампочка будет гореть только тогда, когда оба выключателя включены, то есть
43:01
принимают значение истина. Реализация логического или будет их параллельное
43:06
подключение, так как тогда для включения лампочки достаточно включить хотя бы один выключатель. То есть одно из
43:13
условий А или B должно принимать значение истина. Используя понимание,
43:19
что последовательное соединение переключателей выполняет логическую операцию и, а, параллельно логическую
43:25
операцию или, мы можем собрать электрическую схему, которая заменит выражение для отбора кандидатов.
43:32
Переключатели на данной схеме обозначены буквами, которые соответствуют
43:38
характеристикам кандидатов. Если кандидат обладает данной характеристикой, он должен перевести
43:44
переключатель во включенное состояние.
43:57
Используя дистрибутивность, данное условия следовательной схему можно упростить, вынесе характеристику холод
44:05
за скобки. Но даже несмотря на это упрощение остаётся семь выключателей,
44:11
которыми кандидат должен оперировать. Вероятность совершить ошибку очень велика, поэтому далее мы увидим, как
44:18
можно сократить количество переключателей до четырёх.
Логические вентили
44:25
Вынесем переключатели на отдельный планшет и обозначим их К1, К2, К3 и К4.
44:31
По сути, каждый переключатель — это один бит, так как имеет два состояния. может быть включен, может быть выключен. Все
44:39
кандидаты являются либо мужчины, либо женщины. Для передачи информации о
44:44
данной характеристике достаточно одного бита или одного переключателя.
44:50
За пол будет отвечать переключатель К1. Если кандидат мужского пола, то
44:55
переключатель должен быть включен. Если женского, то переведён в выключенное
45:00
состояние. Переключатель K2 будет отвечать за статус. Для точного
45:05
определения данной характеристики у любого кандидата также достаточно одного
45:10
бита. Если кандидат холост, переключатель должен быть в позиции включена, иначе выключен. Из оставшихся
45:19
условий остаются профессии: учитель, полицейский и программист. Жители, не
45:24
имеющие перечисленные профессии, занимаются прочей деятельностью. Выходит, касаемо профессий, всех
45:31
кандидатов можно разбить на четыре группы. Соединив два переключателя К3 и
45:36
К4 вместе, получится два бита. А это как раз четыре варианта: 001 10 1. Пусть
45:46
варианту, когда оба переключателя К3 и К4 выключены, имеют значение 0.
45:52
Соответствует прочая деятельность. варианту, когда оба переключателя включены, значение 1. Программист.
46:01
Варианту, когда включен только переключатель K3, значение 10, учитель.
46:07
Ну и когда включен только переключатель K4, значение 01 полицейский. Таким
46:13
образом, мы сократили количество переключателей с 8 до 4. Для реализации
46:19
схемы, работающей с четырьмя переключателями, познакомимся с логическими вентилями. Логический
46:26
вентиль — это устройство, которое принимает один или несколько логических входов, значение ноль или один, и выдаёт
46:34
один логический выход, определяемый логической операции, например, и или не
46:40
и другие. Выход также принимает значение ноль или один. Существует несколько
46:47
способов реализации логических вентилей, и один из них с помощью реле. Ранее мы
46:52
использовали реле для передачи сигнала на дальние расстояния. Теперь нас интересует возможность управлять
46:59
переключателем с помощью электричества. В такой схеме электромагнит-реле и
47:04
лампочка подключены к разным источникам питания. При замыкании цепи с электромагнитом он активируется и
47:11
притягивает переключатель, замыкая цепь с лампочкой, и она загорается. Место, в
47:16
котором электромагнит притягивает ключ цепи, в которой находится лампочка, назовём контактом. Если принять, что
47:23
наличие напряжения — это логическая единица, а его отсутствие ноль, то такое реле передаёт сигнал без изменения. Если
47:31
при входе единица, то и на выходе единица. Если при входе ноль, то и на выходе ноль.
47:37
Логический элемент, при котором выходной сигнал совпадает с входным, называется
47:42
буфер. Буфер обозначается треугольником, у которого входной сигнал подаётся на
47:48
одну из сторон, а выходной снимается с противоположной ей вершины. Буфер может
47:54
применяться, например, для задержки сигнала или для его усиления, как это делалось в телеграфной технике. Возможна
48:01
и другая схема. Лампочка горит, пока цепь с электромагнитом разомкнута. Как
48:06
только она замыкается, реле размыкает цепь с лампочкой, и она гаснет. Такое
48:12
подключение реализует инвертор, выполняя роль логического не. Он инвертирует
48:17
логический сигнал. Если на вход подаётся ноль, то на выходе будет единица и
48:23
наоборот. Для обозначения инвертора используется следующий символ. На выходе
48:29
реле не обязательно должен быть ключ от цепи с лампочкой. Это может быть и переключатель от другого релея. Таким
48:36
образом, выход одного релея может служить входом для другого. При активации электромагниты первого реле
48:43
сработает и второе, что в итоге приведёт, например, к включению лампочки. Выходы двух реле могут быть
48:50
соединены последовательно. В этом случае единственный способ зажечь лампочку-
48:56
активировать оба реле. Ключи в точках контактов замкнутся, и лампочка
49:01
загорится. Такое последовательное соединение реле реализует логическую
49:06
операцию И и называется вентилем И. Для его обозначения на схемах используется
49:13
специальный символ. У этого символа обычно два входа и один выход. Мысленно
49:19
можно перенести нашу схему с лампочкой на данный символ. Тогда на входе будут два переключателя, а на выходе лампочка.
49:27
При поочерёдном замыкании ключей ничего не происходит. Лампочка загорится только
49:32
тогда, когда замкнуты оба ключа одновременно. Результат замыкания ключа-
49:38
появление напряжения на входе, то есть смена логического значения с нуля на единицу. Тогда поведение вентиля и можно
49:46
описать таблицей истинности. Число входов у вентиля и может быть
49:52
больше двух. Например, можно использовать три релья, выходы которых
49:57
соединены последовательно. Это тоже отразится на символе. У него будет три входа. Как можно догадаться,
50:04
параллельное соединение выходов двух реле реализует логическую операцию или и
50:10
называется вентилем или при таком подключении реле лампочка загорается,
50:15
если замкнут хотя бы один из ключей вместе контактов. Вентиль или имеет свой
50:21
символ для обозначения. Он отличается от символа вентиля и тем, что имеет закруглённую форму со стороны входов.
50:30
Если у вентиля или два входа, то он может находиться в четырёх логических состояниях в зависимости от комбинации
50:37
входных сигналов. Имея представление, как устроен вентиль и вентиль или и
50:43
инвертор, вернёмся к построению схемы для отбора кандидатов. Первый
50:48
переключатель в замкнутом состоянии соответствует кандидату мужчине. В разомкнутом женщине используем инвертор.
50:56
Тогда при входе равном единице, когда выключатель включен, выход с обозначением M мужчина также будет иметь
51:05
значение единица, а выход Gоль. Если выключатели разомкнут, то есть на
51:12
входе значение ноль, то выход M также будет иметь значение ноль, а выход G
51:18
единицу. Решение для холост не холост аналогично. Перейдём к профессиям. Мы поделили всех
51:25
кандидатов на четыре группы: учитель, полицейский, программист и прочая деятельность. Имеется два переключателя,
51:32
каждый из которых принимает по два состояния: включен-выключен. Различные сочетания состояния этих
51:38
ключей однозначно определяют каждую группу. Для наглядности проведём линии от каждого состояния каждого ключа к
51:46
соответствующей профессии. Для обозначения того, что кандидат является, например, учителем, необходимо включить
51:53
переключатель K3 и выключить переключатель K4. Используется
51:59
логическая И. Следовательно, сигналом у профессии учитель будет служить выход вентиля И. Но для того, чтобы на входе
52:06
логического вентиля И получить единицу, на входе также должны быть две единицы.
52:12
В нашем случае мы пока имеем одну единицу и один ноль. Изменим рисунок и в
52:18
месте, где выключатель K4 разомкнут, используем инвертор. Тогда при
52:23
включенном переключатели К3 и выключенном переключателе К4 на вход
52:28
вентиля и профессии учитель подаются две единицы, и на выходе также будет
52:35
единица. Заменим рисунок ключа К4 на схему.
52:40
Также используем инвертор связки с ключом К3 и добавим логическое и для
52:45
каждой профессии. Проверим работоспособность данной схемы. Например, мы выключили ключ K3 и
52:53
включили ключ K4. Так как на входе ключа К30 инвертор преобразует сигнал в
52:59
единицу и посылает его к логическим вентилям, связанным с полицейским и
53:04
прочей деятельностью. На входе ключа К4 единица. Данный сигнал
53:10
поступает к профессии программист и полицейский. В результате на вход всех
53:16
логических вентилей поступает по два сигнала. И только у логического вентиля, связанного с полицейским, они оба равны
53:23
единицы, в результате чего и на выходе будет единица, в то время как у всех
53:29
остальных на выходе ноль. Проверяем. Да, действительно, так и задумывалось. Для
53:35
обозначения себя как полицейского кандидат должен переключатель К4 перевести во включенное состояние, а
53:42
переключатель К3 в выключенное. Полученная схема, в которой два переключателя формирует один активный
53:49
выход из четырёх возможных, называется дешифратором двух линий на четыре. У
53:54
него два входа и четыре выхода, и в каждый момент времени активен только один выход, тот, который соответствует
54:02
входной комбинации. Итак, пока мы нарисовали только схему для пульта, который, используя четыре
54:09
переключателя, даст нам достаточное количество выходных сигналов, позволяющее решить задачу по отбору
54:15
кандидатов. Используя вентили и или и инвертор, перерисуем схему на семь ключей. Вместо
54:22
ключей будут входные сигналы, принимающие два значения: ноль или единица.
54:28
Осталось соединить входные сигналы полученной схемы с выходными сигналами пульта. Оставшиеся выходы от пульта
54:36
просто проигнорируем. Проверим схему на работоспособность. К примеру, кандидат мужчина
54:44
переключатель К1 включен. Холост переключатель К2 включен. По профессии
54:50
грузчик. Ключи К3 и К4 выключены.
54:55
Так как он не полицейский, то инвертор преобразует этот сигнал с нуля в единицу. И на вход логического вентиля И
55:02
подаются две единицы, поэтому на выходе у него тоже единица. Данный выход
55:08
одновременно является входом логического вентиля или, для которого достаточно
55:13
только одной единицы на входе, чтобы получить на выходе единицу. Выход вентиля или является входом следующего
55:20
вентиля И, у которого также на выходе получается единица. Следующий вентиль
55:26
или также на выходе даёт единицу. В результате лампочка загорается и дверь в
55:31
корабль для данного кандидата будет открыта. Для полноты картины рассмотрим ещё
55:38
несколько логических вентилей. Вентиль или не это логический элемент, поведения
55:44
которого противоположно вентилю или на релейной схеме его можно представить
55:49
следующим образом. Изначально цепь, в которой находится лампочка, замкнута.
55:55
Выходы двух реле соединены последовательно, и при активации электромагнитов реле они размыкают
56:01
переключатели лампочки. При таком подключении лампочка горит только в том случае, когда оба электромагнита не
56:08
активны. Другими словами, пока на входе два нуля, на выходе единица, но если
56:15
активировать хотя бы один электромагнит, лампочка погаснет. Вентиль и не
56:20
противоположен по логике вентилю и выходы реле подключены параллельно.
56:27
Лампочка горит, пока хотя бы один из электромагнитов не активен и гаснет
56:32
только в случае, если оба электромагнита находятся в активном состоянии. То есть
56:37
на выходе будет ноль только в единственном случае, когда на входе две единицы. Во всех остальных случаях на
56:45
выходе будет единица. Основа работы компьютера — это сложение
Сумматор
56:52
чисел, потому что все остальные арифметические действия. Вычитание, умножение и деления можно свести к
56:59
последовательности операций сложения, иногда с использованием дополнения издвигов. Цель этого раздела- построить
57:07
сумматор. Сумматор — это электронное устройство, которое принимает на вход
57:13
два числа и выдаёт их сумму. Мы соберём его, используя самые простые элементы:
57:19
выключатели, реле и лампочки. В десятичной системе мы можем легко составить таблицу сложения. Если
57:26
присмотреться, то каждое полученное значение можно разделить на две составляющие:
57:31
разряд единиц и разряд десятков. Данную таблицу можно разделить на две таблицы:
57:38
таблицу для разряда единиц или суммы и таблицу для разряда десятков, переноса.
57:44
Попытки построить прибор для сложения чисел в десятичной системе заведут нас в тупик, поэтому проще перейти к двоичной
57:51
системе, где всего два значения: ноль и один. Это идеально соответствует электрическим схемам, ведь
57:58
переключатели, лампочки, провода могут принимать только одно из двух состояний.
58:03
Благодаря этим обстоятельствам построить прибор, который складывает двоичные числа, будет проще, а разобраться в его
58:11
работе нагляднее. Пусть роль устройств для ввода чисел, сумму которых
58:16
необходимо найти, будут выполнять переключатели. Первый ряд переключателей будет
58:21
относиться к первому слагаемому. Второй ряд отвечает за второе слагаемое.
58:27
Позиция переключателя совпадает с позицией значения числа. Для обозначения
58:32
единицы переключатель необходимо перевести во включенное состояние для нуля в выключенное.
58:38
Роль вывода результата сложения будет выполнять ряд из лампочек. Включенная
58:44
лампочка соответствует единице, выключенная нулю. Ряд лампочек на одну
58:49
позицию должен быть длиннее, чем ряды переключателей, так как вывод в случае необходимости должен уместить в себе
58:56
число, равное сумме двух максимальных чисел, которые могут быть получены на входе. Реализацию нашего сумматора
59:03
начнём с таблицы сложения, но только для чисел двоичной системы. Также выделим из
59:09
неё две таблицы: таблицу суммы и таблицу переноса. Выведем на экран таблицы
59:15
зависимости выходных сигналов от входных при использовании различных логических
59:20
вентилей. Для большей наглядности перепишем эти таблицы в ином виде. А и Б
59:26
выполняют роль входных сигналов. Мы видим, что значение столбца перенос
59:31
полностью совпадает со значением, который мы получили бы при использовании вентиля И. А вот значение столбца суммы
59:39
равно единицам только когда оба выходных сигнала с вентиля или и вентиля и не
59:44
также равны единицам. Значит, если оба этих сигнала подать на вход вентиля и, мы получим нужный
59:52
результат. Данная схема из трёх вентилей называется вентиль исключающая или и
59:58
имеет своё обозначение. Оно схоже с обозначением вентиля или и отличается от
1:00:04
него дополнительной кривой линией со стороны входа. Итак, при сложении двух
1:00:09
двоичных чисел можно использовать следующие два вентиля, где разряд суммы задаётся выходом вентиля исключающее
1:00:16
или, а разряд переноса выходом вентиля и. Данная схема называется полусумматор.
1:00:23
Упростим её. Нашей целью было сделать сумматор. Почему у нас получился
1:00:29
какой-то полусумматор? Рассмотрим сложение двухзначных чисел в двоичной системе. К примеру, 1 и 01. На
1:00:37
первом шаге мы складываем значения из правого столбца. Складывая две единицы,
1:00:43
мы запишем ноль в результат, а единицу держим в уме для следующего разряда. Ну,
1:00:48
тут, конечно же, мы можем воспользоваться полученным полусумматором, у которого на выходе
1:00:54
суммы будет ноль, а на выходе переноса единица. Далее мы должны сложить
1:00:59
значение из следующего столбца, к которым дополнительно прибавит значение из переноса. Но с полусумматором этот
1:01:07
фокус не пройдёт. Он имеет только два входа, которые мы используем для двух
1:01:12
значений. Из соответствующего столбца. Для сложения трёх двоичных цифр
1:01:17
понадобится ещё один полусумматор, один из входов которого мы как раз используем
1:01:22
для переноса. А на второй вход подадим значение суммы из первого полусумматора.
1:01:28
В итоге получаем аж три выхода: выход суммы второго полусуматора, выход
1:01:34
переноса второго полусумматора и выход переноса первого полусумматора. На
1:01:39
выходе с суммы второго полусумматора мы получаем значение, которое мы вписываем при сложении чисел в столбик, в
1:01:46
соответствующий разряд. Осталось разобраться со значениями переносов обоих полусумматоров.
1:01:53
Давайте ради интереса воспользуемся ещё одним полусумматором и посмотрим, что получится. Используя различные
1:02:00
комбинации, которые мы можем подать на вход данной схемы, мы получим только четыре варианта выходов: 00
1:02:08
Кстати, эти же варианты мы бы получили
1:02:14
просто складывая три цифры двоичной системы в различных комбинациях.
1:02:19
Важным наблюдением будет то, что на выходе переноса у третьего полусумматора
1:02:25
всегда ноль. Получается, какие бы значения не подавались на вход данной системы, выходы переноса первого и
1:02:32
второго полусуматора одновременно никогда не принимают значения равной единицы. Одновременно нулю, да, но если
1:02:41
какой-то выход переноса равен единице, второй будет равен нулю. Для упрощения схемы третий полусуматор
1:02:48
можно заменить на вентиль или таким образом, используя два
1:02:54
полусуматора, мы получаем полный сумматор. Также для простоты сделаем его
1:02:59
упрощённую схему. Полный сумматор имеет три входа, один из которых вход
1:03:06
переноса, полученный при сложении цифр предыдущего порядка. У него также, как и
1:03:11
у полусумматора, два выхода. Для сложения двухчетырёхбитных чисел
1:03:16
необходимо использовать четыре сумматора. Выход переноса каждого из сумматоров является входным переносом
1:03:23
для последующего. Так как при сложении цифр наименьшего разряда входящего переноса ещё нет, этот сумматор заменим
1:03:31
на полусумматор. Подключим переключатели нашего прибора ко входам, а лампочки к
1:03:36
соответствующим выходам сум. Выход переноса последнего сумматора также будет подключён к лампочке. Проверим
1:03:44
работоспособность полученного прибора. Сложим два четырёхзначных числа двоичной системы. Для этого каждый переключатель
1:03:51
соответствующий единицы переведём во включенное состояние. Лампочкам, которые загорелись, соответствуют единице,
1:03:58
другим ноль. Если в схему вместо полусумматора
1:04:04
обратно вернуть сумматор, то путём копирования данной схемы можем уже складывать восьмибитные числа. Для этого
1:04:11
выход переноса у последнего сумматора необходимо вместо лампочки замкнуть на вход переноса первого сумматора
1:04:17
добавленной группы. Далее можно создать прибор, который будет складывать уже шестнадцатибитные числа. Мы остановимся
1:04:24
на восьмибитном сумматоре, упростим его схему для дальнейшей работы.
Ячейка памяти
1:04:33
В рассмотренных ранее нами схемах электромагнит реле и переключатель контакта имели разные источники питания,
1:04:41
объединим их в одну цепь. В такой цепи два переключателя. Один управляется
1:04:46
внешним воздействием, например, вручную, другой электромагнитом, подключенным к
1:04:51
этой же цепи. При включении первого переключателя цепь замыкается, лампочка
1:04:57
загорается, а электромагнит притягивает к себе подвижный контакт второго переключателя, чем размыкает цепь.
1:05:05
Лампочка гаснет, электромагнит обесточивается, пружина возвращает контакт на место,
1:05:11
замыкая цепь. Процесс повторяется снова и снова. Замыкание и размыкание контакта
1:05:17
реле сопровождается характерным щёлкающим или дребезжащим звуком.
1:05:25
Такое устройство без лампочки используется как электромеханический зумер. Если ко второму переключателю
1:05:32
присоединить молоточек, а под ним установить чашу, то можно получить аналог столь любимого старого школьного
1:05:38
звонка, сообщающего об окончании урока. Уберём из схемы первый переключатель.
1:05:45
Получается замкнутая система, в которой замыкание цепи вызывает её размыкание, а
1:05:50
размыкание снова замыкание. Такое поведение напоминает работу инвертора, только здесь выход подаётся
1:05:57
обратно на вход. Данная цепь называется вибратором или осциллятором. Его
1:06:03
особенностью является то, что он замыкает и размыкает цепь без внешнего воздействия.
1:06:09
Возможно, вы видите тут противоречие, ведь инвертор выдаёт противоположный сигнал, а здесь как будто вход и выход
1:06:17
равны. На самом деле всё объясняет задержка в срабатывании реле. Сигнал, пройдя
1:06:23
инвертор, в данном случае реле с переключающим контактом, возвращается на вход уже с противоположным значением.
1:06:31
Задержка определяется временем срабатывания и отпускания реле, которое зависит от его конструкции. Если
1:06:38
построить график зависимости выходного сигнала от времени, получится периодическая форма. Сигнал постоянно
1:06:44
меняется от нуля к единице и обратно. Циклом колебаний называется интервал, в
1:06:50
течение которого выход вибратора изменяется, а затем возвращается в исходное состояние. Время, которое
1:06:57
занимает один цикл, называется периодом колебаний, а количество таких циклов в секунду частотой. Чистота измеряется в
1:07:04
герцах и зависит от характеристик конкретного реле и параметров цепи. В вибраторе, который работает сам по себе,
1:07:12
мало проку. Однако он является важной частью автоматизации, так как в любом
1:07:17
компьютере имеется вибратор определённого типа, обеспечивающий синхронную работу всех компонентов
1:07:23
компьютера. Рассмотрим ещё одну схему, в которой два реле соединены так, что
1:07:28
электромагнит первого реле управляет контактом, питающим электромагнит второго релья, и наоборот. Логическую
1:07:35
модель этой схемы можно представить в виде двух инверторов, соединённых перекрёстно. Выход первого подаётся на
1:07:42
вход второго, а выход второго на выход первого. Такая конфигурация образует
1:07:48
обратную связь, которая закрепляет текущее состояние. При подаче питания
1:07:53
схема самопроизвольно установится в одно из двух состояний и будет его помнить до тех пор, пока внешнее воздействие не
1:08:01
изменит его. Вся информация о состоянии системы содержится в одной переменной Q,
1:08:07
пока не произойдёт изменения. Таким образом, конструкция является бестабильной ячейкой, способной хранить
1:08:14
один бит информации. В чистом виде перекрёстные инверторы в реальных
1:08:19
устройствах почти не применяются, поскольку не имеют управляющих входов для изменения состояния. На практике их
1:08:26
дополняют входами установки и сброса, получая, например, триггеры.
RS-триггер
1:08:33
Одной из простейших схем, позволяющих управлять переменной состояния Q, является RSGER. Название он получил от
1:08:41
английских слов reset и set. RS-тригр можно собрать на двух вентилях или не
1:08:47
напомним, что выход вентиля или не равен единице только тогда, когда все его входы равны ноль. При подаче хотя бы
1:08:55
одной единицы на выходе будет ноль. Разберём все четыре возможные комбинации. входов R и S. Первый случай
1:09:04
RS S0. На верхний вентиль или не подаётся единица, значит его выход Q
1:09:10
равен нулю. Оба входа нижнего и линия равны нулю, поэтому его выход равен
1:09:17
единице. Второй случай. R = 0 Sни. На
1:09:22
нижний вентиль или не подаётся единица, значит его выход равен нулю. Оба входа
1:09:28
верхнего и линия равны нулю, поэтому Q равен единице. Третий случай. Оба входа
1:09:34
равны единице. При подаче логической единицы на оба входа оба выхода принимают значение ноль. Однако из-за
1:09:42
разного времени распространения сигнала в элементах невозможно гарантировать, что при последующем сбросе входов в ноль
1:09:50
оба выхода установятся в корректное устойчивое состояние. Даже кратковременная задержка на одном из
1:09:57
входов может привести к тому, что триггер окажется в непредсказуемом состоянии, поэтому такой режим считается
1:10:04
запрещённым. Четвёртый случай. Оба входа равны ноль.
1:10:09
В данной ситуации мы не можем определить, чему равны выходы обоих вентилей, так как, чтобы их определить,
1:10:16
необходимо знать их значение. Замкнутый круг не совсем. Предположим, что у
1:10:22
выхода Q имеется какое-то значение, установленное до наступления четвёртого случая. Q предыдущее. Оно может
1:10:29
принимать одно из двух значений 0 и 1. Рассмотрим вариант, при котором Q
1:10:35
предыдущее равно нулю. Тогда нижний вентиль или не имеет в качестве входов
1:10:40
два нуля, а значит на выходе единицу. Имея на входе одну единицу, верхний
1:10:47
вентиль и линия на выходе получает ноль. Выходит, значение q при q пре предыдущем
1:10:54
равным 0 также равен нулю. Вариант второй, при котором Q предыдущее равно
1:11:00
единице. Нижний вентиль или не в качестве входов имеет один ноль и одну
1:11:05
единицу, значит на выходе получает ноль. Верхний вентиль или не на входе имеет
1:11:12
два нуля, значит выход Q равен единице, то есть такое же значение, как и у Q
1:11:18
предыдущего. Выходит, что когда входы R и S принимают значение, значение выхода Q зависит от
1:11:25
предыдущего значения Q. Если Q было ноль, оно останется ноль. Если было
1:11:32
единица, останется единица. Это и есть память триггера. Пока входы равны ноль,
1:11:38
схема хранит своё состояние. Зная текущее значение на выходе, можно
1:11:43
сделать вывод, какой из входов был последним под напряжением. Подытожим.
1:11:49
Подача единицы на S устанавливает Q равным единицей. Подача единица на R
1:11:54
сбрасывает Q в 0. При R равно 0 и S равно 0 значение Q сохраняется. Таблицу
1:12:01
истинности RS триггера можно расширить, дополнив значением предыдущего состояния
1:12:06
выхода Q. В упрощённом виде RS триггер изображается прямоугольником с двумя входами R и S и двумя выходами Q и Q
1:12:15
подчёркиванием. Стриггер способен хранить один бит информации. Возникает вопрос, почему
1:12:22
схема с обратной связью вообще что-то запоминает? Секрет здесь в том, что
1:12:27
выход одного вентиля поступает на вход другого и наоборот. Такая перекрёстная
1:12:33
связь закрепляет текущее состояние. Даже если входы R и S равны нулю, схема
1:12:39
помнит, какой сигнал был подан последним, и сохраняет это значение.
1:12:45
Именно благодаря обратной связи получается память.
D-защелка
1:12:51
RS-триггер прост в устройстве, но у него есть два заметных недостатка. Во-первых,
1:12:56
он имеет запрещённое состояние. Если одновременно подать сигналы на оба входа, результат становится
1:13:02
неопределённым. Третий случай, когда сигналы R и S равны единице. Во-вторых,
1:13:08
он реагирует на изменение входа всё время, пока подаётся сигнал. Проблема в
1:13:13
том, что в реальных схемах сигнал на входах не всегда меняется идеально резко и чётко. Он может дрожать из-за шумов
1:13:21
или наводок или переключаться слишком быстро. Если это происходит в тот
1:13:27
момент, когда триггер ещё находится в процессе установки нового состояния, он может зафиксировать несколько изменений
1:13:34
вместо одного. В итоге на выходе вместо запланированного значения появится
1:13:39
случайный результат. Снабдим RS-триггер функциональностью, позволяющей принимать
1:13:45
данные только в определённый момент. Для этого перед входами R и S установим два
1:13:50
вентиля И. Один вентиль получает сигналы S и А, другой — R и А. Сигнал А- сигнал
1:13:58
разрешения записи. Его смысл управлять моментом записи. Пока А равен нулю, на
1:14:05
выходах винтелей I всегда будет ноль. и входы RS триггера остаются неактивными.
1:14:11
При А равном единице схема работает как обычный стриггер. Если S = 1 и R = 0,
1:14:18
выход Q равен единице. Если R = 1 и S = 0, Q сбрасывается в ноль. После записи А
1:14:27
снова можно сбросить в ноль. Триггер сохранит своё состояние, а изменения сигналов на R и S не будут на него
1:14:35
влиять. До следующего разрешения записи. Для того, чтобы избавиться от
1:14:40
недопустимого состояния, когда S и R = единицам, заменим их на один вход.
1:14:46
Сигнал D, дата, данные. Информация с D будет поступать на нижний вентиль I. А
1:14:52
на вход верхнего вентиля И подадим инвертированный сигнала D. Вход А при
1:14:57
этом переименуем в клок. В данном контексте вход клок обозначает
1:15:02
синхронизация. Полученная схема называется дезащёлка со срабатыванием по уровню.
1:15:09
Термин защёлка обозначает, что схема запирает один бит информации и хранит его для дальнейшего использования.
1:15:17
Срабатывание по уровню означает, что выход Q повторяет вход D всё время, пока сигнал на входе клок имеет активный
1:15:24
уровень. Например, равен единице. Когда клок равен нулю, защёлка закрывается.
1:15:30
Выход Q остаётся неизменным. Даже если вход D продолжает меняться,
1:15:39
иногда необходимо, чтобы значение выхода Q менялось не по уровню, а только в момент перехода сигнала клок из одного
1:15:46
состояния в другое. Например, при переходе с нуля к единице по положительному фронту. Для этого
1:15:53
используется D-триггер, который строится из двух Dзащёлок, ведущий и ведомой.
D-триггер
1:16:02
Для создания де-триггера используем две Dзащёлки. Левая защёлка будет ведущей,
1:16:08
правая ведомой. Выходные сигналы ведущей защёлки обозначим через Q1 и Q1штрих
1:16:15
ведомой через Q2 и Q2штрих. Сигнал Q1 от ведущей защёлки поступает
1:16:21
на вход D ведомой защёлки и идёт напрямую на один из входов в её нижнего
1:16:26
вентиля И. к верхнему вентилю И этот же сигнал поступает через инвертор. Но так
1:16:32
как сигнал Q1штрих, ведущий защёлки, является противоположным сигналу Q1, то
1:16:38
схему можно упростить на один инвертор, соединив выход Q1 штрих с входом
1:16:43
верхнего вентиля и ведомой защёлки. Для лучшей читабельности схемы
1:16:49
перевернём ведущую защёлку. Также увеличим расстояние между
1:16:54
вентилями, ведущей защёлки. Выходы ведущей защёлки являются входами для
1:17:00
вентиля ведомой защёлки. Сигнал клок управляет обоими защёлками, но перед
1:17:06
входом в ведущую защёлку он проходит через инвертор. Из-за этого ведущая защёлка будет открыта при клок равном
1:17:13
нулю. Ведомая защёлка приоткроется при клок равном единице только для того,
1:17:18
чтобы получить значение от ведущей защёлки. Благодаря такой конструкции на
1:17:23
выходку фиксируется только одно значение D, то, которое было в момент фронта
1:17:29
сигнала клок, то есть в нашем случае перехода значения клок от нуля к единице. Данная конструкция устраняет
1:17:36
прозрачность защёлки и выход реагирует только на переход значения клок.
1:17:41
Рассмотрим работу де-триггера пошагово. Для этого добавим на каждый из выходов лампочки, которые будут загораться при
1:17:49
значении равном единицы. На входы D и клок установим выключатели, которые
1:17:54
будут передавать в качестве сигнала либо единицу, либо ноль. Провода ярко-зелёного цвета переносят значение
1:18:01
равной единицы. Провода тёмно-зелёного цвета переносят значение равное нулю. У
1:18:08
красных проводов значение не определено. Прикло равном нулю ведущая защёлка
1:18:14
прозрачна. В неё записывается текущее значение D, то есть значение на выходе
1:18:19
Q1, ведущей защёлки равно значению D. Лампочка, работающая от сигнала Q1,
1:18:26
загорается только тогда, когда на вход D подаётся единица. Далее рассмотрим, что происходит при
1:18:33
изменении значения клок от нуля к единице. Переключаем значение клок. Так
1:18:39
как к ведущей защёлке значение клок поступает через инвертор, она закрывается. В это же время к ведомой
1:18:46
защёлке от входа клок поступает единица. Она открывается и принимает значение с
1:18:52
выхода ведущей защёлки. В нашем примере выход Q1 ведущей защёлки при
1:18:58
переключении клок равен единицы. Поэтому на выходе Q2 ведомой защёлки мы тоже
1:19:04
получаем единицу. Изменение сигнала на входе D, пока сигнал на входе клок равен
1:19:09
единицы, никак не влияет на выходы Q1 и Q2. Выход Q1 меняется только во время
1:19:16
перехода клок по фронту, в нашем примере по положительному фронту, то есть при переходе от нуля к единице.
1:19:24
Вернём клок значение ноль. Открывается ведущая защёлка, и ей передаётся сигнал
1:19:30
D. В нашем случае в момент перехода значение сигнала D равно нулю, поэтому
1:19:35
значение Q1 меняется на ноль. Ведомая же защёлка закрылась. Её эти изменения уже
1:19:42
не касаются. И как бы не менялся сигнал d, ведомая защёлка сохраняет сигнал,
1:19:48
полученный от ведущей защёлки в момент перехода сигнала к лок от нуля к единице.
1:19:54
На схемах D-триггер обозначается с треугольной стрелкой на входе клок.
1:19:59
Просто треугольник, срабатывание по положительному фронту. Треугольник с кружком, срабатывание по отрицательному
1:20:07
фронту. Итак, Dтригр не просто хранит один бит информации, но и делает это
1:20:13
строго в момент фронта тактового сигнала. Благодаря этому он превращается в управляемую ячейку памяти. Бит
1:20:20
обновляется только тогда, когда это нужно, обеспечивая стабильную предсказуемую работу компонентов
1:20:27
компьютера. Преобразуем dщёлку. Заменим имена входов
Сборка памяти
1:20:34
и выходов на более релевантные. Выход Q переименуем в out, что означает
1:20:39
вывод данных. Вход D переименуем в in. Ввод данных. Сигнал, который управляет
1:20:46
моментом записи, назовём W. От слова WR right. Записать. Когда W равно единице,
1:20:52
значение от входа in передаётся на выход out. Когда W = 0, защёлка закрыта и
1:20:59
значение на выходе не меняется. Обратный выход Qштрих в этой схеме не используется. Он нужен только для
1:21:06
внутренней работы защёлки. Подразумеваем, что сигнал запись обычно равен нулю. В таком случае сигнал на
1:21:13
входе in не влияет на выход out. Для сохранения значения со входа in в
1:21:19
защёлке на вход запись нужно подать единицу, затем опять ноль. В момент,
1:21:24
когда вход W равен единице, значение защёлки на выходе out дублирует значение
1:21:30
на входе in, а после переключения в ноль сохранит его. Для возможности
1:21:36
масштабирования полученной защёлки её изображение можно упростить. Данная защёлка запирает один бит информации.
1:21:44
Если объединить, например, четыре таких защёлки, получится маленькая группа памяти, которая хранит уже целое
1:21:51
четырёхбитное значение. Такая объединённая защёлка содержит четыре входа in, четыре выхода out и один общий
1:22:00
вход запись. Для записи четырёхбитного значения в такой защёлке вход запись
1:22:06
переключается с нуля на единицу. Данные с входов in отобразятся на выходах out.
1:22:11
Для их сохранения состояние входа запись опять переключается в ноль. Упростим
1:22:17
изображение четырёхбитной защёлки. На входе in и выходе out укажем число,
1:22:23
обозначающее их количество. Рассмотрим другой способ компоновки
1:22:29
однобитных защёлок, когда есть необходимость записи и чтения вместо одного четырёхбитного значения. четырёх
1:22:37
отдельных однобитовых значения в течение некоторого промежутка времени.
1:22:43
В роли ячеек записи и хранения данных будут использоваться те же самые однобитовые защёлки. Задача стоит
1:22:51
смоделировать два логических блока, первый из которых управляет записью данных, решает, в какую именно защёлку
1:22:59
записать бит. Второй блок занимается чтением, выбирает, из какой защёлки
1:23:04
считать данные. Начнём с первого блока. На вход подаётся сигнал, который должен быть записан в
1:23:11
одну из защёлок. Какую именно из защёлок мы выбираем сами? Под записью мы
1:23:16
подразумеваем дублирование значения со входа in на выходе out. Это происходит в
1:23:22
том случае, когда на вход подаётся единица. Если мы объединим входы ин всех
1:23:28
защёлок, то для записи в нужную ячейку данных, подаваемых на этот единственный вход, в это же время на её вход WR right
1:23:36
должна подаваться единица. Таким образом, первый блок должен управлять
1:23:41
сигналом write каждой из ячеек. Если мы хотим записать сигнал, например, во
1:23:47
вторую защёлку, то на вход второй защёлки от логического блока должна подаваться единица. В это же время на
1:23:54
все входы остальных защёлок подаётся ноль. Ничего не напоминает? Мы уже
1:24:00
решали похожую задачу, когда отбирали людей для покорения космоса по шести критериям, располагая всего четырьмя
1:24:08
переключателями. Ту задачу мы решили, используя дешифратор двух линий на четыре. С его помощью, используя два
1:24:15
переключателя, можно точно выделить один нужный выход из четырёх возможных.
1:24:21
Используем его и в данном случае. Дадим переключателям имена S1 и S2. Первую
1:24:28
защёлку будет производиться запись, когда оба переключателя выключены, то есть их значение равно нулю. Для этого
1:24:35
их сигналы должны пройти через инвертор. Во вторую ячейку запись будет
1:24:41
производиться, когда на выключатель S1 подаётся ноль, а на выключатель S2 единица. Через инвертор проходит только
1:24:49
сигнал от выключателя S1. Далее логика продолжается.
1:24:57
У нас есть ещё один сигнал, который управляет моментом записи. Запись должна
1:25:04
происходить именно тогда, когда он равен единице, а не всё время, пока какая-то
1:25:09
из комбинаций S1 и S2 поддерживает один из выходов активным. Этот сигнал также
1:25:16
подадим на все логические и левого блока в качестве третьего сигнала. Теперь для
1:25:21
того, чтобы защёлка открылась для записи данных, помимо правильного сочетания переключателей, сигнал записи должен
1:25:29
иметь значение равной единицы. Проверим полученную схему. Например, на вход
1:25:35
подаётся единица. Мы хотим записать это значение в третью защёлку. Для этого
1:25:41
переключатель S1 должен быть включен. S2 выключен. Для записи на вход Wт единица.
1:25:49
После того, как данные записались, для их сохранности вход W отключается.
1:25:55
Перейдём ко второму блоку, блоку считывания. Его задачей является выбор
1:26:00
сигнала от нужной защёлки и вывод этого сигнала на общий выход схемы. Задача
1:26:06
обратная той, что мы решали с левым блоком. Для её решения используем селектор четырёх линий на одну.
1:26:13
Разберём, как он работает. Также, как и в дешифраторе, для выбора одной линии
1:26:18
используются переключатели. Назовём их S3 и S4. На вход вентиля И подаются по
1:26:25
три сигнала. Два сигнала подаются от переключателей. Оставшийся сигнал-
1:26:30
выходной сигнал out, соответствующий защёлки. Выходы этих вентилей и являются
1:26:36
входами для вентиля или по сути селектор не выбирает саму защёлку, а активирует
1:26:42
один из вентилей и, к которому подключен выход соответствующей защёлки.
1:26:48
Комбинация переключателей S3 и S4 определяет, какой именно вентиль И будет
1:26:54
открыт. Таким образом, выбрав, например, комбинацию переключателей соответствующей третьей защёлки,
1:27:02
единственный вентиль И, на вход которого поступят две единицы от переключателей
1:27:07
S3 и S4, будет третий вентиль И. Значение его выхода зависит только от
1:27:13
того, какое значение подаётся на его третий вход, то есть хранится на выходе
1:27:19
out третьей защёлки. Если это ноль, то на выходе будет ноль. Если это единица,
1:27:25
то значение на выходе тоже единица. А что с выходами остальных вентилей? И так
1:27:32
как любая комбинация переключателей S3 и S4 делает активным только один вентиль
1:27:37
И, в нашем примере это третий вентиль И, то на выходе всех остальных вентилей I,
1:27:43
вне зависимости от того, какое значение хранится в соответствующих защёлках, будут нули, и они не оказывают влияния
1:27:51
на общий выход вентиля или правого блока. Его выход равен значению в третьей
1:27:56
защёлке. Внесём ещё одну корректировку. Так как мы рассматриваем простейший
1:28:02
пример, где в один момент можно либо читать данные из памяти, либо их записывать, нет необходимости
1:28:09
использовать четыре переключателя. Два для дешифратора и два для селектора. Они
1:28:14
дублируют функции друг друга. Их задача — просто выбрать нужную защёлку.
1:28:19
Сократим их до двух. Эти переключатели называются адресом. В данном случае этот
1:28:25
двухбитный адрес однозначно определяет, какой защёлки мы обращаемся. Дешифратор
1:28:31
по адресу выбирает одну линию для записей, а селектор один сигнал при чтении. Оба управляются одной и той же
1:28:38
комбинацией переключателей, которая указывает на нужную ячейку памяти.
1:28:43
Память бывает с произвольным доступом и последовательным, при использовании которой для считывания значения по
1:28:51
определённому адресу требуется сначала прочитать все значения из предыдущих адресов. Рассмотренная конфигурация
1:28:59
защёлок является памятью с произвольным доступом. Упростим изображение этой
1:29:04
конфигурации, способную хранить четыре отдельных однобитовых значения. Её также
1:29:10
можно обозначить как массив RAM 4 на1, в котором можно сохранить 4 бита
1:29:16
информации. Для получения массива, в котором можно сохранить 8 бит, необходимо использовать восемь защёлок и
1:29:23
трёхбитный адрес, то есть использовать не менее трёх переключателей, так как с помощью такого их количества можно
1:29:30
организовать к каждой защёлке отдельный доступ. Для 16 бит, соответственно, 16
1:29:36
защёлок и не менее четырёх переключателей. и так далее. Если же
1:29:41
использовать одни и те же адреса и сигнал входа W для разных массивов
1:29:46
памяти, например, для двух массивов 4х1, в результате получится массив 4х2, то
1:29:53
есть массив, который хранит четыре значения, размер каждого из которых 2
1:29:58
бита. Аналогично можно сконструировать и более крупные массивы, например, 1024
1:30:05
на8 бит. Данный массив имеет не менее 10ти переключателей для адресов и по
1:30:11
восемь входов in и out. Такой массив позволяет хранить 1024 байта, 1 Кб.
От реле к транзистору
1:30:20
Собранную таким образом память невозможно реализовать с помощью реле. Во-первых, реле — это громмозкие
1:30:27
механические устройства. Для хранения даже небольшого объёма данных потребовались бы сотни реле, километры
1:30:35
проводов и огромное количество энергии. Во-вторых, каждое реле имеет
1:30:40
ограниченную скорость срабатывания. При каждом переключении подвижная часть должна успеть притянуться и вернуться на
1:30:48
место. В больших масштабах это приводит к значительным задержкам. Со временем
1:30:54
реле изнашиваются, контакты подгорают, пружины теряют упругость, и схема
1:30:59
перестаёт работать стабильно. Следующим шагом в развитии электроники стало
1:31:05
использование вакуумных электронных ламп. Из них, как и из реле, можно собрать логические элементы и, и, линея,
1:31:13
а затем сумматоры, дешифраторы и селекторы. То есть всё то, что мы строили, используя реле, можно
1:31:19
реализовать без единой подвижной детали. Лампа не содержит механических частей, а
1:31:25
управляет потоком электронов, благодаря чему переключается в тысячи раз быстрее реле, да ещё и бесшумно. В середине XX
1:31:34
века лампы уже активно применялись в радиоприёмниках, телевизорах и усилителях. Инженеры перенесли этот
1:31:41
принцип и в вычислительную технику. Именно лампы стали основой первых электронных компьютеров. Однако у ламп
1:31:48
были и серьёзные недостатки. Они потребляли огромное количество энергии и
1:31:54
выделяли много тепла. Большие вычислительные машины буквально жарили воздух. Кроме того, лампы часто
1:32:00
перегорали, а их были тысячи, и обслуживание превращалось в ежедневную замену сгоревших элементов. Да и
1:32:07
занимали они всё так же много места, из-за чего один компьютер мог быть размером в целую комнату. Интересно, что
1:32:14
их главное преимущество, высокая скорость, в то время не играла решающей роли. Основным узким местом оставалась
1:32:21
скорость считывания программы с перфокарт или перфоленты. Тем не менее, лампы стали важным эволюционным шагом.
1:32:29
Они позволили инженерам избавиться от механики и перейти к полностью электронным вычислениям. Это открывало
1:32:35
путь к новым, более надёжным и компактным решениям. И следующим таким решением стал транзистор,
1:32:42
полупроводниковый прибор, выполняющий ту же функцию, что и лампа, но в сотни раз
1:32:48
меньше, надёжнее и экономичней. Он стал настоящей революцией в электронике и
1:32:54
навсегда изменил облик компьютеров. Транзистор, как и вакуумная лампа,
1:32:59
управляет электрическим током, но делает это не при помощи нагрева и потока электроно вакууме, а с помощью
1:33:06
полупроводников, материалов, которые могут менять свою проводимость. Полупроводники, например, Германии и
1:33:13
Кремний получили своё название не потому, что проводят ток наполовину хуже, чем, например, такой проводник,
1:33:19
как медь, а потому, что их проводимость можно контролировать с помощью примесей и электрического напряжения. Транзисторы
1:33:27
бывают биполярные и полевые. Чтобы понять общий принцип их работы, рассмотрим биполярный транзистор типа
1:33:33
НПН. У него три вывода: база, коллектор и эмитер. Можно представить, что между
1:33:39
коллектором и эмитером находится электронный ключ. Управление этим ключом осуществляется подачей слабого тока на
1:33:47
базу. Если на базе есть ток, транзистор открывается, ток свободно течёт от
1:33:52
коллектора к эмитеру. Если тока на базе нет, транзистор закрыт и ток не
1:33:57
проходит. Иными словами, подача тока на базу резко снижает сопротивление между
1:34:02
коллектором и эмитером, а его отсутствие создаёт барьер, эквивалентный
1:34:07
разомкнутой цепи. Важное свойство транзистора состоит в том, что для его управления требуется очень малый ток, а
1:34:15
управляемый им ток может быть в десятки или сотни раз больше. Подключив два
1:34:21
транзистора последовательно, можно реализовать логическую операцию и, а при
1:34:27
параллельном подключении логическую операцию или транзисторы обладают целым
1:34:32
рядом преимуществ: миниатюрность, надёжность, энергоэффективность,
1:34:37
высокая скорость переключения. Но тем не менее, несмотря на все эти преимущества,
1:34:42
оставалась одна проблема. Каждый транзистор соединялся с другими компонентами, конденсаторами,
1:34:49
резисторами, другими транзисторами вручную. Даже простая схема требовала
1:34:55
десятков или сотен деталей, соединение которых нужно было паять вручную. Это не
1:35:00
только замедляло процесс сборки, но и делало каждую схему потенциально уникальной и повышала вероятность ошибок
1:35:07
и отказов. Поэтому следующим шагом стало изобретение интегральных схем. Достижение столь же значимое, как и сам
1:35:15
транзистор. В конце пятидесятых годов появилась идея объединить несколько
1:35:20
транзисторов, резисторов и проводников на одной крошечной пластинке из кремняя.
1:35:26
Так появилась интегральная схема или чип. Теперь вместо того, чтобы соединять
1:35:31
элементы вручную, вся схема изготавливалась целиком сразу на кристалле. Это дало фантастические
1:35:38
преимущества. Схемы стали намного меньше. быстрее за счёт коротких
1:35:43
соединений, дешевле благодаря массовому производству, надёжнее. Именно так,
1:35:49
объединяя миллионы, а затем и миллиарды транзисторов на одном кристалле, получился микропроцессор,
1:35:56
мозг современного компьютера. В памяти хранятся данные и инструкции,
Центральный процессор (CPU), АЛУ, Блок управления, регистры, кэш.
1:36:03
которые выполняет процессор. Каждый процессор поддерживает набор инструкций,
1:36:08
посредством которых реализуются программы различной сложности, даже те,
1:36:14
которые ещё не были написаны на момент разработки процессора. Эти инструкции сами по себе очень просты и выполняют
1:36:21
фундаментальные операции. Например, доступ к памяти, чтение и запись.
1:36:28
Арифметические операции, сложение, вычитания, умножения, деления, логические операции и или не,
1:36:36
отслеживание хода программы, переход к определённой части кода, вызов под
1:36:41
программы и так далее. Процессор состоит из множества компонентов. Познакомимся с
1:36:48
тремя основными: арифметико-логическое устройство, устройство управления и
1:36:54
регистры. Регистры — это сверхбыстрая внутренняя память процессора. Они
1:36:59
временно хранят данные и адреса, которые процессор использует прямо сейчас для
1:37:04
выполнения текущей команды. Например, числа, которые нужно сложить или адрес
1:37:10
следующей инструкции. Регистры работают гораздо быстрее, чем оперативная память.
1:37:16
Размер регистра соответствует разрядности процессора. Арифметико-логическое устройство
1:37:23
выполняет математические и логические операции. Алу — это сложная
1:37:29
комбинационная логическая схема, на вход которой поступают значения и код операции, указывающий, что нужно
1:37:36
сделать: сложить, вычесть, сравнить и так далее. На выходе Алу выдаёт
1:37:41
результат вычислений. Устройство управления осуществляет общее управление
1:37:47
работой процессора. Работа процессора — это непрерывный повторяющийся цикл,
1:37:52
известный как цикл выборки декодирования и исполнения. Так как исполняемая
1:37:58
программа хранится в оперативной памяти, устройства управления требуется адрес,
1:38:03
по которому из памяти необходимо считать следующую инструкцию. Для этого один из
1:38:09
регистров процессора используется для счётчика команд, указывающий на адрес
1:38:14
инструкции, которую необходимо выполнить следующей. Устройство управления
1:38:20
считывает инструкцию из оперативной памяти и помещает её в специальный регистр, регистр команд. Далее
1:38:28
декодирование. Встроенный декодер инструкции анализирует считанный двоичный код и определяет тип операций:
1:38:35
арифметическая, логическая, передача данных или переход к другой части
1:38:41
программы. Исполнение. В зависимости от результата декодирования, устройство
1:38:46
управления посылает сигналы в нужные части процессора: валу, блок обмена с
1:38:52
памятью или изменяет счётчик команд. После выполнения результат сохраняется в
1:38:58
регистре или в памяти. Счётчик команд увеличивается и процессор переходит к
1:39:03
следующей инструкции. Так шаг за шагом повторяется один и тот же цикл.
1:39:10
Площадь кристалла, на котором размещаются все эти компоненты, ограничена. Из-за этого фундаментального
1:39:16
ограничения и возникли два разных подхода к проектированию набора инструкций. Циск и риск. Циск — это
1:39:24
архитектура со сложным набором инструкций. Здесь каждая команда может
1:39:29
выполнять сразу несколько действий. Например, одна инструкция может загрузить число из памяти, прибавить к
1:39:36
нему другое и записать результат обратно. Такой подход характерен для
1:39:42
архитектуры X86, используемой в большинстве настольных компьютеров. Риск
1:39:48
архитектура с упрощённым набором инструкций. Здесь команды максимально простые, и каждая выполняет одно
1:39:55
элементарное действие. Такие инструкции исполняются очень быстро, а сложные
1:40:01
операции строятся из нескольких простых. Этот подход используется, например, в
1:40:06
армпроцессорах, которые используются в смартфонах, планшетах и микроконтроллерах.
1:40:12
Циск делает ставку на сложные универсальные команды. Меньше кода, сложнее декодирование. Риск на простоту
1:40:19
и скорость. Больше кода, быстрее исполнение. Несмотря на различия, обе
1:40:24
архитектуры служат одной цели: позволить процессору как можно быстрее и эффективнее выполнять команды программы,
1:40:32
хранящиеся в памяти. Для ускорения работы современные процессоры используют
1:40:38
конвейерную обработку. Вместо того, чтобы ждать, пока одна инструкция полностью пройдёт весь цикл, выборка
1:40:45
декодирования исполнения. Конвейер позволяет процессору выполнять все эти шаги одновременно, но для разных
1:40:52
инструкций. Пока первая инструкция исполняется, вторая уже декодируется, а
1:40:59
третья выбирается из памяти. Это похоже на сборочную линию. Каждый этап
1:41:04
конвейера постоянно занят, что значительно увеличивает общую производительность процессора.
1:41:10
Со временем инженеры столкнулись с физическим пределом. Дальнейшее повышение скорости, с которой работает
1:41:17
процессор, стало неэффективным из-за проблем с перегревом и энергопотреблением.
1:41:23
Появилась идея создания многоядерного процессора. Ядро — это фактически
1:41:29
полноценный процессор со своими Алу, Уу и регистрами, размещённый на одном
1:41:35
кристалле в одном корпусе с другими такими же ядрами. Вместо того, чтобы
1:41:41
один процессор работал очень быстро, несколько ядер работают параллельно.
1:41:46
Многоядерный процессор может одновременно выполнять несколько задач, по одной на каждое ядро или разбивать
1:41:53
одну большую задачу на части, что радикально повышает общую производительность.
1:41:59
При выполнении программы процессору приходится обращаться к одним и тем же участкам относительно медленной
1:42:05
оперативной памяти. Для того, чтобы попусту не тратить время на ожидание, в
1:42:11
процессоре создали небольшой объём быстрой памяти, где хранится копия данных из оперативной памяти, к которым
1:42:18
часто приходится обращаться. Эта память называется кэш-память процессора.
1:42:23
Кэш-память — это очень быстрая и очень дорогая память, которая располагается
1:42:28
непосредственно на кристалле процессора. Она действует как буфер, который хранит
1:42:34
данные и инструкции, которым процессор, скорее всего, обратится в ближайшее
1:42:39
время. Кэш-память разделена на иерархию уровней. Первый уровень — это самая
1:42:45
быстрая и самая маленькая кэш-память. Она встроена прямо в каждое ядро процессора. Скорость кэша первого уровня
1:42:53
сравнима со скоростью регистров. Уровень второй. Он больше по объёму, но немного
1:42:59
медленнее, чем память первого уровня. Обычно он также привязан к конкретному ядру. На третьем уровне самая большая и
1:43:07
самая медленная. Кэш третьего уровня, как правило, является общим для всех ядер процессора. Его цель — обеспечить
1:43:15
быструю коммуникацию между ними и хранить крупный массив часто используемых данных. Таким образом,
1:43:21
процессор постоянно ищет нужные данные по строгой иерархии. Сначала в регистрах, затем первый уровень, второй
1:43:29
уровень и затем третий уровень. И только если нигде не находит, он вынужден обращаться к медленной оперативной
1:43:36
памяти. Такая сложная иерархия памяти вместе с многоядерностью, конвейерной
1:43:41
обработкой и двумя разными подходами к архитектуре делает современный процессор тем невероятно быстрым и сложным
1:43:48
вычислительным центром. По ходу знакомства с процессором может возникнуть вопрос: как именно выглядят
1:43:55
инструкции, которые исполняет процессор? Что именно такого считывает процессор из
1:44:00
памяти? Все команды, которые выполняет процессор, записаны в виде машинного
Машинный код
1:44:07
кода длинных последовательностей, нулей и единиц. Каждая такая комбинация имеет
1:44:13
строго определённый смысл. Для наглядности разберём небольшой фрагмент машинного кода.
1:44:21
Это тридцатидвухбитная инструкция для процессоров семейства АРМ. Данная
1:44:26
последовательность делится на ключевые поля. Поле условия занимает биты с тридцать первого по двадцать восьмой. В
1:44:33
отличие от многих других процессоров, архитектура ARM имеет уникальную особенность. Каждая инструкция
1:44:39
начинается со специального четырёхбитного поля. Условия. Это поле позволяет процессору принимать решение:
1:44:46
выполнять текущую команду или пропустить её. Условия зависит от флагов состояния,
1:44:52
которые были установлены предыдущими операциями, например, после сравнения двух чисел. Если состояние процессора
1:44:59
совпадает с условием, команда выполняется. Если нет, процессор мгновенно пропускает команду и переходит
1:45:06
к следующей. В нашем коде10 означает all выполнить инструкцию
1:45:14
всегда. Следующее поле — тип инструкции. Это
1:45:20
поле служит своего рода главным переключателем или фильтром. Оно определяет, к какой из категорий
1:45:26
относится команда. Арифметика, работа с памятью, переход. Как следствие, как
1:45:31
интерпретировать остальные биты. В нашем примере код 001 сообщает процессору. Это
1:45:37
команда обработки данных, и она использует непосредственное число. Благодаря этому процессор знает, что
1:45:44
биты с 2четого по двадцать первый означают точный код операции. Биты с
1:45:50
одиннадцатого по нулевой означают закодированное числовое значение оперант, а не адрес памяти или что-то
1:45:57
другое. Поле код операциикод бит с двадцать четвётого по двадцать
1:46:02
первый. Upcд сокращение от operation cod однозначно определяет, какую именно
1:46:09
элементарную операцию должен выполнить процессор. В нашей инструкции 1101
1:46:16
означает операцию MOV, перемещение данных. Бит 20, известный как S-бит или бит
1:46:23
установки состояния — это простой переключатель, который позволяет точно контролировать логику программы. Если
1:46:30
Sбит равен единице, процессор обновляет свои флаги состояния в соответствии с
1:46:37
результатом текущей операции. Если S-бит равен нулю, команда выполняется, но
1:46:43
флаги остаются без изменений. В нашей инструкции Sбит равен нулю, поскольку
1:46:49
простое перемещение числа не должно менять состояние флагов. Регистры биты с
1:46:56
девятнадцатого по двенадцатое. Следующие поля указывают процессору, откуда брать
1:47:01
данные и куда записывать результат, используя сверхбыструю внутреннюю память процессора. Регистры. Биты с
1:47:08
девятнадцатого по шестнадцатый. Регистр источника. Указывает регистр, содержащий
1:47:13
первый оперант. Бит с пятнадцатого по двенадцатый. Регистр назначения
1:47:18
указывает регистр, в который будет записан результат операции. В нашей инструкции регистр источника RN
1:47:26
игнорируется, так как мы перемещаем число, а не содержимое регистра. Поле RD
1:47:32
указывает на регистр R7, биты с одиннадцатого по нулевой.
1:47:38
Последнее поле содержит непосредственно значение, которое будет перемещено. В данном случае это число четыре. Итог.
1:47:46
Инструкция сообщает процессору переместить число 4 в регистр R7. Писать
1:47:52
программы на машинном коде, состоящем только из нуле единиц, человеку было бы крайне сложно. Поэтому существует язык
1:48:00
ассесмблера. Это язык программирования, в котором каждое выражение представляет
1:48:05
собой одну инструкцию машинного языка. Операции на языке ассемблера состоят из
1:48:11
мемокодов. читабельных сокращений от английских слов, которые соответствуют обкод процессора. Та же самая инструкция
1:48:19
ARM, которую мы только что расшифровали, может быть представлена с помощью следующего выражения. Так гораздо проще.
1:48:28
Перед тем, как передать программу, написанную на языке ассемблера процессору, её необходимо перевести
1:48:34
обратно в нули единицы. Для этого используется специальная программа Assembler. Хотя писать программы на
1:48:41
языке ассемблера быстрее, чем на машинном коде, это всё равно занимает много времени и специфично для каждой
1:48:48
архитектуры. Чтобы устранить эти недостатки, были разработаны высокоуровневые языки программирования,
1:48:55
которые синтаксически более близки к человеческому языку, но это уже совсем
1:49:01
другая история. Мы разобрали работу двух основных
Устройства ввода/вывода, хранилища (SSD, HDD), шина
1:49:06
компонентов вычислительной машины, памяти и процессора. Однако для создания
1:49:11
полноценного компьютера, к которому мы привыкли, этого недостаточно. И процессор, и оперативная память
1:49:18
энергозависимы. Это означает, что при отключении питания они полностью теряют своё содержимое.
1:49:26
Иными словами, после включения питания нужно заново загружать все программы в оперативную память. Согласитесь, не
1:49:33
самое удобное решение. Чтобы устранить этот недостаток, компьютер оснащается
1:49:38
вторичным хранилищем данных. В отличие от оперативной памяти, оно энергонезависимо,
1:49:44
то есть сохраняет данные даже при отключении питания. Наиболее распространённые виды вторичного
1:49:50
хранилища жёсткие диски и твердотельные накопители. Жёсткий диск — это
1:49:56
классическое устройство, в котором данные записываются и считываются с вращающихся магнитных пластин при помощи
1:50:03
считывающих головок. Головка перемещается над поверхностью пластин, находя нужный сектор и выполняя запись
1:50:10
или чтение данных, примерно как игла на виниловом проигрывателе. Процесс одновременно механический и
1:50:17
электромагнитный. К его плюсам относятся низкая цена за гигабайт, высокая ёмкость, подходит для
1:50:24
хранения архивов, фильмов, резервных копий. Минусы: сравнительно низкая
1:50:30
скорость из-за механических движущихся частей, чувствительность к ударам, шум
1:50:35
во время работы. Твердотельный накопитель — это современное устройство,
1:50:41
в котором данные хранятся в полупроводниковых ячейках памяти, способных сохранять электрический заряд
1:50:47
без питания. Записи чтения данных происходят полностью электронным
1:50:53
способом, без движущихся частей, поэтому операции выполняются почти мгновенно.
1:50:59
Его плюсы: высокая скорость работы ускоряет загрузку операционных систем и
1:51:04
программ. бесшумность, устойчивость к вибрациям и ударам, низкое
1:51:09
энергопотребление. Минусы: более высокая цена за гигабайт,
1:51:14
ограниченный ресурс ячеек. Впрочем, в современных моделях это не существенно для обычного пользователя. Итак, жёсткий
1:51:22
диск, медленный, ёмкий, дешёвый, подходит для долговременного хранения.
1:51:28
Твердотельный накопитель быстрый, компактный, дороже, идеален для операционной системы и программ,
1:51:35
требующих мгновенного доступа. При наличии вторичного хранилища
1:51:40
компьютер загружает данные из него при необходимости. Например, при включении
1:51:46
компьютера операционная система загружается с хранилища в оперативную память. Когда пользователь запускает
1:51:54
приложение, будь то текстовый редактор или браузер, его программный код тоже
1:51:59
загружается из хранилища в память. И только после этого процессор может
1:52:04
начать выполнять команды программы. Вторичное хранилище — это место для долговременного постоянного хранения
1:52:11
данных, поэтому его называют просто хранилищем, в то время как оперативную память просто памятью. Современный
1:52:19
компьютер должен иметь возможность взаимодействовать с пользователем и внешним миром. Для этого используется
1:52:26
устройство ввода-вывода. Они делятся по своим функциям. Устройство ввода
1:52:32
позволяют пользователю передавать информацию компьютеру. Мышь, клавиатура, микрофон. Устройство вывода позволяют
1:52:39
компьютеру передавать информацию пользователю. Монитор, динамики, принтер. Интересно, что даже вторичное
1:52:46
хранилище тоже считается устройством ввода-вывода по отношению к процессору.
1:52:52
Для процессора это всего лишь ещё одно устройство, из которого можно считать данные или записать их обратно. Для
1:52:59
обмена данных между всеми основными компонентами компьютера используется шина. Шины могут иметь разные варианты
1:53:07
реализации, но в общем смысле это совокупность проводников, по которым передаются сигналы. Через шину процессор
1:53:14
получает инструкции из памяти, записывает туда результаты вычислений, а
1:53:20
также обменивается данными с внешними устройствами. Различают три основных типа шин, каждая из которых отвечает за
1:53:27
свою часть работы. Шина данных передаёт сами данные между процессором, памятью и
1:53:34
устройствами ввода-вывода. Её разрядность определяет, сколько информации бит может быть передана за
1:53:41
один такт. Шина адреса передаёт адреса ячеек памяти или портов устройств,
1:53:48
водо-вывода, к которым хочет обратиться процессор. Она определяет максимальный объём памяти, который процессор способен
1:53:55
адресовать. Шина управления передаёт сигналы, управляющие процессом передачи.
1:54:02
Например, когда начать и когда закончить обмен. Все три шины работают
1:54:07
согласованно, обеспечивая обмен данными между всеми компонентами компьютера.
1:54:13
Вместе они образуют системную шину, основу взаимодействия процессора памяти
1:54:19
и устройств вводо-вывода.


