LINUX.ORG.RU
ФорумTalks

почему 64 бит?


1

3

Почему, когда стало не хватать 32 бит, сделали 64? Ведь для адресации памяти это сильный избыток. Да и для данных в основном тоже. Чем же так хорош именно 64 бита? Почему, например, не 40, не 48, не 56?

★★★★★
Ответ на: комментарий от true_admin

int48 в чем проблема?

нет такого типа

Сделать такой тип. Что, в массиве значений такого типа будет прыгать выравнивание? Ну и что, зато сэкономим 25% на указателях. Что, через 15 лет придется сделать int56? Ну и пофиг, главное - сейчас сделаем оптимально.

tailgunner ★★★★★
()

1-Потому что упоролись в ограничения

2-Это не избыток, а запас, используй на полную катушку в чём проблемы?

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

Dron ★★★★★
()
Последнее исправление: Dron (всего исправлений: 1)

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

Dron ★★★★★
()
Ответ на: комментарий от cvs-255

Что где-то там за десятью ссылками про это написано.

Dron ★★★★★
()
Ответ на: комментарий от trex6

Даешь иррациональное количество бит!

даешь 1.5 бита!!!11 wait, oh shi~

exception13 ★★★★★
()
Ответ на: комментарий от Pakostnik

Какие интересные вопросы! Продолжай самовыражаться.

Нет ничего страшного в вопросах, которыми человек пытается восполнить пробелы в познаниях.

Fredrik
()
Ответ на: комментарий от true_admin

оно всё равно будет выровнено до 64-х бит. Поэтому смысл в 48 битах?

речь шла о возможности введения int48 на гипотетическом 48 битном процессоре

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от cvs-255

А смысл? всё равно будет избыток даже в int16 даже в int8 будет избыток если я буду писать туда 01 так как выравнивание будет всегда, даже тип bool избыточен по идее.

Закрываю тред.

Dron ★★★★★
()

кстати, ТС нарисуй на маску для выравнивания 40, 48 и 56 бит

а то для byte, half word, word и double word и другим по 2^ как то банально выходит

0b1111 0b1110 0b1100 etc

exception13 ★★★★★
()
Ответ на: комментарий от exception13

ибо для реализации ! 2^ требуется подход адресации не по байтам и уже а по словам разрядность которых == разрядности маш слова и как следствие производство особой оперативной памяти для _каждой_ машины

exception13 ★★★★★
()
Ответ на: комментарий от cvs-255

Ну так и выравнивать по 6 байт, например

И что это за простая логика, которая позволит эффективно сместиться по адресу кратному 6 байтам?
Сдвиг на один бит в двоичной системе счисления умножает или делит ровно на два.
Вот вам пример битовой операции, которая позволяет наиболее оптимальным способом найти следующее значение кратное степени двойки:

unsigned x = some_pot_or_non_pot_integer;
x = x - 1;
x = x | (x >> 1);
x = x | (x >> 2);
x = x | (x >> 4);
x = x | (x >> 8);
x = x | (x >> 16);
unsigned next_pot = x + 1;

Пример для чисел вмещающихся в 32 бита.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

И что это за простая логика, которая позволит эффективно сместиться по адресу кратному 6 байтам?

Не понял проблемы.

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от andreyu

Проблема в том, то в памяти оно займет все те же 64 бита.

почему?

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

И что это за простая логика, которая позволит эффективно сместиться по адресу кратному 6 байтам?

Не понял проблемы.

Вот в этом и есть ваша проблема.

andreyu ★★★★★
()
Ответ на: комментарий от cvs-255

Не понял проблемы.

маску для адресации с выравниванием для этих своих 48 бит нарисуй, а мы посмотрим.

exception13 ★★★★★
()
Ответ на: комментарий от andreyu

Расскажи подробно, что мешает сдвигаться по адресу, кратному 6 (при условии выравнивания на 6 байт)

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

1- где то я уже это слышал, привет Билл,скажи это учёным математикам,физикам и т.п. они поржут.

1.1-281474976710656 это по твоему много?

2- 48 битные адреса жрут больше, чем 32 битные.

Dron ★★★★★
()
Последнее исправление: Dron (всего исправлений: 1)
Ответ на: комментарий от exception13

Ну так 6 байтовую память надо. Все равно регулярно новые типы, несовместимые с предыдущими выходят.

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от Dron

жрут больше, чем 32 битные.

но меньше, чем 64 битные.

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

Ну так 6 байтовую память надо. Все равно регулярно новые типы, несовместимые с предыдущими выходят.

это решает только проблему с адресацией слова но никак не проблему с произвольным доступам к данным отличным по разрядности от маш. слова. эдак получается процессор способный адресовать _только_ маш. слово и теперь волшебным образом «байт» начинает занимать целых 48 бит из которых 40 не несут никакой нагрузки либо костыляется алгоритм сквозной адресации в ущерб производительности. выбирать вам.

exception13 ★★★★★
()
Ответ на: комментарий от cvs-255

Расскажи подробно, что мешает сдвигаться по адресу, кратному 6 (при условии выравнивания на 6 байт)

Вы не сделали попытки подумать, но просите что бы я пояснил вам основы? Кто по вашему готов учить человека, который против обучения?

andreyu ★★★★★
()
Ответ на: комментарий от cvs-255

И как же с этим боролись на бэсм-6 и прочих мейнфреймах?

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

exception13 ★★★★★
()
Ответ на: комментарий от quickquest

БЭСМ-6 имела слово разрядностью 48 бит и команды длиной 24 бита...

А наши всегда всё через жопу делали. Мне как-то попалась книжка 40-х годов, ещё Ландау в соавторах. Так самое интересное, что там вся теория ЭВМ расписана, даже такие штуки, как флоппи-дисководы, винты и сидюки. То-бишь, девайсов еще не было, а теоретики уже запланировали. Читал и офигевал, чесслово.

cadaber ★★
()
Ответ на: комментарий от quickquest

В ARM2 была 32-разрядная шина данных, но 26-битное адресное пространство.

prozium ★★
()
Последнее исправление: prozium (всего исправлений: 1)
Ответ на: комментарий от cvs-255

Получается не кривая шинна данных. imho. Ну и так далее.

hbars ★★★★★
()

Я вот не понимаю: а что это топикстартеру непонятно?

Quasar ★★★★★
()
Ответ на: комментарий от andreyu

А где в p4 с ht (или без, не важно) было 1.1 ядро?

внутри вестимо, в ядре продублировали регистры и еще что-то по мелочи - вот тебе и ".1 ядра"

wota ★★
()
Последнее исправление: wota (всего исправлений: 1)
Ответ на: комментарий от xtraeft

Полностью в ближайшее время не перейдут. А вот ускорители на квантовых компьютерах делать будут.

Quasar ★★★★★
()

48 разрядов это адресация 256 терабайтов, цифра не выглядит астрономической и достижима уже сегодня. 64 надёжнее.

Legioner ★★★★★
()

[толсто]
Потому что в интел и амд работают тупые идиоты. Нет чтобы сделать максимальный адрес 999999999999999999999 и вообще научить процессор десятками считать, а не какими-то двойками. Так бы было для всех удобнее
[/толсто]

onon ★★★
()
Ответ на: комментарий от cvs-255

речь шла о возможности введения int48 на гипотетическом 48 битном процессоре

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

true_admin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.