Ваше местоположение в сети:
Рубрика:
Путеводитель по интернету

32 бит или 64 бит

Сегодня я хочу поговорить об адресации памяти. Звучит, конечно, страшно, но этот пост отнюдь не для программистов. Вы ведь слышали словосочетание "64-битный компьютер", например, в рекламе? Даже если не слышали, то сейчас я попытаюсь понятным языком объяснить, о чем идет речь.

Зачем вам это нужно? Ну, например, затем, чтобы не купить слишком много оперативной памяти на свой компьютер, неспособный с таким количеством памяти работать. Ну или чтобы знать, что могут возникнуть некоторые проблемы при работе некоторых программ после перехода на более новый компьютер и.т.п.

Начну с простого. Бит - это 0 или 1, минимальный носитель информации, "горит - не горит" - в первых компьютерах биту как раз и соответствовала лампочка. Более часто используемое слово, "байт" - это последовательность из восьми битов. Так как каждый из них принимает значение 0 или 1, всего получается 2*2*2*2*2*2*2*2=256 значений. Достаточно, например, чтобы закодировать символ (не слишком специфический). Перейдем к адресации памяти...

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

Сейчас объясню. Допустим, вы используете 16 битов для адресации памяти. Мы можем адресовать 2^16 (два в шеснадцатой степени) байтов. В килобайте 1024 байта (2^10), соответственно 10 битов уходит на адресацию "до килобайта", остается 6, тем самым мы может адресовать 64 килобайта. Именно такая адресация использовалась во времена dos, памяти, конечно, можно было использовать больше, но для этого использовалась специальная технология страниц.

32bit-64bit

Переходим к более современным компьютерам и используем 32 бита при адресации. В килобайте 1024 байта, в мегабхайте 1024 килобайта, в гигабайте 1024 мегабайта, так что 30 уходит на адресацию "до гигабайта". Остается 2 бита, тем самым 32-битный компютер не может адресовать более 4х гигабайт. По неизвестнным мне причинам эта планка в Windows понижена, тем самым сама Windows использует не больше 3х, а конкретной программе может быть выделено не больше 2х гигабайт.

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

Но это не все! Мало иметь компьютер, умеющий работать в режиме 64 бит, нужно еще поставить 64-битную операционную систему чтобы использовать преимущества 64-битной адресации и 64-битных численных операций (что тоже ускоряет работу компьютера). А вот здесь возникают определенные проболемы. Например, 64-битная Windows XP существует только в английском варианте, так что вы точно столкнетесь с проблемами кодировки. Так что, возможно, стоит остановиться на Висте, как это ни печально мне признавать (если, конечно, не начать переходить на Линукс!). Но, в любом случае, убедитесь, что ставится именно 64-битная операционная система.

Ну и далее. 64-битная программа в принципе не будет работать под 32-битной операционной системой. Обратная совместимость в принципе должна быть, но бывают проблемы. Но опять-таки, даже если у вас 64-битный компьютер и 64-битная операционная система, но вы запускаете 32-битную программу, то она не сможет использовать более 2х гигабайт памяти.

Вот такой сказ про адресацию. Надеюсь, не слишком замурил голову. Я старался писать относительно грамотно, но при этом доходчиво. У меня получилось?

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

Если же вы ищете, какие еще блоги почитать, могу порекомендовать еще один ресурс под названием закоулки сети. На этом сайте регулярно публикуются обзоры интересных блогов сети. Думаю, вы сможете найти что-нибудь на свой вкус!

Дата: 20 октября 2009 г., категория: размышления об интернете.

Хотите знать все об интернете?

Введите свой адрес электронной почты чтобы подписаться на обновления!



Доставляется при помощи FeedBurner. Никакого спама. Всегда можно отписаться!

Загружается, подождите...
← Что такое блог?Трюки веб-дизайна →

Комментарии

1#

komp
20 октября 2009 г. 19:26:40

а как же 32 битные серверные операционные системы? как они используют более 3 гигабайт памяти?
 

2#

Sander ok
20 октября 2009 г. 20:01:03

komp, опять-таки используется специальная технология страниц памяти (http://en.wikipedia.org/wiki/Page_table)
Единого адресного пространства в таких системах не существует. Рабочее решение, но дополнительные накладные расходы.
В принципе, всегда находились решения, обходящие подобные пороги. Например, движок баз данных ключ-значение QDBM не умел работать с файлами размера больше 2GB, поэтому для больших баз данных создавал массивы файлов, что существенно создавало работу.
 

3#

Yuri Klimov ok
20 октября 2009 г. 23:56:01

Саш! А ты уверен, что отдельное приложение не может использовать более 2GB памяти под Windows? Что-то мне не верится, что Windows такая уродская ;).

