Как компьютеры компьютерные?
Игра Жизни
Жизненная игра Конвея - это игра для «0 игроков» в том смысле, что она разыгрывается на основе начального или «начального состояния» без участия игрока постфактум. Начальное состояние управляется небольшим набором правил для получения непредсказуемого результата. Каждый квадрат в сетке представляет собой ячейку в «живом» или «мертвом» состоянии. Игра движется вперед «поколениями», моментами времени, когда текущее состояние трансформируется в новое состояние в зависимости от текущего поля и правил игры (5). Вот правила:
Это очень трудно понять, если не увидеть, как это происходит. Вот несколько эволюций досок, основанных на правилах. Для справки, вот сетка живых клеток 9 x 9 в графическом интерфейсе этой конкретной игры Conway:
Вот несколько живых примеров приведенных выше кейсов:
Эти кейсы представляют собой основные операции или строительные блоки Игры Жизни. Можно сказать, что последовательность поколений похожа на тиканье часов, поколение за поколением заставляет клетки на вашей доске видоизменяться в зависимости от их непосредственного окружения.
Что произойдет, если вы позволите двум или более образцам ячеек взаимодействовать? Вот некоторые примеры:
Основываясь на тех простых формациях, с которых мы начали, в эти огромные автоматизированные системы трудно поверить. По мере того, как сложность этих систем растет и растет, мы все больше и больше абстрагируем наше понимание игрового поля от первоначального набора правил. Вместо того, чтобы говорить о том, что происходит, когда ячейка имеет четырех соседей, мы можем начать делать более абстрактные утверждения, например: «Что произойдет, если два Госпера указывают друг на друга?» Они столкнутся и умрут? Сможет ли одно превзойти другое? »Мы знаем, что 8 основных правил работают под капотом, но на самом деле нет смысла говорить о глайдерах Госпера с точки зрения распространения клеток.
Это продолжает оставаться верным по мере того, как мы увеличиваем размер, мощность и масштабы наших структур. Давайте рассмотрим звездолет. Похоже, есть четыре структуры, похожие на гнезда, каждая из которых запускает планеры Госпера в центре, чтобы построить звездолет. На этом уровне анализа мы могли бы придумать такие слова, как «гнездо», «пушка Госпера» и «звездолет», чтобы описать, как работает наша система. Это визуальный и аналитический уровень, над которым мы работаем. Допустим, вся наша цель в этом упражнении состояла в том, чтобы понять, как ведут себя два звездолета при столкновении. На самом деле нас не волнует, что происходит внутри каждой «пушки Госпера», кроме как знать, что она производит детали для звездолета. Наша цель - понять звездолет, а не планер Госпера и 8 основных правил. Но что, если бы вы только видели звездолет и хотели понять 8 правил? Например, я хочу разобраться в основных правилах ЦП, которые создают все вышеупомянутые сложности. Нам нужно будет изучить фактическое оборудование и физические процессы, задействованные в процессоре (хотя символы, представляющие эти вещи, логически эквивалентны их феномену, полезно знать, что чип на самом деле делает выполняет этот материал).
Процессоры
Как вы знаете, центральный процессор вашего компьютера может выполнять невероятно сложные задачи. То, как разработчики микросхем ЦП достигают этого, конечно, выходит за рамки практических знаний в области программирования, но они раскрывают концепции, которые помогают вам задуматься о программировании.
Представьте, что процессор вашего компьютера - это ваша игровая доска. Если в Game of Life восемь дискретных правил, то у вашего процессора их семь:
Возможно, не так важно понимать конкретные логические ворота, хотя, конечно, можно, если это интересно. Каждый символ или «вентиль» выше представляет собой отдельную логическую функцию с входами и выходами. На самом деле это, как правило, электрические устройства, которые будут давать определенный электрический выход (включен или выключен) в зависимости от входов. Таким образом, он преобразует двоичные электрические схемы в информацию о том, какие ворота были успешно сработаны (2,3).
Итак, у нас есть игровое поле и свои правила. Чего нам не хватает, так это ощущения того, что время идет. В «Игре жизни» мы говорили, что время проходит в дискретном «тиканье» каждого поколения. Оказывается, у процессоров тоже есть своего рода тикающие часы, которые определяют порядок операций для всей своей обработки. Термин «герц» часто используется в физике и компьютерных науках и определяется как мера циклов в секунду. Итак, в нашей Игре Жизни, если мы установим скорость на четыре поколения в секунду, мы можем сказать, что у поколений частота составляет четыре герца. Герц ЦП часто используется как показатель того, насколько объективно мощный компьютер (хотя в наши дни большинство ЦП более чем способны выполнять основные задачи, поэтому ограничивающими факторами являются другие проблемы с оборудованием, а не ЦП) (2,3).
Вы заметите огромную разницу на много порядков между нашей гипотетической скоростью генерации (4 Гц) и числом, которое вы найдете в окне «Об этом Mac»:
2,7 гигагерца. Гига - это сокращение от МИЛЛИАРД. Таким образом, этот ЦП может выполнять около 2700000000 циклов в секунду, что просто поразительно, если сравнить это с диапазоном частот в герцах, который мы, люди, можем испытать на собственном опыте (например, поколения Game of Life с частотой 4 Гц).
Но когда мы говорим, что ЦП может выполнять 2,7 миллиарда циклов в секунду, что мы подразумеваем под циклом?
В каждом процессоре есть очень маленькое устройство, известное как «часы» (отсюда и термин тактовая частота). Часы - это электрическое устройство, которое подает электрические импульсы в сеть логических вентилей ЦП. Ваш ЦП будет извлекать инструкции из вашей оперативной памяти, транслировать инструкции, а затем отправлять электрические импульсы в соответствующую сеть логических вентилей для выполнения желаемой операции (3).
Если вы представите на каком-то уровне анализа один электрический импульс, проходящий через ЦП, представляет собой одно вычисление, тогда тактовая частота, МГц, мощность ЦП или как вы это называете, просто переводится как «мои часы ЦП могут колебаться и отправлять 'X' миллиардов электрических импульсов через его логические ворота каждую секунду! »
Как упоминалось выше, ЦП - не единственная часть компьютера, имеющая аналогию в Игре Жизни. Также может быть чрезвычайно полезно обсудить и понять иерархию языков, которые содержит ваш компьютер, от самого простого цифрового языка до языков программирования и фреймворков самого высокого уровня. Пожалуйста, следите за обновлениями, если вам интересно, так как я постараюсь в течение семестра разветвлять больше постов из этого, чтобы поговорить об этом и других проблемах с оборудованием! Спасибо за чтение.
Источники
1.
2.
3.
4.
5.
6.
7.
8.
7.
8.