информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяЗа кого нас держат?Страшный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / theory
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Мысля конечно интересная, но неприменимая на практике 02.07.05 13:13  Число просмотров: 3381
Автор: amirul@home Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> При современных размерах кэша не проще ли пользовать просто
> ссылки на память, и вообще исключить регистровые операции
> из набора инструкций?

И дело тут совсем не в размере и скорости кеша. А в размере инструкции. На код операции нам надо порядка 5 бит (естественно нужно выделить один код на расширение кода, а так 31 код на самые частые арифметико-логические команды и команду копирования/ветвления/перехода и пр должно хватить), на метод адресации (не заставлять же всех пользоваться непосредственной адресацией) - еще КАК МИНИМУМ 3 бита на каждый аргумент (будем считать, что результат операции ложится в первый аргумент). Ну и по 32 бита на каждый аргумент. Итого 10 байт на самую простую команду (что будет в 64-битной архитектуре даже подумать страшно). Только на то, чтобы эту команду считать и декодировать будет уходить туева хуча времени. Кроме этого такие команды будут не по детски засирать кеш команд и в несколько раз уменьшать его эффективность.

Стековая машина, как и машина тьюринга (которые вроде бы решают проблему с огромными аргументами) - очень удобный способ формализации алгоритмов, для математического исследования, но уж никак не для эффективной работы.

Короче, можешь считать регистровую память кешем нулевого уровня, для управления которым прогаммисту дана бОльшая свобода, чем в случае остальных кешей. На мой взгляд правильно развивается RISC - увеличение количества регистров (не помню, но уже в G3 их кажется было 256 - могу и ошибаться), что практически полностью избавляет программиста от необходимости частого обращения к памяти: все текущие данные закачиваются в кеш (нулевого уровня), там идет обработка (следует отметить, что для адресации любого элемента этой памяти нужно всего 8 бит) - после обработки результат выгружается обратно в память
<theory> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach