Мнение: Как я вижу современный процессор
Комментарии |
Комментарии: 558
| Непонял насчет контроля типов... та в одном месте говоришь что контроль типов надо встроить в проц, в другом месте говоришь что любое нечто должно быть объектом...
Кстати при чисто объектном подходе проблема контроля типов исчезает сама собой.
И еще мне кажется ты слишком много хочешь возложить на процессор... я наверное больше склоняюсь к тому - что чем проще процессор - тем лучше.
Выкиньте MMX и иже с ними, выкиньте двухадресные команды! даешь стековые машины!
но дайте мне заместо 2 ГГц - 20! я все что нужно сэмулирую сам! Ж)) |
|
Комментарии: 10
Зарегистрирован: 03.07.2004 22:20
| Проверку типов необходимо опустить на процессор по следующим причинам. Во первых тогда уменьшится количество команд процессора. Их выполнение будет зависить от типов данных. Это приведет не только к упрощению транслятора но и к значительному уменьшению кода. Так как эти проверки необходимо включить в код да и все мыслимые варианты тоже. Во вторых эти проверки в процессоре можно распаралелить что весьма благотворно отразится на производительности. И в третьих это дает новые возможности для объектного программирования когда определение типов и их проверку можно опустить на этап выполнения. Технология .Net вовсю этим пользуется.. Но какой ценой. Про двухадресные команды вообще проще поднять литературу 30 летней давности. Когда были и стековые и трехадресные команды. Там есть и обоснования эффективности 2-х адресных команд. Все их преимущества проявлялись при отсутствии кэш памяти. Я ничего против не имею 2-х адресных команд, но стековые команды проще, занимают меньше памяти так как нет необходимости во втором адресе операнда. Но и это не главное. В стековой машине проще реализовать алгоритмы диспетчеризации процессоров и памяти. Сэмулировать можно, конечно все.. Но тем то и приятна апаратная реализация что может реализовать распаралеливание. Объективный факт на анализ типов и прочего.. и не только типов.. я там хорошо нагрузил уходит много ресурсов. |
|
Комментарии: 558
| По поводу типов вопрос вообще спорный...
Меня например коробит от того что слишком много типов развелось... Я вот щас думаю одну мысль... и думаю, а не сделать ли хитрый числовой тип, который адаптивно будет подстраиваться под значения и под текущие возможности проца... и тогда станет пофиг, флоат он или инт!
естественно все это должно быть с максимальным сохранением точности. если это инт - то он должен быть 100% точным при любом, даже самом немеряном значении... ну это так, мысль... возвращаясь к теме...
речь то идет о процессорах будующего... Так ли там будут нужны цифры вообще, а тем более ограниченные какими-то 32 или 64 битами? ну пусть даже 128 битами? вырастут частоты, вырастут размерности. вырастут объемы...
что вообще есть тип? smalltalk например вообще прекрасно обходится без типизации и без предопределенных типов. (правда не до конца понимаю как.
Если речь идет об объектности - то тут надо проверять только валидность объекта, соответствие его тому или иному интерфейсу. (не буду говорить классу, давить!)
Тогда всякие различия между float/int/char стираются вообще.
Может с этим делом в форум? |
|
Комментарии: 10
Зарегистрирован: 03.07.2004 22:20
| давай в форум. |
|
Комментарии: 2
Зарегистрирован: 19.08.2004 02:34
| А по мне так лучше 2х-адресные команды и РОН один килобайт и как в Z8000 что б групировались в 16бит, 32, 64, 128 и 256 и в одном корпусе 4 ядра и еще еще еще >>Кстати, у меня все это расписано не у меня не расписано, но согу и расписать |
|
Комментарии: 2
Зарегистрирован: 19.08.2004 02:34
| да и кстати 3х адресные команды используются во многих RISC процах (Spark, Itanium, ...) |
|
Комментарии: 10
Зарегистрирован: 03.07.2004 22:20
| 2-х и 3-х адресные команды нагляднее, и выглядят естественней, но причина их популярности не в этом. Они эффективней работают в системах без кэш памяти. Разные показатели эффективности на разных тестовых наборах. Напомню, что во времена создания сегодня популярных машин кэш память была слишком дорогая для практического применения. Современные технологии предполагают и кэш-память и многопроцессорную обработку. По моему очевидно для того что бы распределять команды по процессорам необходимо анализировать адреса операндов. И в стековых архитектурах алгоритмы для такого анализа гораздо проще так как операнд всего один. Я противник писать программы на ассемблерах, наглядность не есть полезное свойство для процессора. Но стековые команды меньше по размеру и легче в создании кода (облегчается трансляция) и эффективней в выполнении с кэш-памятью. Это уже реальные плюсы. |
|
Комментарии: 558
| А за счет этого облегчается и сам процессор, следовательно в него можно запихнуть больше кеша, или еще CPU при тех же габаритах... Я за!!! |
|
Комментарии: 10
Зарегистрирован: 03.07.2004 22:20
| И не один ЦПУ. Но самый большой эффект ожидается от реальной многопроцессорной обработки. При существующей системе команд добавление второго процессора добавляет максимум 20 процентов производительности. Причины такого маленького прироста производительности очевидны. реальное распаралеливание выполнения команд требует анализа адресов операндов и синхронизации команд. Понятно что алгоритмы синхронизации стековых команд проще и дадут больший эффект. здесь необходимо заметить что в современных машинах время выполнения команд меньше чем время необходимое для доступа к оперативной памяти. Поэтому становится очевидным использование кэш памяти для стековых команд и это очень даже естественно для них в силу стековой природы с одной стороны, но и с другой стороны необходимо загрузить процессор реально распаралеливемыми задачами. Этими задачами могут быть проверки типов данных и прочих свойств данных которые не должны быть просто двоичным набором а нести некую информацию, например анализ событий, проверок уровня доступа (что повышает надежность) и прочих проверок что суть необходимо но выполнение которых возлагается на формирование команд на уровне транслятора. Выгоды очевидны. Да и надежность аппаратных проверок выше гораздо. |
|
Комментарии: 83
Зарегистрирован: 04.07.2004 21:44
| Судя по первому комментарию, год назад Dron был готов всё эмулировать программно на быстром но тупом процессоре.
Что же случилось сейчас, когда мы довольно подробно познакомились с ОС, архитектура которой позволяет делать это эффективно??? |
Комментарии доступны только авторизованным пользователям, авторизуйтесь или зарегистрируйтесь на сайте здесь
|