64-бит или 32-бит ?

Обмен опытом по установке Линукс на разные аппаратные конфигурации

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: 64-бит или 32-бит ?

Непрочитанное сообщение Olej » 01 май 2012, 22:04

Ali писал(а): Архитектура лицензированная Интелом у АМД называектся официально Intel® 64 .
Эта ссылка ничего не проясняет.
Полная рекламная ахинея:
Архитектура Intel® 64 обеспечивает повышение производительности, за счет чего вычислительные системы могут использовать более 4 ГБ виртуальной и физической памяти.
- каким образом "повышение производительности"?
- а ... "за счет чего вычислительные системы" (за счёт - это повышения производительности) - так это же просто песня! как производительность причинно-следственно связана с пространством адресации??? :-o
Это же прямо цитата из проф. Преображенского в "Собачье сердце":
... простите, кого и на ком не стояло?
:lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: 64-бит или 32-бит ?

Непрочитанное сообщение Olej » 01 май 2012, 22:25

Ali писал(а): PS
Intel IA-64 теперь следует называть Intel® Itanium® Processor
Кстати, он то в некотором роде 86-совместимый
Intel® Itanium® Processor Family Reference Guide: IA-32 Execution Layer
All Intel® Itanium® 2-based systems support IA-32 software applications to provide greater flexibility in migrating to Itanium® architecture. Intel now offers a technology called IA-32 Execution Layer (EL) which enhances support for IA-32 applications
Ну, уже хоть куда-то мы сдвигаемся в сторону конкретных понятий.

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

1. David Mosberger, Stephane Eranian, "IA-64 Linux Kernel: Design and Implementation", 2002
Изображение
http://www.devbooks.ru/books/5396.html
http://search.barnesandnoble.com/IA-64- ... 0130610140

2. Wolfgang Mauerer, "Professional Linux Kernel Architecture", 2008
Изображение
http://www.powells.com/biblio?isbn=9780470343432
http://www.bookshop.ua/asp/annot.asp?bid=4215794
Ух ты!
Вот здесь: http://findebookee.com/t/the-linux-kernel-book, а если уж совсем точно, то вот здесь: http://www.jarson.asia/books/Profession ... ecture.pdf предлагают download все 1370 страниц PDF книги.
(а вот здесь: http://dwnld.net.ua/viewtopic.php?t=2480878 - торент ... но это я не проверял)

Так вот, №1 уточняет в толковании терминов так:
IA-32: Intel Architecture, 32-bit. This name refers to the instruction set architecture implemented by Pentium III.

IA-64: Intel Architecture, 64-bit. This name refers to the instruction set architecture implemented by the Itanium family of chips. The architecture is sometimes called Itanium processor family.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: 64-бит или 32-бит ?

Непрочитанное сообщение Olej » 01 май 2012, 22:48

Ali писал(а): PS
Intel IA-64 теперь следует называть Intel® Itanium® Processor
Кстати, он то в некотором роде 86-совместимый
Intel® Itanium® Processor Family Reference Guide: IA-32 Execution Layer
All Intel® Itanium® 2-based systems support IA-32 software applications to provide greater flexibility in migrating to Itanium® architecture. Intel now offers a technology called IA-32 Execution Layer (EL) which enhances support for IA-32 applications
... совместимый то он совместимый, только ... вспомните регистровые наборы x86...
А вот в той же книге №1 по архитектуре ia-64 находим (стр.34):
- General Registers : r0 - r127
- Floating-point Registers : f0 - f127
- Branch Registers : b0 - b7
- Application Registers : ar0 - ar127
... и это не считая кучи специальных регистров: CPU ID Registers и др.

И самое примечательное, что этот набор регистров разительно отличается от AMD64.
Так к кому из них относится вариант дистрибутива/пакеты x86_64???

Как мне помнится, при появлении AMD64 именно на него ставились x86_64 (и под него делались).
А что ставить на ia-64?

Ali
Писатель
Сообщения: 57
Зарегистрирован: 08 окт 2011, 08:00
Контактная информация:

Re: 64-бит или 32-бит ?

Непрочитанное сообщение Ali » 01 май 2012, 22:49

Olej писал(а):
Ali писал(а): Архитектура лицензированная Интелом у АМД называектся официально Intel® 64 .
Я указал ссылку лишь для разъяснения точки зрения Интела на то, как Интел полагает правильным именовать архитектуру x86_64.

Эта ссылка ничего не проясняет.
Olej писал(а): Полная рекламная ахинея:
Архитектура Intel® 64 обеспечивает повышение производительности, за счет чего вычислительные системы могут использовать более 4 ГБ виртуальной и физической памяти.
- каким образом "повышение производительности"?
- а ... "за счет чего вычислительные системы" (за счёт - это повышения производительности) - так это же просто песня! как производительность причинно-следственно связана с пространством адресации??? :-o
Это же проф. Преображенский:
... простите, кого и на ком не стояло?
:lol:
Это да! :-) Честно говоря, сей замечательный пассаж, порожденный всё-же системой автоматического перевода, не читал, а зря.
Intel 64 architecture improves performance by allowing systems to address more than 4 GB of both virtual and physical memory.
http://www.intel.com/content/www/us/en/ ... neral.html
Архитектура Intel ® 64 повышает производительность, позволяя системам адресовать более 4 Гб и виртуальной и физической памяти.
И в этом утверждении есть некоторый резон. Оракловская база но пару терабайт ...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: 64-бит или 32-бит ?

