> да то я в аббревиатуре ошибся (похожи всё же, Ну... я бы не стал утверждать что ARM так уж сильно похож на AVR. Если уж на то пошло - все процессоры так или иначе друг на друга похожи :).
>>В случае процессоров актуальнее размер регистров проца.
> На самом деле нет.
Как ни странно, да. Изначально типы в сях зависимы от размера регистров проца. Встречаются довольно странные экспонаты. Например, где-то был такой прикол как 16-битовый char, просто потому что экзотичный проц плохо относился к любым данным в порциях отличных от 16 битов. Ну и сделали ему 16-битный char. По стандарту - "не менее 8 битов" но ничего не говорится про максимум. Хоть это и неожиданный вариант.
> Как не парадоксально, но именно регистры памяти (а ячейки и
> есть регистры, что в памяти, что в цпу) имеют приоритетное значение.
Один и тот же проц может в принципе работать с разными наборами памяти, разными в плане ширины шины. Особенно интересно будет с современными процами на скоростных шинах.
Например, если ARM может доступаться к 8-битному параллельному Flash ROM (или SRAM) на классической шине адреса-данных, должен ли ARM начать считаться 8-битным? А если тот же ARM в DDR оперативу полезет по 16-битной DDRовской шине - ему сколько битов засчитать? А если это будет 32-битная шина - ему надо типы данных проапгрейдить при допайке второй линии чипов памяти? А у ряда SoC/uC ширина внешней "классической" шины и ее мультиплексирование вообще когнфигурируется в рантайме. Я прямо в тупике - что при этом делать с типами данных? :).
> Потому что их должно быть много, гораздо больше, чем в ЦПУ. И
> они должны быть при этом по себестоимости не как крыло от бурана.
Капитан Очевидность намекает что 16-битная память тривиально делается из 2 х 8, например. Ну и так далее. Более того, если обратить внимание на то как сделаны DIMM, можно обнаружить что относительно широкая шина набирается из относительно "узких" чипов и там это вообще штатное состояние дел. А более умные контроллеры памяти могут еще и доступ к модулям интерливить, чтоб уж совсем хорошо.
> Поэтому уже давно производители ЦПУ в этом плане подстраиваются под производителей памяти.
Агащаз. Контроллеры памяти стали умными и сами сделают из того что есть то что надо. В хучшем случае - ну будет у тебя потеря скорости, когда из 8-битного девайса памяти 32 бита будут тягаться аж за 4 цикла по шине + классическая шина полную частоту быстрого ядра не вытянет, придется скорость ядра поделить на эн. Так что получишь ты в результате не "по 1 команде на такт" как могло бы ядро, а "100500 тактов на команду" пока проц память ждет. Где-то в этом месте наступает догадка нафига быстрым процессорам кэш и почему в ряде девайсов с параллельной флешкой из нее код перегружают в RAM хоть он мог работать и без этого напрямую.
> Но не регистров ЦПУ, а регистров переферийных устройств
А memory mapped периферия - баян. А в каком-нибудь ARM ее больше по другому и не присобачишь особо. Ну и опять же - сие удобно и логично программить из сей.