Нет никакого общего ответа, вы должны смотреть на каждый дизайн отдельно. Также, что этот дизайн должен сказать о endiannes. Я не вижу, как вы пытаетесь подключить точки между контентом и выравниванием. Есть очень популярные архитектуры и глядя на каждого из них изолированно, либо нет выбора, либо популярного выбора для endiannes, и полностью независимы от endianess внутри этой архитектуры, это его правила выравнивания.
x86 по определению представляет собой 8-разрядный набор инструкций, который начинался с шины 8 или 16 бит, в зависимости от того, что вы купили или подключили, поэтому по определению нет выравнивания, а также по определению является переменной длиной набор команд, изменяющийся по количеству отдельных байтов, у которого нет правил выравнивания. И в результате своей истории у него нет правил выравнивания данных, что еще больше ухудшает его производительность.
Возьмите MIPS, к сожалению, я не знаю, какая традиционная энтузиазм, которую я угадываю, большой, но люди называют ее би-endian, что всегда является чем-то, что должно вызывать тревоги. Но здесь снова энсианс и выравнивание не имеют оснований для объединения.MIPS как концепция образования и остается тем, что, а также физически построенные или, по крайней мере, ядра, которые вы можете купить для своих собственных проектов, были о производительности, боли программиста и силовом выравнивании хорошо сочетаются с этим. Естественно, что выборки команд и чтения данных имеют смысл следовать тем же правилам, набор команд был/является 32-битными инструкциями, и они идеально выровнены.
ARM, с раннего времени принудительное выравнивание руки, но даже с ARM7TDMI вы можете отключить это, и, несмотря на то, что ARM ARM сказал, что поведение было предсказуемым, просто странно (вращайтесь внутри слова, а не перетекаете в другое слово). Из-за ленивых программистов благодаря x86, они более терпимы к допуску неравномерной передачи, отключив ловушку отказа, а результат - то, что можно было бы ожидать, перейдя на следующее слово. Здесь снова упоминается как двухрядная машина, но разумное решение идет немного до конца, инструменты и все имеют смысл, их консистенция изменилась с BE-32 на BE-8 в armv6, что еще больше вызвало боль большого эндиана, просто держитесь подальше. Исключением является сильная марка, которая стала xscale, которая, как я думаю, купила (или была ли это кавицей?), Которая была дефолтом для большого эндиана (BE-32) и была королевской болью для получения рабочих инструментов, но, несмотря на то, что она могла бежать, большой. Я хочу помнить, что конструкции рукоятки требуют выравнивания для выборки команд, где данные не должны быть, если вы отключите эту ошибку. И инструкции всегда немного независимы от больших/маленьких настроек. у них также есть 16-битный набор инструкций, а затем расширения большого пальца2, которые являются переменными длиной большого пальца, и они не должны быть выровнены, они представляют собой переменную длину 16-разрядных инструкций вместо того, чтобы думать о них как 32-битных инструкциях. Декодер должен проверять первую 16-разрядную инструкцию, чтобы понять, какая из них следует. Также как x86.
RISC склонился к производительности над CISC, поэтому конструкции RISC имеют правила выравнивания, но нет причин, по которым кто-то не мог сделать полностью неуравновешенный RISC или полностью выровненный CISC. Не позволяйте себе попадать в ловушку обобщения любого из этого, вы должны смотреть на каждую архитектуру и/или ядро отдельно, даже внутри поставщика или набора команд (xscale vs ARM7TMDI).
Выравнивание всегда влияет на производительность, сегодня, вчера и завтра на всех системах. Иногда эффект меньше или больше, но вы не можете волшебным образом выращивать кремний или провода на ходу на лету в своем дизайне, поэтому вы не можете просто изменить, как работает автобус, и что может и не может вписаться в один такт. Таким образом, нет новой технологии, если она строго ограничена байтовыми шинами или битными шинами, которые могут отменить удары производительности выравнивания. И возврат к 8-битным шинам для основного интерфейса не быстрее, шире быстрее на кристалле. Выключение микросхемы не быстрее, но более управляемо, поэтому SATA выигрывает над PATA. просто потому, что мы не можем поддерживать много высокоскоростных сигналов параллельно, им приходится сериализовать их (может иметь много отдельных последовательных интерфейсов, которые работают вместе, pci, ethernet). Таким образом, выравнивание основных архитектур cpu всегда будет иметь значение, поскольку мы используем двоичные состояния и фиксированное количество бит на шину.
Этот вопрос трудно ответить, поскольку платформа, где инструкции могут быть неравнозначными, также может рассматриваться как платформа, где требование выравнивания для инструкций равно 1. Выравнивание для инструкций может быть меньше длины инструкции; например, на большом значении ARM, инструкции длиной 32 бит (например, 'bl') должны быть выровнены только с 16 бит. – fuz
Процессоры могут обрабатывать несвязанные инструкции так же, как и данные. Некоторые RISC просто пропускают младшие разряды в операнде команд передачи управления, потому что они имеют ограниченное пространство. Кроме того, блок выборки может отличаться от (более сложного) блока нагрузки. Поскольку код создается для конкретной архитектуры (в то время как данные являются общими), наложение ограничений на него является разумным и не слишком обременяет кого-либо. –
Архитектуры с инструкциями переменной длины, такими как x86 обычно (всегда?), Позволяют выполнять неверные инструкции, поскольку в противном случае они эффективно отменяют преимущества переменной длины. Тем не менее, они по-прежнему любят такие вещи, как цепочки ветвей, особенно петли, для выравнивания. – Jester