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, памяти, конечно, можно было использовать больше, но для этого использовалась специальная технология страниц.

Переходим к более современным компьютерам и используем 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 г., категория: размышления об интернете.
| ← Что такое блог? | Трюки веб-дизайна → |
Комментарии
1# |
а как же 32 битные серверные операционные системы? как они используют более 3 гигабайт памяти? |
2# | Sander komp, опять-таки используется специальная технология страниц памяти (http://en.wikipedia.org/wiki/Page_table)
|
3# | Yuri Klimov Саш! А ты уверен, что отдельное приложение не может использовать более 2GB памяти под Windows? Что-то мне не верится, что Windows такая уродская ;).
|
4# |
Здравствуйте.У меня Win XP 32 bit (озу) 3327 мб. До этого стоял Win XP 64bit (озу) на4 ГБ , причём на русском языке. Большинство программ на 64-битный компьютер просто неставится, выдаёт ошибку и всё. |
5# | Sander Юр, по поводу двух GB - я знаю точно по вольфрамовской математике. Под 32-битной виндой при достижении 2GB вылетает моментально, выдавая ругательное сообщение. Ничего сделать не возможно. Про физическую и виртуальную память нужно будет собраться и написать. Завтра сделаю, спасибо!
|
6# |
В 64-bit версии поддержка 16-битных приложений вообще отсутствует.Также проблема с поиском драйверов,была проблема с установкой wi-fi и наверное ещё чтото ,непомню,давненько было. Вобще считаю что 64-битные операционные системы нужны тем кто профессионально работает с 64-х разрядными приложениями. |
7# | Sander user, я бы не относил эти проблемы к 64-битным системам вообще. Скорей, речь об XP или, может быть, о Windows. И, тем более, идет постоянный прогресс. Будущее все равно за ними - тот факт, что процессор работает с 64-битными числами все равно ускоряет систему.
|
8# |
То, что будущее за 64-битным системами это точно. В моём случае просто была возможность попробовать 64-бита, и то что потерял немного памяти меня не огорчает. Насчёт скорости, на 32-битных приложениях это незаметно. |
9# | Yuri Klimov Хорошая обзорная статья - http://www.ixbt.com/cpu/cpu-digest-2009.shtml |
10# | Sander спасибо ) |
11# |
> отдельное приложение не может использовать более 2GB памяти под Windows?
|
12# |
У меня 64 битный проц но я все равно юзаю 32 битные версии ОС и софта.
|
13# | Sander pieceofsummer
|
14# |
Если ставить домой и Linux, нет смысла в 64-х битах. Верно, что в 32битах каждая программа не сможет использовать больше ~2GB памяти, но система в целом может (см wiki PAE) хоть 32 можно поставить. Вопрос в том часто ли нужно программе больше 2ГБ памяти (всякие токиокабинеты с километровыми полиномами внутри не считаются :) )? |
15# | Sander Как это токиокабинеты не считаются. Они, родимые. Потом, Математика Вольфрамовская. Я тут на стационарный 12GB оперативки делал, думаю, с 32bit было бы плохо |
16# |
у вас ниже картинки очепятка - мегаюайте вместо мегабайте |
17# | Sander спасибо, исправил |
18# |
у вас ниже картинки очепятка - Остается 2 бита, а не байта |
19# | Sander спасибо, исправил! |
20# |
Можно спросить, воть если у меня в свойствах компьютера написано 32-ух битная, значит ли это что сам компьютер 32-ух битный или только система? |
21# | Sander Яна, если речь о "мой компьютер - свойства", то это лишь означает, что система 32-битная. Компьютер может быть и 64-битным, просто из-за операционной системы его ресурсы не используются полностью. Нужно смотреть спецификацию компьютера и искать в интернете информацию про тип процессора и/или материнской платы |
22# |
Спасибо за объяснения, буду разбираться) |
23# |
Процессор поддерживает 64-битовую архитектуру - значит он 64? или нет? извини, достала наверно) и если он 64, то систему лучше переустановить? |
24# | Sander да, он 64
|
25# |
вообщем-то проблем с системой нет, у меня виста, но в последнее время, проводник стал портачить, папки не открываются и т.д. может поэтому переустановить?
|
26# | Sander эх, опять я эту контактную форму испортил. надо будет заняться.
|
27# |
я не пробовал 64 разрядную XP
|
28# |
"Просто часть физических адресов используется не памятью, а устройствами. Поэтому память не видна"
|
29# |
jenix,
|
30# | Yuri Klimov jenix,
|
31# |
на мой взгляд в современной софтовой индустрии ещё не начинались рационально использовать архитектуру 64 бит |
32# |
Спасибо, все стало понятно! |
33# |
Спасибо огромное все понятно, и разяснено мне пригодилось для ознакомления) |
34# |
Спасибо за статью.У меня ноутбук 64бит,убУнту поставил 32-битную,использует 3,9 из 4Гб. И вообще после винды чуть-ли не взлетает.:-)
|
35# | Sander Ошибку исправил, спасибо!
|
36# |
Сейчас майрософт вместе с производителями железа (интел, амд и нвидео) готовят махинацию с целью обогащения - это выпуск железа и новой винды на 128 битной системе и возможно с убийством 8,16,32,64 битных систем - чисто прекращение производства х86-64 процессоров - так как мягкий переход на 64 битную систему не поддержали изготовители софта из-за сложности в изготовлении игр и программ для платформ столь высокого полета то щас их в добровольно-принудительном порядке заставят перейти как софто изготовителей и потребителей и в той гонке выиграют только те компании которые создают кросплатформенные приложения (плайстейшен, нинтендо и тп) путем ухода из виндовс сферы и мега корпорации которые могут себе позволить переобучить свой штат математиков ... ЛИНУКС ФОРЕВА )))) |
37# |
"По неизвестнным мне причинам эта планка в Windows понижена, тем самым сама Windows использует не больше 3х"
|
38# |
Адресация не по байтам, а по ячейкам, то есть по биту, в результате которого мы можем получить всего 512 мб, и вот тут вступает технология MMU, ее функции заключаются в трансляции адресов виртуальной памяти в адреса физической памяти. |
39# |
1more спасибо! |
40# |
Очень интересные коменты-купил ноут i7,3гб памяти с 64-БИТ ОС И НЕ ПОЧУВСТВОВАЛ БОЛЬШЕЙ ПРОИЗВОДИТЕЛЬНОСТИ,ЧЕМ В В ОС 32-БИТ.И почему в свойствах:ОЗУ-4гб(3,17гб доступно)-?Спасибо. |
41# | Sander alex, а какой был до этого ноут? И в чем именно хотите почувствовать производительность?
|
42# |
Спасибо.Память на новом ноуте не 3 а 4гб.Я понял-почти 1гб занято приложениями.
|