Может стоит рассказать про физическую и виртуальную память? (А про преобразование, станицы и сегменты, можно не писать - не важно как оно устроено.) А то многое не становится понятным.

"По неизвестнным мне причинам эта планка в Windows понижена, тем самым сама Windows использует не больше 3х" - это не в Windows, а вообще в системах, у которых физический адрес 32-битный. Просто часть физических адресов используется не памятью, а устройствами. Поэтому память не видна. А если физический адрес большой (реально 36-40 битный (в зависимости от возраста системы), но это не важно, главное, что больше 32), то часть памяти получают адреса более 4GB.
 

4#

user
21 октября 2009 г. 00:19:06

Здравствуйте.У меня Win XP 32 bit (озу) 3327 мб. До этого стоял Win XP 64bit (озу) на4 ГБ , причём на русском языке. Большинство программ на 64-битный компьютер просто неставится, выдаёт ошибку и всё.
 

5#

Sander ok
21 октября 2009 г. 00:48:59

Юр, по поводу двух GB - я знаю точно по вольфрамовской математике. Под 32-битной виндой при достижении 2GB вылетает моментально, выдавая ругательное сообщение. Ничего сделать не возможно. Про физическую и виртуальную память нужно будет собраться и написать. Завтра сделаю, спасибо!

user, а что за программы не ставились? Но, в общем, это подтверждает мои слова - 64битная XP работает криво
 

6#

user
21 октября 2009 г. 03:19:16

В 64-bit версии поддержка 16-битных приложений вообще отсутствует.Также проблема с поиском драйверов,была проблема с установкой wi-fi и наверное ещё чтото ,непомню,давненько было. Вобще считаю что 64-битные операционные системы нужны тем кто профессионально работает с 64-х разрядными приложениями.
 

7#

Sander ok
21 октября 2009 г. 10:03:48

user, я бы не относил эти проблемы к 64-битным системам вообще. Скорей, речь об XP или, может быть, о Windows. И, тем более, идет постоянный прогресс. Будущее все равно за ними - тот факт, что процессор работает с 64-битными числами все равно ускоряет систему.
А сейчас я под Ubuntu - поставил 64bit на новый ноут. Никаких проблем с WiFi и прочими устройствами не было - все подхватилось на ура.
Еще недавно ставил 64bit WinXP на стационарный. Просидел день, но все-таки все драйверы нашел. Если же мы покупаем компьютер с уже настроенными драйверами, мне кажется, вообще не должно быть сложностей.
 

8#

user
21 октября 2009 г. 14:34:46

То, что будущее за 64-битным системами это точно. В моём случае просто была возможность попробовать 64-бита, и то что потерял немного памяти меня не огорчает. Насчёт скорости, на 32-битных приложениях это незаметно.
 

9#

Yuri Klimov ok
30 октября 2009 г. 12:30:21

Хорошая обзорная статья - http://www.ixbt.com/cpu/cpu-digest-2009.shtml
 

10#

Sander ok
30 октября 2009 г. 12:33:34

спасибо )
 

11#

pieceofsummer
15 ноября 2009 г. 15:52:28

> отдельное приложение не может использовать более 2GB памяти под Windows?
Может.
Адресное пространство каждого приложения в 32-битной среде - те самые 2^32, т.е. 4 гигабайта. По умолчанию верхние 2 гигабайта отведены под разделяемые ресурсы (системные DLL, Memory-Mapped Files и т.д.), а нижние - под нужды программы.
Чтобы разрешить программе использовать память свыше 2-х гигабайт (но не более, чем 4 Гб - разделяемые ресурсы), существует специальный флаг в заголовке исполняемого файла, выставляемый при компиляции программы. Можно также поставить его вручную (используя команду editbin из Windows SDK), однако в результате программа, где не была заложена такая возможность, может начать работать неправильно.
 

12#

Лигурия
15 ноября 2009 г. 23:32:54

У меня 64 битный проц но я все равно юзаю 32 битные версии ОС и софта.
Почему?
Хоть уже прошло столько лет с массового запуска 64 битный процов, 32 битный софт все равно работает быстрее чем его 64 битные аналоги...
 

13#

Sander ok
16 ноября 2009 г. 10:20:33

pieceofsummer
Спасибо за корректировку! - я серьезно думал, что это в винде совсем так извратились
 

14#

Vayun
24 ноября 2009 г. 02:55:29

Если ставить домой и Linux, нет смысла в 64-х битах. Верно, что в 32битах каждая программа не сможет использовать больше ~2GB памяти, но система в целом может (см wiki PAE) хоть 32 можно поставить. Вопрос в том часто ли нужно программе больше 2ГБ памяти (всякие токиокабинеты с километровыми полиномами внутри не считаются :) )?
 

