Lokky - Хакеры сновидений: Архив 1-6
- Название:Хакеры сновидений: Архив 1-6
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Lokky - Хакеры сновидений: Архив 1-6 краткое содержание
Давным-давно, один парнишка по имени Kor, начал собирать и редактировать материалы по различным изысканиям хакеров сновидений. Потом он куда-то пропал, но нашлись другие, кто подхватил эстафету начатую им. Все это вылилось в данный архив, который продолжает пополнятся каждый день.
Хакеры сновидений: Архив 1-6 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Последовательность команд, составляющих программу, в большинстве случаев соответствует принципу фон Неймана - один поток команд, каждая из которых работает со своими данными. Однако нередко последовательность выполнения команд можно изменить, не оказав влияния на результат выполнения программы:
A=B*C
D=E+F
G=H-I
Эти три команды можно выполнять в любом порядке, потому что они независимы по данным - ни одна из них не использует переменных, изменяемых другими командами. Эти три команды, поступив в процессор, могут выполняться независимо, причем на разных устройствах: умножителе, сумматоре и вычитателе соответственно (здесь специально подобраны команды, которые не используют одинаковые операции - это упрощает рассмотрение). Но если они выполняются независимо, ничто не мешает командам, поступившим позднее, закончиться раньше - это и есть суперскалярность, точнее, одно из ее проявлений.
Суперскалярность может быть как явной для программиста/компилятора, так и прозрачной для них. В первом случае процессор выполняет по несколько команд за такт, игнорируя возможные влияния выполнения предшествующей, по ходу выполнения, команды на аргументы последующей; программист, пишущий в кодах процессора, или автор компилятора обязаны учесть это. Во втором случае процессор учитывает это влияние и блокирует выполнение команд, чьи аргументы еще не вычислены, а игнорирование суперскалярности процессора программистом или автором компилятора приведет не к неправильному выполнению программы, а лишь к потере эффективности.
Пример:
A=B+1
C++ (увеличить C на единицу)
D=E-2
F=7-C
Если процессор попытается выполнить четвертую операцию до того, как закончит вторую, то ему попадется старое (неувеличенное) значение “С”. Процессор с явной суперскалярностью так и вычислит; процессор с прозрачной суперскалярностью заблокирует выполнение четвертой операции до тех пор, пока не выполнит вторую (в данном случае было бы эффективнее поменять местами первую и вторую команды - у процессора было бы больше места для маневра). Кроме того, третья и четвертая команды конфликтуют между собой за доступ к вычитателю - если вычитатель один, то это вызовет ошибку при явной суперскалярности и задержку при прозрачной.
Суперскалярный процессор может “заглатывать“ команды одновременно, а может по очереди (этот случай является производным от конвейера). Тесно связана с суперскалярностью оптимизация выполнения команд, которая также реализуется на аппаратном уровне. Она обеспечивает выполнение команд в порядке, исключающем их зависимость друг от друга по данным. Процессор загружает в специальный буфер небольшую последовательность микрокоманд, а затем разбирается, какие из них лучше выполнить в данный момент (пусть даже не в порядке следования) с учетом сложившейся ситуации — например, произвести арифметические действия или заранее запросить данные из памяти, чтобы потом, когда они будут нужны, не тормозить:). Полученные результаты сохраняются в специальных буферных регистрах процессора, а затем восстанавливается нормальный порядок выполнения микрокоманд.
nexus (#44, 2005-06-05, 21:17:42 )
rezuq,
А теперь несколько опусов с моей стороны:
1. Проблема первая состоит в том, что пока непонятно что конкретно считать данными, а что операциями, когда речь заходит о ЦС.
2. С одной стороны, я склоняюсь рассматривать в качестве конвейера осознание человека (как виртуальная машина), а с другой стороны сюжетная ловушка (сюжет включается в себя несколько цепочек событий).
3. Если предположить что сюжет является конвейером, то тогда можно даже считать что вообще однотипные сюжетные ловушки -- это один и тот же конвейер в работе.
4. Деление сюжетных ловушек на активные, параллельные и потенциальные отражает эффект прозрачной суперскалярности: параллельные подсюжеты (ЦС) внутри некоторой сюжетной ловушки -- это независимое вычисление двух и более ЦС; потенциальные ЦС -- это явление задержки процесса в случае конфликтов.
5. Если опираться на упомянутую ранее мною модель сюжетной ловушки как пространственного файла (сингулярность) с некоторым набором параметров, внутри которого происходят случайные переходы, то можно говорить вот о чём. Так как все варианты (цепочки событий) переходов внутри сюжетной ловушки (в нашем случае это как конвейер) заданы вероятностями, то тем самым стирается грань между основным потоком и альтернативными. В результате просчитываются все и тем допускается полный параллелизм. Каждая из ветвей может реализоваться с определённой вероятностью. Очень напоминает квантовый подход. Возможно это как раз и реализованно в квантовом программировании, но утверждать не буду, так как не знаю. Причём заметь, здесь скорее всего реализуется явная суперскалярность, так как просчитываются даже конфликтные ветви.
6. Возможно количество параметров внутри сюжета -- это это аналог глубины конвейера.
7. По поводу предсказателя я согласен с тобой.
Возможно есть иные соприкосновения с реалом, нужно проанализировать всё критически и понять. :)
rezuq (#45, 2005-06-07, 12:31:31 )
>что конкретно считать данными, а что операциями,
Наверное как во всех современных компьютерах, которые основаны на фон-неймановской архитектуре - нет принципиальной разницы между данными и командами, что чем считать зависит от ситуации, таким образом появляется возможность существования вирусов, проблем с переполнением буфера, итд
nexus (#46, 2005-06-10, 21:09:26 )
rezuq,
>Наверное как во всех современных компьютерах, которые основаны на фон-неймановской архитектуре - нет принципиальной разницы между данными и командами, что чем считать зависит от ситуации, таким образом появляется возможность существования вирусов, проблем с переполнением буфера, итд
>
В принципе я согласен что нету смысла различать команды и данные.
Про ДНК тонали.
Недавно возникла мысль как ещё альтернативно можно построить модель ДНК тонали на основе модели о сюжетных ловушках. Необходимо рассмотреть три составляющие (уровни описания) каждой сюжетной ловушки (файла):
1. Область или пространство самого сюжета с его границей.
2. Совокупность объектов внутри сюжета, которыеты как виртуальная машина подгружаешь.
3. Связи между объектами внутри сюжета, а точнее между виртуальной машиной и всеми объектами.
Эта градация отражет такую схему как: граф -- множество элементов в алгебраическом пространстве с заданными связями.
Читать дальшеИнтервал:
Закладка: