Пишу, по большей части, про историю, свою жизнь и немного про программирование.

Вычисление без единой инструкции процессора

Это очень круто, цитирую почти полностью:

Авторы продемонстрировали, что механизм трансляции адресов на архитектуре x86 обладает полнотой Тьюринга, т. е. с его помощью можно реализовать любой алгоритм. С помощью хитрой настройки различных контрольных таблиц, которыми пользуется процессор, они вводят процессор в состояние, в котором он не может выполнить ни одной инструкции, т. к. непрерывно происходят исключения, но разные исключения в зависимости от приготовленных данных — и таким образом процессор вычисляет!

Известно, что одной инструкции условного перехода по вычитанию (вычисли a=a-b, и если это меньше или равно нуля, перейди в c) достаточно для Тьюринг-полноты. В этом хаке такая инструкция симулируется с помощью последовательности page faults (от невозможности загрузить данные), которая заканчивается double fault (когда указатель на стек уменьшается ниже нуля).

Любопытно, что ни один существующий эмулятор x86 не мог правильно запустить этот хак, потому что он опирается на слишком извращенную конфигурацию контрольных таблиц, и на тонкие нюансы поведения процессора в этой извращенной конфигурации.

У всего этого даже есть практические применения, правда, в области, которая ничего хорошего и полезного миру не приносит — обнаружение того, что программа бежит под отладчиком или в виртуальной машине.

Таким образом вычисление происходит без единой инструкции процессора! Речь идёт о проекте trapcc, на Ютьюбе есть видео, где запущена известная игра «Жизнь», запрограммированная таким способом (код специально адаптирован под эмулятор Bochs).

3 комментария
greli (greli.livejournal.com) 2013

Лучший комментарий:

That the hardware version of the brainfuck philosophy.

(Это аппаратная версия философии Брэйнфак)

masterspammer (masterspammer.livejournal.com) 2013

Комментарий для greli.livejournal.com:

Осталось написать на нём интерпретатор «мозголюба».

Vlad 2016

Вот менталитет! Я про два комментария. Второй от представителя бывшего союза. Ничего своего, ни ОС, ни сред (серьезных) программирования, один быдлокодинг с передиранием чужих решений, а понтов то! «Интерпретатор мозголюба». Походу таким аппаратом и был сделан мозг автора поста. А тем кто занимается подобными изысканиями жму дистанционно руку, за смелость и нетривиальное мышление. Браво! Автору блога спасибо и побольше аналогичного, неизбитого, хоть и школоте (одмина крупных расийских сетей) этого не надо. :)