15#

Sander ok
24 ноября 2009 г. 08:53:59

Как это токиокабинеты не считаются. Они, родимые. Потом, Математика Вольфрамовская. Я тут на стационарный 12GB оперативки делал, думаю, с 32bit было бы плохо
 

16#

bey
26 ноября 2009 г. 12:41:51

у вас ниже картинки очепятка - мегаюайте вместо мегабайте
 

17#

Sander ok
26 ноября 2009 г. 12:43:55

спасибо, исправил
 

18#

Alex
1 декабря 2009 г. 18:44:32

у вас ниже картинки очепятка - Остается 2 бита, а не байта
 

19#

Sander ok
1 декабря 2009 г. 21:29:23

спасибо, исправил!
 

20#

яна касимова
2 декабря 2009 г. 13:00:24

Можно спросить, воть если у меня в свойствах компьютера написано 32-ух битная, значит ли это что сам компьютер 32-ух битный или только система?
 

21#

Sander ok
2 декабря 2009 г. 13:05:28

Яна, если речь о "мой компьютер - свойства", то это лишь означает, что система 32-битная. Компьютер может быть и 64-битным, просто из-за операционной системы его ресурсы не используются полностью. Нужно смотреть спецификацию компьютера и искать в интернете информацию про тип процессора и/или материнской платы
 

22#

яна касимова
2 декабря 2009 г. 13:33:29

Спасибо за объяснения, буду разбираться)
 

23#

яна касимова
2 декабря 2009 г. 13:46:46

Процессор поддерживает 64-битовую архитектуру - значит он 64? или нет? извини, достала наверно) и если он 64, то систему лучше переустановить?
 

24#

Sander ok
2 декабря 2009 г. 13:51:58

да, он 64
а вот нужно ли переустанавливать систему - это вопрос.
какая у тебя система? XP? с 64-битной XP бывают проблемы, некоторые драйверы не устанавливаются.
переустанавливать стоит если что-то не устраивает в текущем состоянии или если просто хочется повозиться
а, может, вообще ubuntu поставить?
если хочешь, напиши письмо через форму обратной связи, можно более детально обсудить (все же зависит от параметров компьютера и выполняемых задач)
 

25#

яна касимова
2 декабря 2009 г. 14:04:04

вообщем-то проблем с системой нет, у меня виста, но в последнее время, проводник стал портачить, папки не открываются и т.д. может поэтому переустановить?
P.S хотела отправить отдельно вам, но картинка с цифрами не показывается(
 

26#

Sander ok
2 декабря 2009 г. 14:11:53

эх, опять я эту контактную форму испортил. надо будет заняться.
в общем, мой адрес получается заменой первой точки в доменном имени на @
 

27#

Mavarik
14 марта 2010 г. 16:50:55

я не пробовал 64 разрядную XP
а вот VISTU и Windows 7 64-х разрядную ставил и пользовался длительное время, меня всё устраивало и работало, нужные драйвера искал в интернете, с программным обеспечением особых трудностей не испытывал
сейчас перешёл на Ubuntu amd64, система очень нравится
 

28#

jenix
27 июня 2010 г. 02:55:29

"Просто часть физических адресов используется не памятью, а устройствами. Поэтому память не видна"

Это не правда. Даже в самых старых микропроцессорах было два параллельных адресных пространства - для памяти и для внешних устройств. Различие было в специальном сигнале, выдаваемом на контакт процессора.
При этом для адресации используется таже самая шина адреса.
 

29#

Сандер
27 июня 2010 г. 12:43:11

jenix,
надо будет позвать Yuri Klimov чтобы он ответил сам :)
ждите ответа!
 

30#

Yuri Klimov ok
27 июня 2010 г. 15:06:30

jenix,
есть I/O-порты, для которых используются отдельные инструкции процессора IN и OUT. Однако это медленно и многие современные устройства захватывают физические адреса - посмотрите в /proc/iomem, там всё описано: какие физические адреса чему соответствуют (памяти, устройствам). Тогда с устройством можно общаться с помощью инструкций MOV (как с памятью).
 

31#

джульбарс
5 июля 2010 г. 15:50:23

на мой взгляд в современной софтовой индустрии ещё не начинались рационально использовать архитектуру 64 бит
 

32#

Мария
2 декабря 2010 г. 14:13:18

Спасибо, все стало понятно!
 

33#

Тимур
17 марта 2011 г. 21:57:42

Спасибо огромное все понятно, и разяснено мне пригодилось для ознакомления)
 

34#

STAER
24 апреля 2011 г. 02:37:49

Спасибо за статью.У меня ноутбук 64бит,убУнту поставил 32-битную,использует 3,9 из 4Гб. И вообще после винды чуть-ли не взлетает.:-)
Сань в самом внизу ошибочька "погу" Про карты вообще классный сайт,сп.
 

35#

Sander ok
24 апреля 2011 г. 12:23:57

Ошибку исправил, спасибо!
Что касается 3.9 из 4 - тут, возможно, отличие в единицах измерения еще. 1024 или 1000 байт в килобайте и.т.п.
 

36#

sistem1984
15 мая 2011 г. 18:34:00

Сейчас майрософт вместе с производителями железа (интел, амд и нвидео) готовят махинацию с целью обогащения - это выпуск железа и новой винды на 128 битной системе и возможно с убийством 8,16,32,64 битных систем - чисто прекращение производства х86-64 процессоров - так как мягкий переход на 64 битную систему не поддержали изготовители софта из-за сложности в изготовлении игр и программ для платформ столь высокого полета то щас их в добровольно-принудительном порядке заставят перейти как софто изготовителей и потребителей и в той гонке выиграют только те компании которые создают кросплатформенные приложения (плайстейшен, нинтендо и тп) путем ухода из виндовс сферы и мега корпорации которые могут себе позволить переобучить свой штат математиков ... ЛИНУКС ФОРЕВА ))))
 

37#

DieselxXx
19 мая 2011 г. 12:45:46

"По неизвестнным мне причинам эта планка в Windows понижена, тем самым сама Windows использует не больше 3х"
а про резервацию под саму ОС? а под устройства?
"а конкретной программе может быть выделено не больше 2х гигабайт"
а про флаг IncreaseUserVa знаете?
В общем, не вводите людей в заблуждение!
 

38#

freedng
29 сентября 2011 г. 16:26:20

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

39#

фм
19 октября 2011 г. 01:12:07

1more спасибо!
 

40#

alex
15 ноября 2011 г. 01:26:25

Очень интересные коменты-купил ноут i7,3гб памяти с 64-БИТ ОС И НЕ ПОЧУВСТВОВАЛ БОЛЬШЕЙ ПРОИЗВОДИТЕЛЬНОСТИ,ЧЕМ В В ОС 32-БИТ.И почему в свойствах:ОЗУ-4гб(3,17гб доступно)-?Спасибо.
 

41#

Sander ok
15 ноября 2011 г. 18:23:49

alex, а какой был до этого ноут? И в чем именно хотите почувствовать производительность?
Что касается \"3.17 свободно\" - так остальное занято системными процессами и прочими программами.
 

42#

alex
15 ноября 2011 г. 21:39:19

Спасибо.Память на новом ноуте не 3 а 4гб.Я понял-почти 1гб занято приложениями.
А стационар AMD 2ядра,2,51ГГц,ОЗУ=2гб,2 винта по 500гб,на первом ХР,на втором W-7 максим.,32-бит.Мои основные приложения:1С,Пи Маркет,Pinnacle Studio 12,Samplitude 10 Download version, Microsoft Excel,Nero и т.д.Надеялся,что Core((TM)i7-2630QM БУДЕТ ВЕСЕЛЕЙ ПАХАТЬ.Все эти приложения работают медлительней,чем на десктопе,даже при загрузке страницы Excel.А Pinnacle Studio ВООБЩЕ не советую ставить на 64-бита-много плагинов не работает.А В НЕТБУКЕ Lenovo c атомом и 1гб памяти 1с, Excel и Пи Маркет просто летают(ОС 7 32-БИТ.Вот такая не очень весёлая история,нет ещё норм.прог заточеных под 64-бит.
 

Подписаться на: комментарии к статье (rss), комментарии к статье (e-mail)

[*] Авторизоваться при помощи профиля Google (и не только)
Самые активные участники сайта:

Хотите разместить здесь свою аватарку? Авторизуйтесь, загружайте картинку и комментируйте!
Имя:

E-mail (если хотите подписаться на комментарии):

Сайт (не обязательно):

Я - робот! (снимите галочку, если это не так)
Для блоггеров: если вы хотите чтобы ваша ссылка индексировалась поисковыми системами, вам нужно авторизоваться при помощи Google Friend Connect и написать осмысленный комментарий по теме. В таком случае я переведу ваш аккаунт в разряд "trusted". Комментарии пользователей с проверенным аккаунтом не попадают на модерацию, ссылки индексируются, а рядом с ником стоит значок с зеленой галочкой. Да, модерацию могут пройти только ссылки IT-тематики! Внимание: если вы не авторизуетесь, я не смогу сделать вашу ссылку активной даже если мне понравятся ресурс и комментарий!
Комментарий:

Подписаться на  комментарии к статье (rss), комментарии к статье (e-mail)