Эта работа была прислана на наш "бессрочный" конкурс статей и автор получил приз – рубашку-поло от MSI.
Каково будущее процессоров? Как они будут эволюционировать? Читая заметки и новости сегодняшнего дня, можно ответить: будущее за многоядерностью, вылизыванием архитектуры. Ну и сопутствующим увеличением частоты, но не в ущерб архитектуре (как это было сделано в Willamette и Prescott). Но довольно странно, что никто не вспоминает про аналоговые компьютеры. Я даже не имею в виду рядовых пользователей, никто – ни Intel, ни AMD, и иже с ними, не вспоминают про чудесные возможности аналоговых компьютеров: ответ мы получаем со скоростью света (понимать буквально), практически независимо от сложности формулы.
Что представляет собой аналоговый процессор? Он состоит из транзисторов, как и цифровой, но транзисторы работают не в режиме 0, 1, а в режиме усиления. Простейшие функции +, –, *, / будут представлены, как усилители (ослабители). Более сложные, типа sin, cos, log – составлены из более простых. Если короче – это будет сделано приблизительно так же, как и сейчас: много где можно услышать или прочитать о том, что современные процессоры умеют только складывать числа – а все остальное построено на базе этого.
Итак, представили, что у нас есть блоки +, –, *, /, корень, степень, cos, sin, tg, и т.д, которые выдают ответ моментально, как только мы подали входные данные. Управляющий блок соединяет в нужной последовательности вычислительные блоки, например, для выражения sin(log(cos(x+y)+z^2)–3*x), подает в начало входные данные – у нас есть сразу ответ. Тут же вопрос – как мы сможем сразу вычислить длинную формулу, ведь у нас только один блок +, а для приведенной формулы нужно два. Есть два выхода:
Почему же никто не пытался такое сделать? Можно сразу найти оправдание – ведь обычные (цифровые) компьютеры уже очень долго развиваются, как взять все и поменять? Это практически невозможно – огромная инерционность рынка, колоссальные затраты на разработку обвязки просто не позволят одной компании, даже и консорциуму реализовать такое. Я думал над этим вопросом и нашел ответ, гениальный по своей простоте – а зачем все менять? Встроить аналоговый блок в обычный процессор, по типу того, как встраивают различные MMX, 3DNow!, SSE, сделать отдельный управляющий блок, который сможет осуществлять преобразования аналоговый сигнал <–> цифровой, главное условие – высокая точность и достаточная его скорость. И будет все отлично.
Какие могут возникнуть претензии и вопросы к такому решению?
Ответы можно найти моментально:
Учитывая тематику данного сайта, можно поставить вопрос: что же делать оверклокерам? Ведь всю работу будет выполнять блок "мгновенных вычислений". По некоторому размышлению – разогнав управляющий блок, можно будет разогнать немного и вычислительный :)). Наверное, в этом и будет заключаться вся задача.
Ну и напоследок – никто не заметил, что я нигде не употребил слова ЦП или CPU? Это потому, что подобную архитектуру могут вполне успешно перенять и видеопроцессоры. А им это еще удобнее будет, так как затенение, освещение – ничто иное, как усиление сигнала. А сейчас именно эти две операции в видеопроцессорах и востребованы – имитация воды, реалистичные тени, и тому подобные операции с текстурами.
Но все-таки главное – это должна быть золотая середина между аналогом и цифрой. Аналог обеспечивает скорость, а цифра – точность. Возможно, именно из-за недостаточной точности аналоговых компьютеров, в свое время от них отказались.
Прочитав сие собственное творение, подумываю насчет патента :).
Ждём Ваших комментариев в специально созданной ветке конференции.