-
- "Схема ускоренного переноса". - LightElf(19.09.2017 15:29)
- Ага, именно она. Вот я и дивлюсь, что ее для пары регистров сделать не смогли, чтобы преодолеть недостаток 8-битности - складывание целых чисел по частям. Тем более что такое (парное) складывание с константой есть, и за тот же самый такт! - Ксения(19.09.2017 15:44 - 15:47)
- Чтобы по два регистра складывать нужно либо 16-битное ALU либо два такта. - LightElf(19.09.2017 16:14)
- Ну так и сделать тогда 16-битное ALU. :) Если только для сложения и вычитания, то разве это трудно? - Ксения(19.09.2017 16:20)
- Вот и получается, что Atmel надо было делать AVR16, а не ставить все на AVR32 (и успешно просрать). Причем, уверен, гейтов бы добавилось немного, скорее маркетологи зарубили. - Evgeny_CD(19.09.2017 16:23)
- Примерно так. Но я бы предложила регистры 16 бит, а инструкции - 32 бита. С тем расчетом, чтобы константа целиком в команде помещалась. Разве что регистр адреса можно было бы оставить 32-битным. Кстати, именно так оно устроено и сейчас в AVR - Ксения(92 знак., 19.09.2017 20:24)
- Фишка современных архитектур - Cortex, AVR32 - 16 битые команды (переменной длины). Плотность кода сильно выше. Эффективность кешей малого размера тоже. - Evgeny_CD(19.09.2017 20:36)
- Плевать на плотность кода! На то и RISC, чтобы все команды были одинакового размера. А по нынешнему времени flash экономить глупо - от увеличения его вдвое цена контроллера почти не меняется, остается в пределах статистического разброса. Например, Ксения(82 знак., 19.09.2017 20:51)
- Пока не вылезем за 64кБ, а потом на 8-битниках начинаются пляски со страницами, кривыми регистрами и извратными адресациями. - LightElf(19.09.2017 20:57)
- Не кБ, а килоИнструкций! :) Т.е. счетчик команд считает не байтами, а командами. Поэтому адресное пространство не станет меньше от увеличения длины инструкций вдвое. Оно и сейчас в AVR так - счет команд идет словами. Это чуточку неудобно только в Ксения(56 знак., 19.09.2017 21:28)
- Не принципиально. - LightElf(20.09.2017 12:15)
- Не кБ, а килоИнструкций! :) Т.е. счетчик команд считает не байтами, а командами. Поэтому адресное пространство не станет меньше от увеличения длины инструкций вдвое. Оно и сейчас в AVR так - счет команд идет словами. Это чуточку неудобно только в Ксения(56 знак., 19.09.2017 21:28)
- Пока не вылезем за 64кБ, а потом на 8-битниках начинаются пляски со страницами, кривыми регистрами и извратными адресациями. - LightElf(19.09.2017 20:57)
- Плевать на плотность кода! На то и RISC, чтобы все команды были одинакового размера. А по нынешнему времени flash экономить глупо - от увеличения его вдвое цена контроллера почти не меняется, остается в пределах статистического разброса. Например, Ксения(82 знак., 19.09.2017 20:51)
- Фишка современных архитектур - Cortex, AVR32 - 16 битые команды (переменной длины). Плотность кода сильно выше. Эффективность кешей малого размера тоже. - Evgeny_CD(19.09.2017 20:36)
- Кодировка инструкций AVR 32 бита не потянет, а смена архитектуры (как мы видим на примере AVR32) не находит поддержки у пользователей - пугает их. Поэтому надо развивать AVR до AVR16, что в каких-то частностях возможно, не нарушая совместимости. Ксения(566 знак., 19.09.2017 18:40)
- AVR16 уже есть, называется dsPIC/PIC24 - MBedder(19.09.2017 19:22)
- Нет, надо то же, но от Атмела :) - Evgeny_CD(19.09.2017 19:31)
- И получить на выходе HCS12 :) Кстати, приятный был камушек, тепло вспоминаю - LightElf(19.09.2017 19:07)
- Регистров у него мало. Тогда как AVR хорош ка раз тем, что регистров у него много - 32 шт., что позволяет многое считать прямо на регистрах, не обращаясь к памяти. - Ксения(19.09.2017 19:45 - 19:49, ссылка)
- Но контекст переключать запаришься. HCS12 зато адресует первые 256 байт памяти короткими командами. И да, 16-битная арифметика присутствует. - LightElf(19.09.2017 20:38)
- Так контекст и не переключают. :) А в прерывании спасают в стеке не все регистры, а только те, которые используются. - Ксения(19.09.2017 20:47)
- Ну это кто как. - LightElf(19.09.2017 20:59)
- Так контекст и не переключают. :) А в прерывании спасают в стеке не все регистры, а только те, которые используются. - Ксения(19.09.2017 20:47)
- Но контекст переключать запаришься. HCS12 зато адресует первые 256 байт памяти короткими командами. И да, 16-битная арифметика присутствует. - LightElf(19.09.2017 20:38)
- Ога. За время исполнения инструкции можно было успеть чайкУ попить :)) - MBedder(19.09.2017 19:23)
- Да ладно, нормально там все. В среднем три такта на инструкцию. Но инструкции заметно жирнее чем у AVR. Например прибавить к 16-битному регистру 16-битный непосредственный операнд - два такта. Прибавить к тому же 16-битному регистру 16-битный LightElf(66 знак., 19.09.2017 20:48 - 20:53)
- Регистров у него мало. Тогда как AVR хорош ка раз тем, что регистров у него много - 32 шт., что позволяет многое считать прямо на регистрах, не обращаясь к памяти. - Ксения(19.09.2017 19:45 - 19:49, ссылка)
- AVR16 уже есть, называется dsPIC/PIC24 - MBedder(19.09.2017 19:22)
- Примерно так. Но я бы предложила регистры 16 бит, а инструкции - 32 бита. С тем расчетом, чтобы константа целиком в команде помещалась. Разве что регистр адреса можно было бы оставить 32-битным. Кстати, именно так оно устроено и сейчас в AVR - Ксения(92 знак., 19.09.2017 20:24)
- Вот и получается, что Atmel надо было делать AVR16, а не ставить все на AVR32 (и успешно просрать). Причем, уверен, гейтов бы добавилось немного, скорее маркетологи зарубили. - Evgeny_CD(19.09.2017 16:23)
- Ну так и сделать тогда 16-битное ALU. :) Если только для сложения и вычитания, то разве это трудно? - Ксения(19.09.2017 16:20)
- Чтобы по два регистра складывать нужно либо 16-битное ALU либо два такта. - LightElf(19.09.2017 16:14)
- Ага, именно она. Вот я и дивлюсь, что ее для пары регистров сделать не смогли, чтобы преодолеть недостаток 8-битности - складывание целых чисел по частям. Тем более что такое (парное) складывание с константой есть, и за тот же самый такт! - Ксения(19.09.2017 15:44 - 15:47)
- "Схема ускоренного переноса". - LightElf(19.09.2017 15:29)