Почему число битов является всегда(?) питанием два?

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

51
задан Flimzy 27 October 2011 в 19:16
поделиться

16 ответов

That's mostly a matter of tradition. It is not even always true. For example, floating-point units in processors (even contemporary ones) have 80-bits registers. And there's nothing that would force us to have 8-bit bytes instead of 13-bit bytes.

Sometimes this has mathematical reasoning. For example, if you decide to have an N bits byte and want to do integer multiplication you need exactly 2N bits to store the results. Then you also want to add/subtract/multiply those 2N-bits integers and now you need 2N-bits general-purpose registers for storing the addition/subtraction results and 4N-bits registers for storing the multiplication results.

25
ответ дан 7 November 2019 в 10:07
поделиться

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

0
ответ дан 7 November 2019 в 10:07
поделиться

Мой старый добрый Калькулятор HP 32S был 12-битным.

0
ответ дан 7 November 2019 в 10:07
поделиться

Распространенной причиной является то, что вы можете нумеровать свои биты в двоичном формате. Это полезно во многих ситуациях. Например, в операциях битового сдвига или поворота. Вы можете повернуть 16-битное значение от 0 до 15 бит. Попытка повернуть более 16 бит также тривиальна: это эквивалентно вращению более 0 бит. И поворот на 1027 бит равен повороту на 3 бит. В общем, поворот регистра шириной W по N битам равен повороту по N по модулю W, а операция «по модулю W» тривиальна, когда W представляет собой степень 2.

1
ответ дан 7 November 2019 в 10:07
поделиться

Использование идентификатора для стилизации имеет смысл, если это элемент, у которого нет дубликатов, особенно если это что-то, что отображается на всех / большинстве страниц.

Например:

  • Заголовок страницы и
1
ответ дан 7 November 2019 в 10:07
поделиться

80186, 8086, 8088 и «Реальный режим» на 80286 и более поздних процессорах использовали 20-битную систему адресации сегментированной памяти. У 80286 было 24 собственных адресных строки, затем у 386 и более поздних было либо 32, либо 64.

1
ответ дан 7 November 2019 в 10:07
поделиться

Your memory system wants to be a byte multiple, which makes your cache want to be a byte multiple, which makes your whole system want to be a byte multiple.

Speaking as a HW designer, you generally want to design CPU's to byte boundaries of some kind, ie multiples of 8. Otherwise you either have to add a lot of awkward circuitry to a 49-bit system to make it utilize the mod-8 bits, or you end up ignoring the extra bits, in which case it was a waste, unless you needed the extra bit for instructions, which is never the case on 16 bit or wider systems.

4
ответ дан 7 November 2019 в 10:07
поделиться

Достопочтенный PDP-10 был 36-битным.

8
ответ дан 7 November 2019 в 10:07
поделиться

http://en.wikipedia.org/wiki/Word_%28computer_architecture%29#Word_size_choice

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

23
ответ дан 7 November 2019 в 10:07
поделиться

Связанная, но, возможно, не причина , Я слышал, что соглашение 8 бит в байте связано с тем, что это ' как IBM смонтировала архитектуру IBM System / 360.

1
ответ дан 7 November 2019 в 10:07
поделиться

Partially, it's a matter of addressing. Having N bits of address allows you to address 2^N bits of memory at most, and the designers of hardware prefer to utilize the most of this capability. So, you can use 3 bits to address 8-bit bus etc...

20
ответ дан 7 November 2019 в 10:07
поделиться

Все ICL 1900 были 24-битными (словами). Спорим, мало кто их помнит. Вы делаете ??

0
ответ дан 7 November 2019 в 10:07
поделиться

Возможно, вы найдете здесь кое-что: Binary_numeral_system

0
ответ дан 7 November 2019 в 10:07
поделиться

Как отмечали другие, в первые дни все было не так однозначно: слова приходили самых разных размеров.

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

По мере увеличения плотности микросхем памяти выше производители упаковывали несколько микросхем в одну упаковку. Поскольку наиболее популярные размеры слов были кратны 8 битам, 8-битная память была особенно популярна: это означало, что она также была самой дешевой. По мере того как все больше и больше архитектур переходили на подножку 8-битных байтов, надбавка к цене для микросхем памяти, которые не использовали 8-битные байты, становилась все больше и больше. Подобные аргументы учитывают переходы от 8-> 16, 16-> 32, 32-> 64.

Вы все еще можете спроектировать систему с 24-битной памятью, но эта память, вероятно, будет намного дороже, чем аналогичная конструкция с использованием 32 битовая память. Если нет действительно веской причины придерживаться 24-битной технологии, большинство разработчиков выберут 32-битную версию, если она дешевле и более функциональна.

3
ответ дан 7 November 2019 в 10:07
поделиться

У нас есть, просто посмотрите на микроконтроллеры PIC.

0
ответ дан 7 November 2019 в 10:07
поделиться

Многие (большинство?) Ранних пре-микропроцессорных процессоров имеют некоторое количество бит в слове, которое не является степенью двойки.

В частности, Сеймур Крей и его команда построили много очень влиятельных машин с размером слова и размером адреса, отличным от степени двойки - 12 бит, 48 бит, 60 бит и т. Д.

Удивительно большое количество Ранние компьютеры имели 36-битные слова, полностью из-за того, что у людей было 10 пальцев. В «36-битной» статье Википедии есть более подробная информация о взаимосвязи между 10 пальцами и 36 битами, а также ссылки на статьи по многим другим исторически важным, но уже не популярным размерам битов, большинство из которых не являются степенью двойки.

Я предполагаю, что

(а) 8-битная адресная память стала популярной, потому что она была немного более удобной для хранения 7-битных ASCII и 4-битных двоично-десятичных кодов без неудобной упаковки или потери нескольких бит на персонаж; и никакая другая ширина памяти не имела большого преимущества.

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

(c) Теоретически более широкая шина делала ЦП быстрее, но размещение всего ЦП на одном кристалле сделало его значительно дешевле и, возможно, немного быстрее, чем любая предыдущая система ЦП с несколькими частями любой шины ширина. Поначалу транзисторов едва хватало на 4-битный процессор, потом на 8-битный. Позже транзисторов для 16-битного процессора едва хватило, под шумиху и «16-битную» маркетинговую кампанию. Примерно в то время можно было ожидать 24-битный ЦП ...

(d) грянула революция RISC. Первые два чипа RISC были 32-битными по какой-то причине, и люди были приучены думать, что «больше бит - лучше», поэтому каждый производитель вскочил на 32-битную подножку. Кроме того, IEEE 754-1985 был стандартизирован с 32-битными и 64-битными числами с плавающей запятой. Было несколько 24-битных процессоров, но большинство людей никогда о них не слышали.

(e) Из соображений совместимости программного обеспечения производители поддерживали иллюзию 32-разрядной шины данных даже на процессорах с 64-разрядной внешней шиной (например, Intel Pentium, AMD K5 и т. Д.) Или на материнских платах с 4-битная шина (шина LPC).

6
ответ дан 7 November 2019 в 10:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: