Каковы преимущества различных порядков байтов? - PullRequest
11 голосов
/ 27 мая 2009

Почему некоторые производители процессоров решили использовать

  • Little endian
  • Big endian
  • Средний порядковый номер
  • Кто-нибудь еще?

Я слышал, что с прямым порядком байтов можно узнать быстрее, если число отрицательное или положительное, потому что этот бит является первым. (Это не имеет значения для современных процессоров, так как отдельный бит больше недоступен.)

Ответы [ 5 ]

16 голосов
/ 27 мая 2009

Преимущество порядка байтов в том, что переменная может быть прочитана как любая длина, используя тот же адрес.

Например, 32-битная переменная может считываться как 8-битная или 16-битная переменная без изменения адреса. Это может иметь ограниченную выгоду в наши дни, но во времена ассемблера и ограниченной памяти это может быть существенным преимуществом

3 голосов
/ 27 мая 2009

Нет особого преимущества с прямым или прямым порядком байтов как таковым, за исключением использования собственного порядка байтов в процессоре или обработки указанного порядка файлов.

Причина, по которой сосуществуют как старшие, так и младшие порядковые номера, заключается в том, что разные производители ЦП использовали разные соглашения для представления многобайтовых данных, и в то время не было стандартов.

1 голос
/ 27 мая 2009

Использование порядка байтов в процессоре (независимо от того, маленький он или большой) дает вам выигрыш в скорости по арифметике: вы можете добавлять, вычитать и т. Д. Многобайтовые целые числа непосредственно в памяти.

Использование предопределенного, предписанного порядка байтов (независимо от того, маленький он или большой) в формате файла дает вам возможность читать файл в любой системе, независимо от того, является ли он ЦП другой системы. Системы с правильным порядком байтов могут читать файл быстрее (если подпрограмма чтения написана и оптимизирована должным образом), но даже системы с неправильным порядком байтов могут его читать. Обычно разница в скорости незначительна (за исключением очень больших файлов с большим количеством целых чисел), поэтому рекомендуется сначала измерить максимально возможное увеличение скорости при оптимизации процедуры чтения.

Некоторые форматы файлов (например, TIFF) поддерживают оба порядка байтов. В этом случае хорошей идеей будет сгенерировать файл с порядковым номером процессора, при условии, что файл будет подвергнут последующей обработке на том же компьютере или аналогичном компьютере.

0 голосов
/ 16 июня 2016

Некоторые операции выигрывают от наличия частей значения, доступных перед другой частью. При добавлении двух чисел без знака или числа с двумя дополнительными числами, которые слишком велики для одновременного считывания, младшие биты результата могут быть вычислены до того, как станут доступны верхние биты, но не наоборот, подразумевая, что порядок младших порядков здесь предпочтителен. При доступе к последовательному чипу флэш-памяти декодирование строки может начинаться только тогда, когда становятся доступными все биты, которые определяют строку (обычно все, кроме младших значащих 8-12 бит, в зависимости от чипа), подразумевая, что порядок старших порядковых номеров выгоден есть.

0 голосов
/ 27 мая 2011

В порядке с прямым порядком байтов вы не пытаетесь изменить адрес, но при значении с прямым порядком байтов вы должны: http://www.noveltheory.com/techpapers/endian.asp

На самом деле я не знаю, имеет ли еще младший порядок байтов преимущество перед большим порядком байтов в современных процессорах. Мне кажется, что переключение адреса требует от процессора пиковатт мощности:

...