Я был компьютерным ботаником много-много лет. Я могу программировать на нескольких языках и даже могу их создавать. Я сел с приятелем на днях и спросил, как компьютер на самом деле берет электричество и что-то с ним делает, и мы просто не могли понять это, и Google тоже не сильно помог.
Я имею в виду, как компьютер берет постоянный поток электричества и превращает его в 1 и 0, а затем фактически делает что-то с этими 1 и 0, как включить свет на 15 секунд?
Я понимаю ворота (И, ИЛИ, НОР, НАН, НЕ) и немного о диодах , резисторах и транзисторах , но я подумал, что это было бы идеальным местом, чтобы объяснить это с точки зрения истинных мирян!
Кто-нибудь может указать мне правильное направление или дать мне краткое объяснение?
Ответы:
Это широкий вопрос, на который нет простого ответа; от медленных проводов по медным проводам до создания веб-сайта в Firefox далеко. Я постараюсь дать вам общий обзор снизу вверх и указать вам правильные вещи, чтобы посмотреть вверх.
Кодировка чисел
Основная мотивация - вычислять вещи, как в арифметике ». Первое, на что нужно обратить внимание - как представлять числа. Было много подходов, использующих десятичную или троичную систему, и я думаю, что даже восьмеричные системы, но, в конце концов, двоичная система победила. Теперь мы знаем, что должны создавать устройства, которые работают с двумя значениями - давайте назовем их и .10 1
Обратите внимание, что есть также несколько способов кодирования чисел в двоичном виде. После того, как вы соберете свой первый процессор, вы осознаете преимущества определенных действий. Популярные примеры - поплавки с двумя дополнениями и IEEE . Для начала ограничимся простыми натуральными числами.
ворота
Предположим, мы используем двоичное кодирование. Подумайте, как вы научились добавлять в начальную школу и запишите то же самое для двоичных чисел. Как оказалось, строительные блоки булевой алгебры уже существуют для вас; легко построить базовый сумматор (и другие арифметические функции), используя логические элементы .
Как построить такие ворота выходит за рамки компьютерных наук; электротехника предоставила несколько решений с использованием, например, труб или транзисторов . Направляйтесь в Электротехническую биржу для вопросов по этому вопросу.
Часы и состояние
Не все ворота одинаково быстрые, и не все части вычислений имеют одинаковое количество ворот. Поэтому мы должны проявлять особую осторожность, чтобы отдельные операции не обгоняли друг друга. Оказалось полезным использовать глобальные часы ; Результатом заданной сети вентилей является состояние выходных проводов в конце цикла (которое может сильно изменяться, пока каскад вентилей приближается к своим отдельным конечным состояниям).
Это означает, что результаты одного цикла могут быть сохранены до начала следующего цикла, например, если вы подключите петли. Есть ряд базовых элементов, которые вы можете использовать для различного эффекта, все они создаются из ворот; некоторые называются шлепанцами . Они также используются для создания регистров , элементов, которые хранят числа столько раз, сколько необходимо.
Архитектура и Команды
Теперь у вас есть множество вариантов дизайна. Какие арифметические операции предоставляет ваш процессор? Как выглядят ваши команды? Может быть полезно взглянуть на архитектуру MIPS, чьи ранние формы просты по сравнению с другими проектами. Посмотрите на планы :
Оригинал с http://ube.ege.edu.tr/~erciyes/CENG311
По сути, это выборка и разборка команд, набор регистров, ALU и управление. Команды кодируют, какую операцию ALU выполнять с какими операндами (по номеру регистра, в котором они хранятся), как манипулировать счетчиком программ² или каким регистром загружать / сохранять из / в память³.
Дальнейшие соображения
К настоящему времени у вас есть работающий процессор в современном смысле, предполагая, что вы выяснили, как построить память и как передавать ей команды. На пути к современной машине нужно сделать много выборов. Вот некоторые:
альтернативы
Вышесказанное сильно зависит от того, как сложилась история. В другом мире с разными умами компьютеры могут работать по-разному. На самом деле существует множество моделей вычислений , некоторые из которых имеют преимущества, которые во многих случаях делают их полезными в качестве абстракции для реальных машин. Есть также попытки подражать тому, как работает наш мозг, то есть дать возможность нейронным вычислениям или, в более общем смысле, использовать стратегии решения проблем и хранения информации, наблюдаемые в природе , в первую очередь ДНК и квантовые вычисления.
Так что, может быть (надеюсь?) Информация выше - это вся древняя история еще через 50 или 100 лет.
источник
Полная картина довольно сложная. Существует много слоев, построенных друг на друге, которые совместно реализуют абстракции высокого уровня поверх электрических напряжений. Нет простого объяснения того, как все соединено, особенно если учесть, что компьютерное оборудование и программное обеспечение значительно изменились за последние пятьдесят лет.
Если вы заинтересованы в том, чтобы увидеть, как все соединено воедино, вы можете обратиться к книге «Элементы вычислительных систем» - книге, которая начинается с шлюзов NAND и постепенно создает работающую реализацию Tetris поверх компилятора и операционной системы, которая Вы также строите. Каждая часть компьютера построена на предыдущей, что может помочь вам увидеть, как все работает.
источник
Подкаст безопасности сейчас! сделал серию о том, как работают компьютеры, начиная с базовых принципов.
Пробелы в числах объясняются тем, что каждый другой эпизод является эпизодом обратной связи с слушателем, поэтому вы можете захотеть его посмотреть. Также между 241 и 247 они сделали несколько эпизодов о SSL из-за последних новостей о странах, которые вынуждают CA выдавать им корневые сертификаты.
Также EP. 248 - это «Portable Dog Killer», который убивает не собак, а звуковое оружие, которое Стив сделал в детстве, чтобы научить соседскую собаку не бегать к линии ограды и пытаться атаковать людей на тротуаре. ,
источник
Компьютер работает, манипулируя градиентами энергии (которые мы затем интерпретируем как 1 и 0) последовательным , определенным образом. Это согласованность, которая определяет компьютер, в то время как это определение, которое разделяет различные процессоры.
Кроме того, узнайте, как всего два логических элемента (ИЛИ и И) являются достаточными строительными блоками для создания любого компьютера общего назначения. Смотрите также Дэнни Хиллис и компьютер Тинкертой.
источник
Компьютер - это большая синхронная логическая система , а это значит, что
Он имеет специализированные схемы для хранения информации, пока компьютер включен (ОЗУ, в огромных количествах). Он имеет специализированные схемы для выполнения двоичной арифметики (на самом деле биты обрабатываются группами - как правило, кратными 8 - которые вместе представляют целое число). И у него есть специальные возможности маршрутизации, основанные на адресах памяти, которые являются не чем иным, как целыми числами.
Наконец, что не менее важно, современный компьютер имеет программу, также хранящуюся в ОЗУ, которая представляет собой список инструкций, закодированных как целые числа, которые выполняются последовательно, обычно выбирая данные из памяти, выполняя некоторую арифметику и отправляя результаты обратно в память.
В вашем сценарии можно подумать о реализации, в которой истекшее время хранится где-то в ОЗУ, и программа дает команду
Обратите внимание, что все эти элементы в настоящее время достигают высокой степени сложности, и каждое предложение в этом очень кратком обзоре заслуживает нескольких книг объяснений.
источник
Есть несколько способов сделать функцию задержки или преобразовать двоичные данные в десятичные данные или уровень сигнала. Когда вы вводите значение «15», компьютер отображает растровое изображение числа 15 на экране. На самом деле это двоичное значение, в данный момент двоичный код вашей клавиатуры также отправляется в процессор. Он будет анализировать данные, а затем преобразовывать код в блок обработки ALU (арифметическая логика), чтобы преобразовать его в импульсную микросхему ЦАП. Аналоговый сигнал теперь контролирует частоту (частоту от кГц до Гц) триггера. Теперь выходная частота будет направлена в ОЗУ, а процессор считывает ОЗУ, чтобы соответствовать, если данные равны «1111». Это 4 секунды.
источник