Непрочитанное сообщение Olej » 01 май 2012, 23:04

Ali писал(а):
Intel 64 architecture improves performance by allowing systems to address more than 4 GB of both virtual and physical memory.
http://www.intel.com/content/www/us/en/ ... neral.html
Архитектура Intel ® 64 повышает производительность, позволяя системам адресовать более 4 Гб и виртуальной и физической памяти.
И в этом утверждении есть некоторый резон. Оракловская база но пару терабайт ...
По поводу адресации - вообще никаких вопросов...
И по поводу возможностей оракловской базы но пару терабайт - тоже можно согласиться (хотя ... а кто сказал, что её всю целиком нужно переносить в RAM - это уже баловство ;-) ... но пусть будет).

Мне кажутся не аргументированными тиражируемые заклинания о каком-то гипотетическом сказочном увеличении производительности при переходе на 64-бит. За счёт чего?
За счёт того, что 2+3 будут складываться не в 32-бит регистрах заполненных нулями, а в 64-бит регистрах, ещё более заполненных нулями?

Я понимаю, что за счёт 500 и более регистров можно растолкать в них всё, и на этом сэкономить... ну 10%, ну 20% ... но разы!
Я понимаю, что при системных вызовах можно syscall с числом параметров >6 вызывать всегда через регистры, а не через стек ... но только таких syscall с >6 параметрами вызова - раз-два и обчёлся ... если они вообще в Linux остались...

Где!? вот тот скрытый потенциал повышения производительности при переходе к 64-бит?
При прочих равных... при тех же частотах, при тех же числе регистров в архитектуре, которые можно так же успешно использовать и для загрузки 32-бит операндов.
Где?

Я отчётливо вижу огромную выгоду производителей от 64-бит ... и Intel/AMD, и производителей ОС...
Я не вижу так отчётливо выгод потребителя. :-(

Ali
Писатель
Сообщения: 57
Зарегистрирован: 08 окт 2011, 08:00
Контактная информация:

Re: 64-бит или 32-бит ?

Непрочитанное сообщение Ali » 01 май 2012, 23:18

Olej писал(а):
Ali писал(а): PS
Intel IA-64 теперь следует называть Intel® Itanium® Processor
Кстати, он то в некотором роде 86-совместимый
Intel® Itanium® Processor Family Reference Guide: IA-32 Execution Layer
All Intel® Itanium® 2-based systems support IA-32 software applications to provide greater flexibility in migrating to Itanium® architecture. Intel now offers a technology called IA-32 Execution Layer (EL) which enhances support for IA-32 applications
... совместимый то он совместимый, только ... вспомните регистровые наборы x86...
А вот в той же книге №1 по архитектуре ia-64 находим (стр.34):
- General Registers : r0 - r127
- Floating-point Registers : f0 - f127
- Branch Registers : b0 - b7
- Application Registers : ar0 - ar127
... и это не считая кучи специальных регистров: CPU ID Registers и др.
...
И самое примечательное, что этот набор регистров разительно отличается от AMD64.
Изображение
Itanuium это архитектура с широким командным словом и явным параллелизмом( почти эльбрус).
386-код на ней может работать, через интерпретатор.
Olej писал(а): Так к кому из них относится вариант дистрибутива/пакеты x86_64???

Как мне помнится, при появлении AMD64 именно на него ставились x86_64 (и под него делались).
Да. (amd64 == x86_64 == i32e == EMT64 ) != ia-64
Вариант дистрибутива/пакеты x86_64 можно ставить и на интел, и на AMD. Почти все современные процессоры интел и амд, кроме некоторых атомов, будут работать.
Olej писал(а): А что ставить на ia-64?
Debian на платформе IA-64

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: 64-бит или 32-бит ?

Непрочитанное сообщение Olej » 01 май 2012, 23:51

Ali писал(а):
Olej писал(а): А что ставить на ia-64?
Debian на платформе IA-64
Тогда ещё интереснее там рядом - http://www.debian.org/ports/index:
amd64 - 64-разрядный ПК (amd64). Впервые официально выпущен в Debian 4.0. Перенос для 64-битных процессоров AMD64. Целью является поддержка как 32-битного, так и 64-битного пользовательского пространства на этой архитектуре. Данный перенос поддерживает 64-битные процессоры Opteron, Athlon и Sempron от AMD, а также процессоры Intel с поддержкой EM64T, включая Pentium D и разнообразные серии Xeon и Core2.

i386 - 32-разрядный ПК (i386). Первая архитектура, на самом деле это даже не перенос. Linux изначально разрабатывался для процессоров Intel 386, отсюда и сокращённое название этой архитектуры. Debian поддерживает все процессоры IA-32, созданные Intel (включая все серии Pentium и последние процессоры Core Duo в 32-битном режиме), AMD (K6, все серии Athlon и Athlon64 в 32-битном режиме), Cyrix и другими производителями.

ia64 - Intel Itanium IA-64. Впервые официально выпущен в Debian 3.0. Это перенос на первую 64-битную архитектуру Intel. Примечание: не путайте с последними 64-разрядными расширениями Intel для процессоров Pentium 4 и Celeron, называющимися EM64T, вместо этого обратитесь к переносу AMD64.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: 64-бит или 32-бит ?

Непрочитанное сообщение Olej » 01 май 2012, 23:56

Так ... теперь поехали дальше ;-) :
Ali писал(а): Да. (amd64 == x86_64 == i32e == EMT64 ) != ia-64
Вариант дистрибутива/пакеты x86_64 можно ставить и на интел, и на AMD. Почти все современные процессоры интел и амд, кроме некоторых атомов, будут работать.
т.е. можно ставить и i686 и x86_64 - на выбор: хоть то, хоть то...

