Troll 0 15 октября, 2009 Опубликовано 15 октября, 2009 · Жалоба Добрый день. Собственно вопрос, что означает "architecture optimized for C language"? В общем то понятно, что используется определенный набор команд. А вот конкретно в чем выражается эта оптимизация, совсем не ясно. Вроде бы везде есть арифметические операции, операции сдвига, условия. Объясните пожалуйста, что это за "оптимизированные команды". Заранее спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Палыч 10 15 октября, 2009 Опубликовано 15 октября, 2009 · Жалоба что означает "architecture optimized for C language"?Это - Вы про AVR? Имхо, всё это - маркетинговая щелуха, такая же как и число команд в AVR... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 15 октября, 2009 Опубликовано 15 октября, 2009 · Жалоба Имхо, всё это - маркетинговая щелуха, Ну не совсем. Небанкированый доступ к памяти данных и наличие стека в ОЗУ (в отличии от, например, PIC16, с которыми их обожают сравнивать холиварщики) - это таки "optimized for C language", а точнее - "for C compilers". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Палыч 10 15 октября, 2009 Опубликовано 15 октября, 2009 · Жалоба Ну не совсем.Тогда и МК51 - тоже "optimized for C language", хотя я не встречал такой "хвалилки" от производителей этих МК. P.S. Кстати, а почему только С, а как же другие ЯВУ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 15 октября, 2009 Опубликовано 15 октября, 2009 · Жалоба Тогда и МК51 - тоже "optimized for C language" И снова - не совсем ;) Хотя, код после компилятора для x51 куда лучше кода для PIC16. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Палыч 10 15 октября, 2009 Опубликовано 15 октября, 2009 · Жалоба И снова - не совсемНу, как же? И небанкированный доступ, и стек в ОЗУ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 15 октября, 2009 Опубликовано 15 октября, 2009 · Жалоба P.S. Кстати, а почему только С, а как же другие ЯВУ? Да-да, как же без СOBOL'а? и стек в ОЗУ... Маловат для более-менее серьезного использования стековых переменных и реентерабельности функций. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Палыч 10 15 октября, 2009 Опубликовано 15 октября, 2009 · Жалоба Да-да, как же без СOBOL'а? Ну, прям - COBOL! Чем Pascal разработчикам AVR не угодил? Что в нем такого, что нельзя отпимизировать под этот язык? Маловат для более-менее серьезного использования стековых переменных и реентерабельности функций.Да, бросьте Вы... Уж, поболее чем у tiny13. Вся эта "оптимизация" не более чем рекламный ход. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 15 октября, 2009 Опубликовано 15 октября, 2009 · Жалоба Уж, поболее чем у tiny13. Однако, есть и другой конец линейки, в котором ОЗУ куда больше. Чем Pascal разработчикам AVR не угодил? Ну понимаете-ли, стандартный набор фронтэндов в GNU Compiler Collection включает в себя Ada, C, C++, Fortran, Java, ObjC. Хотя фронтэнд для Паскаля существует, в штатную ветку он не входит. Намек понятен? ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Палыч 10 15 октября, 2009 Опубликовано 15 октября, 2009 · Жалоба Однако, есть и другой конец линейки, в котором ОЗУ куда больше.Так что: "optimized for C language" определяется величиной ОЗУ? Есть и клоны 51 и ОЗУ не меньше чем у AVR, и стек в этом "большом" ОЗУ можно размещать... Этот спор мне напоминает не так давно бывшее обсуждение: "Почему некоторые производители позиционируют свои МК как DSP ?". По-моему, эта "оптимизация" AVR - из той же "оперы"... AVR - более новые МК, у которых нет "тяжелого наследия прошлого" в виде, например, аппаратного стека и т.п., применение которых обуславливалось в прошлом отсталостью технологии. Называть отсутствие этого "наследия" "оптимизацией" - чистой воды рекмамный ход. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 15 октября, 2009 Опубликовано 15 октября, 2009 · Жалоба и стек в этом "большом" ОЗУ можно размещать... Да ну? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 136 15 октября, 2009 Опубликовано 15 октября, 2009 · Жалоба Еще забыли три регистра косвенной адресации. Но вот доступ к указателю стека, методы косвенной адресации у AVR - это скорее диверсия против С-компиляторов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 15 октября, 2009 Опубликовано 15 октября, 2009 · Жалоба Но вот доступ к указателю стека, методы косвенной адресации у AVR - это скорее диверсия против С-компиляторов. Терпимо. Хотя, конечно, прокол знатный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DRUID3 0 15 октября, 2009 Опубликовано 15 октября, 2009 · Жалоба А что насчет ARM? Как бы не самая классическая архитектура и система команд - а славится тем, что очень нужно постараться чтобы написАть лучше на asm. Всегда интересовал вопрос - "почему". Я не спец по теории компиляторов и оптимизаций - потому вопрошаю коллективный разум... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 15 октября, 2009 Опубликовано 15 октября, 2009 · Жалоба Всегда интересовал вопрос - "почему". Там как раз хорошо навернуто в части удобства генерации кода компилятором - и трехадресная обработка, и сдвиги в одном флаконе с операцией, и масса методов адресации, а условное выполнение - это отдельный перл. Все это, конечно, относится к ARM-режиму, тумба - вот это чистой воды пиар. Пожалуй, единственный прокол - отсутствие загрузки произвольного непосредственного операнда шириной 32 бита без использования адресации [PC+число] и иногда маловат диапазон смещений в адресации [Rx+число]. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться