Почему процессор работает тактами? Почему не сделать его работу постоянной?

Ответить
Ответить
Комментировать
1
Подписаться
1
4 ответа
Поделиться

Давайте изобретём компьютер! С чего мы начнём? Конечно же с идеи и модели. Что должен делать компьютер? - Исполнять какой-то алгоритм. Алгоритм нельзя выполнить мгновенно весь (позже разберём кейс, когда всё-таки в некотором смысле можно), он состоит из шагов, а конкретный шаг состоит ещё из каких-то элементарных действий, которые наш компьютер умеет делать сам за ограниченное время: имеет для этого все аппаратные средства. Количество этих действий чётко детерминировано, иначе был бы возможен компьютер, который умеет делать абсолютно всё. (Тут, кстати, по пути понятны потенциальные возможности компьютера, и чем они ограничены)

Как только мы говорим про детерминированный набор возможных действий и программирование последовательности выполнения этих действий, мы тут же попадаем в ловушку дискретности. Компьютеры - это дискретные автоматы. 1) Прочитать, какое действие и с какими параметрами будет следующим; 2) выполнить его; 3) вернуться к 1. Вот основные такты, которые выполняет компьютер.

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

А можно ли обойтись без тактов?

Давайте вообразим машину, которая на любой входной сигнал мгновенно выдаёт ответ. Такими машинами можно считать нейронные сети. (Не важно что их внутреннее устройство и реализация могут быть основаны на дискретных машинах. Возьмём реализацию как данность. Ведь есть и живые биологические нейронные сети.) Теперь нет никаких тактов. На каждое изменение входной информации, например, картинки с видеокамеры, есть ответ, в котором, например, факт наличия улыбающегося лица. Такая программа, например есть во многих современных фотоаппаратах, которые осуществляют съёмку с задержкой, ожидая пока герои снимка улыбнуться.

Тут конечно есть небольшое лукавство. Нейронной сети тоже требуется некоторое время на распознавание образа. Это можно условно считать тактом, но если входные сигналы меняют своё состояние с меньшей частотой, то пользователь ни о каких этих тактах знать и не будет. Для него такая машина будет выглядеть как машина, работающая непрерывно.

Резюме: Я показал, каким путём развитие вычислительной техники пришло к дискретным детерминированным компьютерам, а также другой взгляд на компьютеры (в широком смысле) который даёт возможность до определённой степени вырваться из плена тактов.

P.S.

Кстати аналоговые вычислители тоже существовали, они решали очень ограниченный круг задач, но были свободны от тактов. Т.е. делали всё за один такт. Полюбоваться на них можно в Бонне в музее Arithmeum. Например, там есть арифмометр, который умножает за один оборот ручки. Действующий.

9
0

Давайте вообразим машину, которая на любой входной сигнал мгновенно выдаёт ответ. Такими машинами можно считать нейронные сети

Это не так.

0
Ответить

В целом согласен. Это конечно же не так, но это не совсем не так. У биологической нейросети есть латентный период когда изменение входных сигналов не отражается на выходе, но он обусловлен не тактами (на чём я тут делаю акцент), а скоростями работы синапсов и временем насыщения нейронов. А иногда наличие латентного периода является важным элементом определённой функции. Т.е. отсутствие мгновенного отклика является в редких случаях как важным элементом определённой функции, и как раз тем самым мгновенным ответом. Например, когда требуется не реагировать на помехи.

0
Ответить
Прокомментировать

Ну на самом деле комментарий не совсем верный. За передачу данных по шине и отвечает процессор, он сам все регулирует и периодически сам опрашивает все устройства (есть номерация тактов в каждом цикле и на каждый такт идёт своя функция например каждый 17й такт в цикле будет отпрашиваться 1й usb порт, а каждый 19й com порт и т.д. (номера тактов я взял от балды)) соответственно такты нужны не для того что бы "знать когда брать свой пирожок". Такты нужны для того что бы четко разделять между собой информацию и убирать возможные помехи. Если частота будет слишком большой, информация в электронном виде как она есть в процессоре и вообще в вычислительной технике может накладываться и искажать информацию которая идёт после или до не. Все же знают что информация передается путем электрических импульсов которые представляют собой  биты информации и по шине передаются пачками по 4/8, если они будут расположенны слишком близко то магнитное поле создаваемое ими может давать помехи. Ещё одна проблема это надо различать когда какой бит, такты помогают решить эту проблему, различить слитно отосланные 1010010 будет гораздо проще чем если надо будет передать последовательность из большого количества едениц или нулей идущих подряд, к примеру 1111111 при постоянной передаче будет выглядеть как прямая линия и сложно понять сколько эта линия содержит едениц, при тактовой передаче это будет 7 скачков напряжения и будет ясно что каждый скачек соответствует одной единице, кстати модель передачи информации где 1 - есть ток, а 0 - отсутствие тока не совсем верна, в современных компьютерах 1 это ток с напряжением 5 В, а 0 это ток с напряжением -5 В, отсутствие тока служит для разделения битов между собой.

Lost Soulотвечает на ваши вопросы в своейПрямой линии
7
0
Прокомментировать

Дискретность, это математическая абстракция реальных, непрерывных процессов, удобная для операций с числами (или еще точнее с цифрами). Так, прост удобнее.  Все реальные процецессы происходящие в компьютерах - непрерывны. как и весь остальной мир, в них нет разрывов 2-го рода. А дискретность лишь имитация (приближение) к реальности. Во многих областях, это упрощает и применение и восприятие реальности. Но как ни приближай, все равно физические процессы (даже взрывы,  "внезапные" остановки...) имеют определенную длительность. Сужествуют непрерывные процессоры (аналоговые), они и сейчас работают, например управляют самолетами,  автомобилями  решают множество других задач. Дискретизация - это один из путей упрощения реальности, для удобства общений с ней. Первые процессоры имели очень низкую частоту дискретизации, а чем дальше тем она выше, и выше частота работы процессора. Это приближение к непрерывной реальности. Конечно, есть задачи, которы только и можно решать дискретно - но, увы, их меньшинство.

0
0
Прокомментировать

Во-первых надо определиться, что такое "постоянная работа".  Люди вот тоже работают "тактами" -то есть определённую рабочую смену...

Итак, что такое выполнение реальных действий. Если свести его к простейшим логическим элеметам - транзисторам. То они должны на входе в зависимости от 0 и 1 напряжение на двух входах выдать 0 или 1 на выходе. Но на выходе не будет 0 или 1 мнговенно. Необходимо время для нарастания напряжения до нужного уровня, чтобы его можно было подать на вход другого транзистора. Совественно, когда таких операций много на них уже требуется значительно время.  Далее, допустим у нас чисто технически одна операция занимает 0,34 наносикунды, другая, 0,43 наносекунды, а третья 0,5 наносекунд.  Тогда мы точно знаем, что за 0,5 наносекунд у нас все операции гарантированно выполнятся. Вот это и есть работата тактами - разрешать выполнение следующей операции, когда мы знаем, что операция гарантированно вполнена и разрешать выполнение следующей.  Казалось бы можно выполнить одну операцию за 0,34 наносекунды, а другую за 0,5.  Но процессор требует данные из памяти и т.д. То есть параллельно с центральным процессором работают другие устройства.  Если что-то сработало за 0,34 наносекунды, а другое, взаимосвязанное за 0,5 то всё равно надо ждать именно 0,5 наносекунд, чтобы операция корректно заверишлась.  Это я ещё не учитываю конвейрную архитектуру и многоядерность, а древние, достаточно простые центральные процессоры. 

0
0
Прокомментировать
Ответить