В чём, по вашему мнению, будет отличаться субъективно (по потребительским свойствам) установки i686 и x86_64? ... на достаточно современном процессоре, хоть Intel, хоть AMD.

Какие характеристики можно будет записать "в плюс" и "в минус" в том и в другом случае?

Ali
Писатель
Сообщения: 57
Зарегистрирован: 08 окт 2011, 08:00
Контактная информация:

Re: 64-бит или 32-бит ?

Непрочитанное сообщение Ali » 02 май 2012, 00:24

Olej писал(а): ...
Мне кажутся не аргументированными тиражируемые заклинания о каком-то гипотетическом сказочном увеличении производительности при переходе на 64-бит. За счёт чего?
За счёт того, что 2+3 будут складываться не в 32-бит регистрах заполненных нулями, а в 64-бит регистрах, ещё более заполненных нулями?

Я понимаю, что за счёт 500 и более регистров можно растолкать в них всё, и на этом сэкономить... ну 10%, ну 20% ... но разы!
Я понимаю, что при системных вызовах можно syscall с числом параметров >6 вызывать всегда через регистры, а не через стек ... но только таких syscall с >6 параметрами вызова - раз-два и обчёлся ... если они вообще в Linux остались...

Где!? вот тот скрытый потенциал повышения производительности при переходе к 64-бит?
При прочих равных... при тех же частотах, при тех же числе регистров в архитектуре, которые можно так же успешно использовать и для загрузки 32-бит операндов.
Где?

...
Я не вижу так отчётливо выгод потребителя. :-(
Какие разы? Хорошо если 5-10% на синтетических тестах.

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

Но под всяким маркетингом должна быть какая-то правда. И она есть.
Смотрите. Большинство современных линуксов собрано под i586 и в лучшем случае i686. i686 это пентиум про, а в нем нет mmx. Линуксы же х86_64 собираются сразу под процессор:

Код: Выделить всё

nocona
               Improved version of Intel Pentium4 CPU with 64-bit extensions, MMX, SSE, SSE2 and SSE3 instruction
               set support.
А какие приложения использует массовый потребитель, сколько там возможно векторных оптимизаций?

Правда, если собирать все с максимальными оптимизациями будет ещё забавней. Думаю х86_64 будет впереди в основном за счет передачи параметров процедур через регистры и векторных расширений.
Убрал пример. Плохой получился. Идея была в том, что обычные сишные процедуры используют регистры, а не стек.
Последний раз редактировалось Ali 02 май 2012, 00:50, всего редактировалось 1 раз.

Ali
Писатель
Сообщения: 57
Зарегистрирован: 08 окт 2011, 08:00
Контактная информация:

Re: 64-бит или 32-бит ?

Непрочитанное сообщение Ali » 02 май 2012, 00:39

Olej писал(а): ....
т.е. можно ставить и i686 и x86_64 - на выбор: хоть то, хоть то...

В чём, по вашему мнению, будет отличаться субъективно (по потребительским свойствам) установки i686 и x86_64? ... на достаточно современном процессоре, хоть Intel, хоть AMD.

Какие характеристики можно будет записать "в плюс" и "в минус" в том и в другом случае?
i686
  • wine +
  • проприентарные 32 программы +
  • не запустить 64-битный код, не все драйвера есть для PAE -
x86_64
  • можно запустить 32-битный код +
  • нормально работает виртуализация +
  • wine -
  • меньше драйверов ИМХО -
  • занимает больше места на диске -
  • требуются 32-битные библиотеки -

Ответить

Вернуться в «Железо для Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей