Что определяет разрядность компьютера
Как определить разрядность процессора – 32 или 64?
Как определить разрядность процессора в операционной системе Windows?
Тема статьи: Как определить разрядность процессора – 32 или 64 бита в Windows?
Многие пользователи хотели бы узнать больше об архитектуре своего компьютера, так как эти данные характеризуют производительность. Чаще всего этой информацией интересуются при покупке ПК.
В этой статье мы узнаем, как определить разрядность процессора в операционной системы, а также преимущества х32 и х64.
Разрядность процессора – что это такое?
Это число бит, которое содержится в электронном устройстве (процессоре).
Это влияет на объем информации, которая может быть обработана за определенное количество времени.
Различают два типа: х32 и х64. Еще есть х86. Ее можно отнести к х32, так как эта старая архитектура, которая сегодня редко используется.
Чаще можно встретить х64 разрядность, которая имеет большую скорость и увеличенный объем ОЗУ. Такой процессор устанавливается на все современные компьютеры.
Как определить разрядность процессора
Существует несколько способов, которые помогут узнать 32 битный или 64 битный процессор. Все они достаточно простые. Получить нужную информацию сможет даже не продвинутый пользователь компьютера.
Командная строка
Сначала необходимо открыть «Пуск» внизу экрана. (Или на клавиатуре вести комбинацию Win+R)
Введите в поисковой строке «cmd», чтобы открыть инструмент.
Появится черное окно, где нужно вписать «systeminfo» и нажать Enter.
Выполнится команда, которая покажет все сведения о компьютере.
Вам нужна строка Processor, где будет указано х32 или х64.
По названию
Определить разрядность процессора можно по его полному названию.
Перейдите в свойства, чтобы посмотреть эту информацию.
После этого в интернете следует найти эту модель и выяснить количество бит в строке «Архитектура».
Свойства компьютера
Найдите ярлык «Мой компьютер» через проводник или рабочий стол.
Нажмите на него правой кнопкой мыши.
Откроется меню, где нужно выбрать «Свойства».
Появится окно со всеми данными о ПК.
Нам нужна строка «Тип системы», где прописана разрядность ОС и процессора.
Самый простой метод, который поможет определить 64 или 32 бит процессор. Для этого даже не требуется операционная система и программное обеспечение.
Начните загрузку ПК.
Несколько раз нажмите F2 или Delete, не дожидаясь полного включения.
Выберите раздел Системные настройки.
В соответствующей строке посмотрите тип процессора. Там же будет указана модель, производитель и частота.
Интернет
Введите в поисковой строке браузера «узнать разрядность процессора онлайн».
Откройте любой сайт. Система автоматически определит характеристики вашего компьютера.
Перед этим необходимо отключить все расширения, которые могут заблокировать активный контент.
Сторонние программы
Можно воспользоваться дополнительным софтом, чтобы определить разрядность процессора 32 или 64.
Для этого требуется скачать и установить программу CPU-Z. Она бесплатная. Найти ее можно на множестве специализированных сайтов.
Запустите утилиту, чтобы увидеть все данные, которые характеризуют ваш процессор.
В строке Instructions (или набор инструкций) найдите цифру 32 или 64. Она указывает на разрядность.
Как выбрать разрядность
Процессоры можно разделить на два вида: одноядерные (32 бита) и двухъядерные(64 бита).
Скорость работы и производительность выше у двух ядер, поэтому такие процессоры используют на современных компьютерах.
Также в таких системах появляется возможность использовать больший объем оперативной памяти для быстрой обработки информации.
Лучше выбирать 64-разрядные процессоры, чтобы была поддержка большинства игр и приложений, в том числе для 32-битных.
Как установить 64-разрядную операционную систему
Когда не хватает производительности и оперативной памяти, может помочь установка 64-битной операционной системы.
После этого появятся новые возможности, увеличится количество поддерживаемых приложений. Для этого необходима полная переустановка Windows. Важно помнить, что все данные будут стерты, поэтому необходимо сохранить нужное на съемном носителе.
Начните установку ОС стандартным способом, записав загрузочный диск. Вам будет предложено несколько вариантов.
Выберите нужный язык и разрядность (х64), а также распределите локальные диски. Подтвердите начало операции. Через несколько минут новая операционная система будет установлена.
Почему не устанавливается
Неудача может произойти в том случае, если процессор не поддерживает выбранную разрядность. Необходимо приобрести соответствующие комплектующие, которые будут отвечать требованиям, и повторить установку 64-разрядной ОС.
Как узнать разрядность операционной системы
Чтобы узнать эту информацию, придется воспользоваться одним из двух методов. Необходимо найти значения х32 или х64.
Эти цифры и будут означать разрядность операционной системы. Они являются основным показателем, которые зависят от количества ядер системы.
Свойства компьютера
На рабочем столе найдите ярлык «Мой компьютер». Если такого там нет, то необходимо зайти через проводник.
Нажмите правой кнопкой мыши и выберите пункт «Свойства». После этого откроется окно со всеми основными сведениями о данном компьютере.
Найдите строку «Тип системы». С помощью указанной информации можно узнать х32 или х64.
Сведения о системе
Этот метод сложнее, но позволяет получить больше данных.
Откройте поисковую строку внизу экрана слева.
Введите «Сведения о системе». Откроется список, в котором нужно найти строку «Тип», где прописано количество бит ОС.
Также в этом окне можно получить много другой информации о компьютере.
В статье вы узнали: как узнать разрядность процессора 32 или 64 бита в windows 7, 8,8.1,10.
Как узнать сколько бит 32 или 64 моя Windows, какую выбрать для установки [их различие]. Разрядность Windows 7, 8, 10
Подскажите, как можно узнать сколько бит 32 или 64 в моей версии Windows 7. Когда устанавливали мне ОС — сказали 64 бита, а сейчас не могу установить антивирус (скачал как раз 64 битную версию).
Пробовал посмотреть в свойствах компьютера, но там вообще нет данных: просто ZverDVD — Windows. Есть ли еще работающие способы?
Судя по всему у вас стоит какая-то сборка Windows от различных «умельцев» (вообще, я ярый противник всех этих сборок, всегда лучше работать с лицензией 👌). Подозреваю, что проблема с отображением свойств — это еще не самая большая, с которой вы можете столкнуться.
В этой статье приведу несколько способов, которые помогут определить разрядность вашей Windows (т.е. сколько бит 32 или 64).
Примечание : обычно 32 битные системы помечаются — как x86, а 64 битные системы — как x64.
Определение разрядности ОС Windows (32 или 64 бит)
👉 Способ №1: свойства системы
Самый простой способ определения — это посмотреть свойства системы. Для этого зайдите в панель управления Windows по адресу:
Панель управления\Система и безопасность\Система
64 битная версия Windows
Я так понимаю, что пользователь, задававший вопрос таким способом не смог узнать разрядность ОС, поэтому сразу перехожу еще к нескольким.
👉 Способ №2: через командную строку
Сначала необходимо открыть командную строчку. Привожу универсальный способ для всех ОС:
В командной строке введите команду systeminfo и нажмите Enter.
Просмотр разрядности системы в командной строке
👉 Способ №3: через спец. утилиты
Сейчас довольно много разнообразных утилит для мониторинга состояния ПК, ОС, ее чистки, обслуживания и пр. В них часто можно узнать всю подноготную о вашей Windows.
У меня на блоге, кстати, есть такая статья, ссылка ниже (рекомендую).
Утилиты для просмотра характеристик ПК — см. мою подборку
В частности, чтобы узнать сколько битная ваша ОС — достаточно ее запустить, когда программа загрузится — первая строчка ответит вам на этот вопрос.
Speccy / 64 битная система
Особенности x64, x32 систем, стоит ли переходит с 32-битной системы на 64?
Многие ошибочно полагают, что если на коробке написано (или в описании) «64» — значит система по определению лучше ( ностальгия: вспомнились картриджи к Dendy, когда писали «999 игр в одном картридже», а по факту 5. ).
Рассмотрим ниже основные особенности (я оформлю их в виде пунктов, а уж каждый для себя решит сам, стоит ли ему переходить на другую ОС Windows).
Обновление 2020 г.
Вообще, сейчас почти все современные ноутбуки и ПК идут как минимум с 8 ГБ ОЗУ. Поэтому, на сегодняшний день для большинства пользователей выбор-то очевиден.
А всё-таки, как быстро бежит время. Еще несколько лет назад 3-4 ГБ ОЗУ считалось самым топом, а теперь и 16-32 ГБ никого не удивляет.
В остальных случаях, гнаться за цифрой «64» (если у вас нет 4+ГБ ОЗУ) — нет вообще никакого смысла. Существенного плюса в производительности не получите (как бы не было обратного эффекта ☝).
Кстати, первые x64 Windows не отличались большой стабильностью, программы часто вылетали с ошибками, ОС уходила в «синие экраны». Сейчас, в общем-то, об этом можно забыть и не говорить.
Что такое разрядность (битность)
операционной системы
Что такое разрядность
Исходя из определения, можно сделать вывод, что чем выше разрядность операционной системы компьютера, тем быстрее он работает.
На самом же деле, не все так просто. Прирост быстродействия от использования 64-битной системы на практике почти не ощущается. Кроме того, каждый из типов ОС имеет свои недостатки.
Недостатки 64-разрядной версии Windows:
• Windows х64, а также 64-разрядные программы, используют значительно больше оперативной памяти компьютера, чем их 32-разрядные аналоги;
• Windows х64 может работать только на компьютере, процессор которого поддерживает такую возможность. Однако, этот недостаток уже почти потерял свою актуальность, поскольку абсолютное большинство современных процессоров поддерживают технологию х64.
Недостатки 32-разрядной версии Windows:
• компьютер с 32-разрядной системой может использовать не больше 4 ГБ оперативной памяти, даже если объем физически установленных в нем модулей ОЗУ будет значительно превышать этот показатель;
• в 32-разрядных версиях Windows не работают 64-битные программы. В то же время, 32-битные приложения в Windows 64-bit, как правило, работают нормально.
Какую Windows предпочесть, 32-х или 64-разрядную?
Как узнать разрядность Windows компьютера
1. Найти на рабочем столе компьютера значок с названием «Компьютер», «Этот компьютер» или «Мой компьютер».
Если на рабочем столе такой значок отсутствует, его туда можно добавить. Как добавить значок «Компьютер» на рабочий стол читайте здесь.
2. Щелкнуть по этому значку правой кнопкой мышки и в открывшемся контекстном меню выбрать пункт «Свойства».
Откроется окно, которое в разных версиях Windows выглядит по-разному. Но в нем в любом случае отображается информация о разрядности Windows, см. изображение ниже.
Исключением является Windows XP. Информация о ее типе отображается только в том случае, если Windows является 64-разрядной. В открывшемся окне будет присутствовать надпись “Выпуск x64”, “x64 edition” или что-то похожее. Если такой надписи нет, значит Windows XP является 32-разрядной.
Как определить разрядность процессора — 32 или 64?
Разрядностью (или битностью) центрального процессора (ЦП) называется количество бит, которые ЦП может обрабатывать за одну команду. Разрядность определяет количество бит, отводимых хранение одной ячейки данных. То есть, если архитектура вашего процессора, например, 32 битная, то он может работать с числами, которые представлены в двоичном коде из 32 бит, причём обрабатывать эти числа он может за одну команду.
Таким же образом (за одну команду) могут обрабатываться данные и меньшей разрядности, просто их старшие биты будут игнорироваться. Современные ЦП могут работать c 8-ми, 16-ти, 32-х и 64-х разрядными типами данных. Все использующиеся сейчас ЦП в компьютерах либо 32, либо 64 разрядные.
Часто, читая описания ЦП, можно встретить обозначение x86 — это значит, что мы имеем дело с 32 битной архитектурой. Если же встречается надпись х64 – то можно сказать, что данный ЦП обладает битностью, равной 64.
Важно! Часто битность ЦП ошибочно принимается за основу при определении максимального объёма памяти, к которому он может обращаться. Это, естественно, не так. Шины адреса и данных практически любого ЦП имеют разную битность и никак не влияют друг на друга.
Значение битности ЦП играет не последнюю роль для пользователей, поскольку битности операционной системы (ОС) и процессора, которые используются друг с другом, должны совпадать. Однако, здесь работает принцип обратной совместимости: на 64 разрядный ЦП может быть установлена операционная система как 32 так и 64 разрядная.
Версия операционной системы в данном случае не играет роли: например, все ОС Windows или Linux, уже начиная с появления первых 64 разрядных ЦП имеют как 32 битные так и 64 битные сборки. То есть, существуют все версии Windows (от XP до 10-й), имеющие как 64 так и 32 битную среду.
Важно! Установить на ЦП семейств х86 ОС, в названии которой фигурирует «х64» невозможно! Мало того, невозможно запускать исполняемые файлы для 64 битных ЦП на 32 битных ОС.
Именно поэтому определение того, какие именно (32 или 64 разрядные) данные используются ЦП весьма важно. Часто от этого зависит работоспособность достаточно больших групп пользователей, использующих одинаковое программное обеспечение.
В данной статье будет рассмотрено, как узнать разрядность процессора при помощи различных способов.
Определение разрядности процессора
Существует множество способов, как определить разрядность процессора. Посмотреть информацию о ней можно либо при помощи программных средств, либо средств BIOS; в крайнем случае, можно просто увидеть маркировку ЦП и уже по ней определить, сколько же бит отводится на обработку данных. Иногда эту информацию получить совсем просто: например, если количество ядер ЦП больше одного, то этот ЦП – 64 разрядный.
Через командную строку
Один из самых эффективных способов, как определить разрядность процессора без использования дополнительных средств. Для его реализации следует запустить командную строку – открыть в меню «Пуск» пункт «Выполнить» (или нажать Win+R на клавиатуре) и в появившемся окне набрать команду «cmd»,после чего нажать «Ввод».
Откроется консоль командного процессора. В ней следует ввести команду «systeminfo». Результатом её выполнения будет длинный перечень параметров системы. Интересующий нас пункт называется «Процессор(ы):» В нём будет написано название модели ЦП. И обязательно указана его битность (либо цифрами 32 или 64, либо надписями «х86» или «х64»).
Через свойства компьютера
Можно определить, какую разрядность поддерживает процессор, посмотрев свойства системы.
Один из способов сделать это – войти в параметр «Система» панели управления и там, в разделе «Тип системы» можно будет увидеть её разрядность. Если она равна 64, то и ЦП тоже 64 битный.
Однако, как уже было сказано ранее, поскольку на 64 разрядный ЦП может быть поставлена 32 разрядная система, необходимо будет уточнить тип используемого ЦП. Для этого следует зайти в «Диспетчер устройств», ссылка на который есть на той же странице, в «Устройствах» выбрать ЦП и открыть в его свойствах вкладку «Сведения».
В этой вкладке интересующий нас параметр называется «ИД оборудования». В нём будет указан тип используемого процессора – 64 или 32 разрядный.
Альтернативой является исследование свойств устройства, называемого в Диспетчере устройств «Компьютер». В нём может содержаться описание применяемого типа ПК с указанием его битности.
Аналогично свойствам процессора, следует зайти в свойства компьютера и во вкладке «Сведения» посмотреть описание устройства. Параметр может также называться «Выводимое имя». В любом случае, в нём будет присутствовать либо надпись «х86», либо «х64», что и будет соответствовать битности используемого ЦП в 32 или 64 соответственно.
Узнать разрядность через интернет
Для этого достаточно набрать в строке поиска фразу «узнать разрядность онлайн». Первые 5-10 результатов поиска дадут ссылки на сайты, определяющие этот параметр. После этого следует перейти на этот сайт и активный контент автоматически опознает количество разрядов ЦП и версию ОС.
Важно! Исполнение активных компонентов может быть заблокировано браузером и в этом случае определить интересующий параметр не получится. Для этого следует разрешить выполнение активного содержимого на странице.
Через BIOS
Самый простой способ, не требующий наличия программного обеспечения вообще. При загрузке ПК следует войти в BIOS, нажав F2 или Del. Далее следует выбрать раздел «System Settings», «Main» или «CPU Settings» – в зависимости от производителя BIOS он может называться по-разному, и посмотреть значение параметра «Processor Type». В нём будет указана фирма производитель, модель ЦП, его частота и разрядность.
О разрядности процессоров
Целью данной статьи является попытка посеять сомнение в голове читателя, уверенного, что он знает о разрядности всё или почти всё. Но сомнение должно быть конструктивным, дабы сподвигнуть на собственное исследование и улучшить понимание.
Термин «разрядность» часто используют при описании вычислительных устройств и систем, понимая под этим число бит, одновременно хранимых, обрабатываемых или передаваемых в другое устройство. Но именно применительно к центральным процессорам (ЦП), как к наиболее сложным представителям вычислительного железа, не делимым на отдельные детали (до тех пор, пока кто-то не придумал, как продать отдельно кэш или умножитель внутри чипа), понятие разрядности оказывается весьма расплывчатым. Продемонстрировать это поможет умозрительный пример.
Представьте себе, что вокруг благодатные 80-е, в мире (всё ещё) десятки производителей ЦП, и вы работаете в одном из них над очередным поколением. Никаких 256-битных SSE8, встроенных GPU и 5-канальных контроллёров памяти на свете пока нет, но у вас уже есть готовый 16-битный процессор (точнее, «16-битный» пишется в технической документации), в котором 16 бит везде и во всём — от всех внешних шин до архитектурного размера обрабатываемых данных. Реальным примером такого ЦП могут быть первые однокорпусные (правда, не однокристальные) ЦП для архитектуры DEC PDP-11. И вот приходит задание руководства — разработать новое, обратно совместимое поколение этого же ЦП, которое будет 32-битным — не уточняя, что понимается под последним. Именно это понимание и предстоит прояснить в первую очередь. Итак, наш главный вопрос: что именно надо удвоить по разрядности в нашем пока насквозь 16-битном ЦП, чтобы получившийся процессор мог называться 32-битным? Чтобы решать задачу было легче, применим два подхода: систематизируем определения и посмотрим на примеры.Систематизируем
Первое, что приходит в голову — разрядность чего именно считать? Обратимся к определению любой информационной системы: её три основных функции — это обработка, хранение и ввод-вывод данных, за которые отвечают, соответственно, процессор(ы), память и периферия. Учитывая, что сложная иерархически самоподобная система состоит из многих компонент, можно утверждать, что такое разделение функций сохраняется и на компонентном уровне. Например, тот же процессор в основном обрабатывает данные, но он также обязан их хранить (для чего у него есть относительно небольшая память) и обмениваться с другими компонентами (для этого есть разные шины и их контроллёры). Поэтому будем функционально разделять разрядности обработки, хранения и обмена информации.
Рискну предположить, что все производители любого программируемого «железа», особенно процессоров, на 90% стараются не для конечных пользователей, а для программистов. Следовательно, с точки зрения производителей процессор должен выполнять нужные команды нужным образом. С другой стороны, детали структуры кристалла (топологические, электрические и физические параметры отдельных транзисторов, вентилей, логических элементов и блоков) могут быть скрыты не только от пользователя, но и от программиста. Выходит, что разрядность надо отличать и по реализации — физическую и архитектурную.
Следует добавить, что программисты тоже бывают разные: большинство пишут прикладные программы на языках высокого уровня с помощью компиляторов (что делает код до некоторой степени платформонезависимым), некоторые пишут драйверы и компоненты ОС (что заставляет более внимательно относиться к учёту реальных возможностей аппаратной части), есть творцы на ассемблере (явно требующем знания целевого процессора), а кто-то пишет сами компиляторы и ассемблеры (аналогично). Поэтому под программистами далее будем понимать именно тех, для кого детали аппаратной реализации важны если не для написания программы вообще, то хотя бы для её оптимизации по скорости — «архитектурная» разрядность чего-либо будет относиться именно к программированию на родном машинном языке процессора или более удобном ассемблере, не залезая при этом в нутро ЦП (это уже вопросы микроархитектуры, которую мы для большего различия и назвали физической реализацией). Описанные нюансы всё равно влияют на всех программистов, т.к. языки высокого уровня почти всегда переводятся компиляторами в машинный код, а компиляторы тоже должен кто-то написать. Исключения в виде интерпретируемых языков тоже не стоят в стороне — сами интерпретаторы тоже создаются с помощью компиляторов.
Осталось рассмотреть, разрядность какой именно информации нам интересна. Что вообще потребляет и генерирует ЦП в информационном смысле? Команды, данные, адреса и сигнально-управляющие коды. О последних речь не идёт — их разрядность жёстко зафиксирована в конкретной аппаратной реализации и в большинстве случаев программно не управляема. Чуть трудней с командами — в семействе архитектур RISC, например, разрядность любого обращения к памяти должна быть равна физической разрядности шины данных процессора, в т.ч. и при считывании кода (кроме некоторых послаблений в современных ARM и PowerPC). Это хорошо для ЦП — нет проблем с невыровненным доступом, все команды имеют одинаковую, либо переменную, но просто вычисляемую длину. Зато плохо для программиста — RISC это усечённый набор команд, которые ещё и занимают больше места, чем при более компактном кодировании (для того же алгоритма нужно больше команд, но и для того же числа команд надо больше байтов). Поэтому именно CISC-парадигма завоевала наибольший подход с её разнообразием и переменной длинной команд, не равной разрядности чего-либо. Разумеется, все современные ЦП внутри — настоящие RISC, но это только физически, а не архитектурно. Остались только два вида информации — данные и адреса. Их и рассмотрим.Собираем
У нас имеется три критерия видов разрядности: функциональный (обработки, хранения и обмена), реализационный (физическая и архитектурная) и типовой (данных и адресов). Итого уже 12 видов этой непонятной штуки. Предположим, что на каждую комбинацию критериев для нашего исходного ЦП мы отвечаем «16-битная» (и физическая разрядность обработки данных, и архитектурная хранения адресов, и все остальные). Теперь посмотрим, какие из этих вопросов обязательно должны давать ответ «32-битная», чтобы получившийся процессор оказался именно таким.
Начнём с архитектурной части. Должен ли ЦП хранить данные и адреса в логическом 32-битном формате, чтобы называться 32-битным? Насчёт данных, очевидно, да, а вот по поводу адресов всё не так просто. Почти все 8-битные (по данным) ЦП имеют возможность хранить 16-битные адреса в парах регистров (иначе им не видать распространённой на этих платформах 16-битной адресации), но от этого их не называют 16-битными. Может быть, если ЦП сможет хранить 32-битные данные, но всего-то 16-битные адреса, его уже можно называть 32-битным.
На аналогичные вопросы об архитектурных вычислениях над 32-битными данными и адресами, а также программно 32-битном обмене данных с программно 32-битной адресацией ответ может быть таким же — с данными надо, а с адресами не факт.
Перейдём на физическую реализацию. Должен ли ЦП хранить данные и адреса в физически 32-битном формате? Оказывается, не обязательно, т.к. для 32-битных операндов можно спарить регистры, чем успешно пользовались ещё 8-битные ЦП, начиная с i8080. А зилоговские 16-битные Z8000 могли даже счетверять регистры, получая 64-битный аргумент (только для данных). Это не так эффективно, т.к. полный объём данных, умещающийся в регистровом файле, не увеличится, но это и не требовалось. Зато всегда есть возможность обратиться и к старшей, и к младшей половине виртуального 32-битного регистра — камень в огороды архитектур IA-32 и MC68k, где можно обращаться только к младшей половине (в IA-32 — ещё и с префиксом, что замедляет выполнение).
Идём далее. Должен ли ЦП обрабатывать данные и адреса 32-битными физическими порциями? Оказывается, и это не требуется, операнды можно обрабатывать половинками в функциональных устройствах 16-битного размера. Стоит вспомнить процессор Motorola MC68000, применявшийся в первых Макинтошах, Амигах, Атари и других популярных машинах — он считался 32-битным, в нём есть 32-битные регистры, но нет ни одного 32-битного ФУ (оно появилось только в 68020). Зато есть целых три 16-битных АЛУ, два из которых умеют спариваться при выполнении 32-битной операции. У i8080 и Z80 8-битные АЛУ выполняли 16-битные операции для вычисления адреса последовательно над его байтами. Позже эта история повторилась с набором SSE и его 128-битными операндами, которые поначалу обрабатывались на 64-битных ФУ.
Наконец, обмен: нужно ли процессору физически принимать и передавать данные 32-битными порциями с 32-битной адресацией? На первый вопрос дали ответ почти все производители ЦП, выпустив чипы с половинной шириной шины: 8 бит для 16-битного i8088, 16 бит для 32-битных MC68000/010 и i80386SX/EX/CX, и даже 8 бит для 32-битного MC68008. С физической разрядностью шины адреса куда веселее. Начнём с того, что для многобайтовых шин данных (т.е. начиная с 16-битной) физическая адресация памяти может происходить по словам или по байтам. В первом случае на шину адреса всегда подаётся адрес слова, а шина данных считывает или записывает нужную его часть — от отдельного байта до слова целиком. Для обозначения разрядности доступа может применяться отдельная шина байт-маски (в архитектуре x86 такой приём начал применяться со времён i386 — по биту на каждый байт шины данных), либо комбинация управляющих сигналов с младшими битами шины адреса, которые в этом режиме не нужны (для 32-биной шины данных адрес слова нацело делится на 4, а потому младшие 2 бита шины адреса всегда равны нулю) — так было до выхода i386. Случай же адресации байтов возможен лишь при динамической подстройке ширины шины и из широко известных ЦП применялся только в MC68020/030. В результате к сегодняшнему дню используется именно адресация слов вместе с байт-маской, поэтому физическая разрядность шины адреса оказывается меньше её логической ширины на число бит, на единицу меньшее разрядности шины данных в байтах. Из чего следует, что 32-битная физическая шина адреса может быть только при 8-битной шине данных, на что ни один архитектор и инженер в здравом уме не пойдёт по очевидным соображениям.
Но это ещё не всё. Зачем нам вообще 32-битная физическая или логическая адресация? Середина-конец 80-х, на рынке только-только появились мегабитные микросхемы памяти, типичный объём памяти для ПК пока что измеряется сотнями килобайт, но чуть позже — мегабайтами. А 32-битная адресация позволит получить доступ к 4 ГБ физического ОЗУ! Да кому вообще такое может понадобиться в ближайшие лет 20 в персоналках?! Неудивительно, что первые популярные «32-битные» ЦП имели совсем не 32 бита логической ширины шины адреса: MC68000 имел 24 (23 физических + 1 для управления разрядами), а MC68008 — и вовсе 20. Intel 386SX (вышедший на 3 года позже оригинального полностью 32-битного i80386), помимо уполовинивания шины данных, сократил и шину адреса до 24 (23 физических) бит, а его встраиваемые версии 386EX/CX имели 26-битную шину. Более того, первые чипсеты, позволявшие оперировать 32-битными адресами, появились лишь в 90-х, а первые материнские платы, имевшие достаточное число слотов памяти, чтобы набрать >4 ГБ модулями максимального на тот момент размера — лишь в 2000-х. Хотя первые ЦП с 64-битной физической шиной адреса (IBM/Motorola PowerPC 620) появились аж в 1994 г.. Выводим
Итак, физически в процессоре вообще ничего не требуется делать 32-битным. Достаточно лишь архитектурно убедить программиста, что ЦП выполняет 32-битные операции одной командой. И хотя она при отсутствии полноценных внутренних ресурсов неизбежно будет декодироваться в цепочки микрокода для управления 16-битными физическими порциями информации и аппаратными блоками — это уже программиста не волнует. Так что же, достаточно переписать прошивку, переделать декодер и схему управления, и вот наш 16-битный процессор сразу стал 32-битным?
Как известно, любую хорошую идею можно довести до абсурда, и тогда она сама себя дискредитирует. Увеличение разрядности ЦП — не исключение. На этом месте архитектурщик сразу должен задаться вопросом — а зачем всё это? Увеличивать разрядность данных хорошо для ускорения работы с ними (часто требуется обрабатывать значения, не умещающиеся в 16 бит), а адресов — для получения возможности оперировать большими объёмами данных (ограничение в 64 КБ для 16-битной адресации, кое-как ослабленное сегментной моделью IA-16, сковывало программистов уже в середине 80-х). Можно, конечно, сделать страничную адресацию с программно переключаемыми банками (могли же 8-битные ЦП адресовать 1 МБ на популярных дешёвых ПК и игровых приставках), но ценой усложнения программ и замедления доступа к памяти. Аналогично — разве имеет смысл делать 32-битность для данных такой, что она почти не ускоряет производительность по сравнению с обработкой 32-битных чисел на 16-битной платформе под управлением программы, а не микрокода? Таким образом мы только упростим программирование, сэкономив на числе команд, но не получим скачок в скорости. Из чего мы приходим к выводу — увеличение разрядности должно реализовываться так, чтобы оно реально привело к качественному (больше памяти) и количественному (быстрее операции) скачку возможностей архитектуры. «Больше памяти» здесь относится именно к качественному развитию, т.к. многие алгоритмы и приложения вообще откажутся работать при недостатке ОЗУ, в то время как даже медленный процессор всё равно рано или поздно программу выполнит. Виртуальная память с дисковой подкачкой бессмысленна при менее чем 32-битной реализации.
Но означает ли всё это, что в ЦП как можно больше ресурсов, и аппаратных, и архитектурных, должны быть 32-битными, чтобы его можно было бы назвать полноценным 32-битным процессором? Совсем нет. Возьмём тот же MC68000 — у него 32-битная архитектура для данных и адресов и 32-битные регистры, но 16-битные АЛУ и внешняя шина данных и 24-битная физическая внешняя адресация. Тем не менее, недостаточная «32-битность» не мешает ему обгонять появившийся на 3 года позже «16-битный» 80286: на популярном в 1980-е бенчмарке Dhrystones MC68000 на 8 МГц набирает 2100 «попугаев», а 286 на 10 МГц — 1900 (также 16-битный i8088 на 4,77 МГц — 300).
Но всё это нам не поможет ответить на вопрос — что же такое разрядность процессора? В момент, когда мы уже было пришли к некоему заключению, на сцене появляется новый герой — тип данных. Всё вышеизложенное имело отношение лишь к целочисленным вычислениям и их аргументам. Но ведь есть ещё и вещественные. Кроме того, пока что мы оперируем скалярными величинами, но есть ещё и векторные. А ведь, по слухам, Intel намерена встроить вещественный сопроцессор прямо внутрь своего нового 80486 (напомню: на дворе у нас, условно — 80-е годы). С учётом того, что внутреннее физическое и архитектурное представление данных (с адресами FPU не работает) 80-битное — как же тогда называть «четвёрку» — «32/80-битным» процессором? Вернёмся обратно в настоящее — как называть Pentium MMX, который откусил 64 бита от каждого 80-битного скалярного вещественного регистра и назвал их целочисленным векторным регистром? А Pentum Pro/II с 256-битной шиной данных между кэшем L2 и ядром? (Ещё ранее MIPS R4000 и его варианты имели внутренний контроллёр L2 с внешней 128-битной шиной до самого кэша.) А как назвать Pentium III с его 128-битными регистрами XMM, хотя в каждом таком векторе могут пока храниться лишь 32-битные компоненты, а обрабатываться лишь парами в 64-битных ФУ, но не четвёрками? А как воспринимать готовящиеся сейчас для новых архитектур (в частности, Intel Larrabee) команды векторной адресации типа Scatter и Gather, где части векторного регистра воспринимаются как адреса, а не данные, и потому адресация тоже может считаться ххх-битной?
Современный спор о переходе с 32-битной на 64-битную платформу повторяет эту историю с дополнениями, ещё более подсаливающими и так разнообразное по вкусу блюдо. Прежде всего, если посмотреть на темпы удвоения разрядности (что бы под ней не понимали) однокристальных ЦП, то окажется, что переход от первых 4-битных к первым 32-битным произошёл всего за 8 лет — c 1971 г. (i4004) по 1979 г. (MC68000 и куда менее известный NS32016). Следующее удвоение до 64 бит потребовало 10 лет — i860 имел 32-битное целое скалярное АЛУ и 32-битные универсальные регистры со спариванием, но 64-битные FPU и целочисленное векторное ФУ, 64-битные внешние шины и, впервые, внутреннюю 128-битную шину ядро-кэш. А пока 64 бита добрались до ПК — прошло ещё лет 15, хотя 64-битный доступ к памяти (через 64-битную же шину данных, но для «32-битного» процессора) появился уже в первых Pentium в 1993 г.. А дело в том, что для целочисленных скалярных вычислений два главных типа операндов — данные и адреса — пока достаточно было иметь лишь 32-битными. Об избыточности 32-битной адресации для 80-90-х гг. уже сказано, но и жёсткая необходимость в 64-битных целочисленных вычислениях, в отличие от 32-битных, также до сих пор не возникала, да и не просматривается и сейчас. Для целых чисел диапазон от –2·10 9 до 2·10 9 или от 0 до 4·10 9 покрывает подавляющее большинство нужд, а редкие моменты 64-битности вполне удовлетворяются дедовским способом — операциями над частями операндов с переносом, что не так уж сильно медленнее и доступно с первых моментов появления 32-битных архитектур. Дополнительной пикантности добавляет тот факт, что 64-битная арифметика над целыми числами в архитектуре x86 появились ещё до AMD64 и EM64T, причём сразу векторная — начиная с набора SSE2 (2001 г.) существуют команды paddq и psubq для сложения и вычитания целых 64-битных компонентов, а команды 32-битного перемножения для любой архитектуры дают 64-битное число (команды деления, соответственно — его принимают; аналогично для многих 16-битных платформ, включая IA-16).
Разрядности некоторых процессоров для ПК
Критерий | Разрядность | |||||||||||
Функциональный | обработки | хранения | обмена | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Реализационный | физич. | архитектурн. | физич. | архитектурн. | физич. | архитектурн. | ||||||
Типовой (D: данных; A: адресов) | D | A | D | A | D | A | D | A | D | A | D | A |
i8080/85, Z80 | 8 | 8 | 8-16 | 16 | 8 | 8 | 8-16 | 16 | 8 | 16 | 8-16 | 16 |
Z8000 | 16 | 16 | 8-64 | 16 | 16 | 16 | 8-64 | 16 | 8-16 | 23 | 8-64 | 23 |
MC68000/010 (MC68008) | 16 | 16 | 8-32 | 32 | 32 | 32 | 8-32 | 32 | 8-16 (8) | 24 (20) | 8-32 | 32 |
MC68020/030 | 32 | 32 | 8-32 | 32 | 32 | 32 | 8-32 | 32 | 8-32 | 32 | 8-32 | 32 |
i8086/186* (i8088/188*) | 16 | 16 | 8-16 | 16 | 16 | 16 | 8-16 | 16 | 8-16 (8) | 20 | 8-16 | 20 |
i80286 | 16 | 16 | 8-16 | 16 | 16 | 16 | 8-16 | 16 | 8-16 | 24 | 8-16 | 24 |
i80386DX | 32 | 32 | 8-32 | 32 | 32 | 32 | 8-32 | 32 | 8-32 | 32 | 8-32 | 32 |
i80386SX (EX/CX) | 32 | 32 | 8-32 | 32 | 32 | 32 | 8-32 | 32 | 8-16 | 24 (26) | 8-32 | 32 |
i860 | 32/64|64 | 32 | 8-64/64|64 | 32 | 32/64/32 | 32 | 8-64/64/64 | 32 | 64 | 64 | 8-64 | 64 |
i80486 | 32/80 | 32 | 8-32/80 | 32 | 32/80 | 32 | 8-32/80 | 32 | 32 | 32 | 8-80 | 32 |
Pentium, K5 (Pentium Pro) | 32/80 | 32 | 8-32/80 | 32 | 32/80 | 32 | 8-32/80 | 32 | 64 | 32 (36) | 8-80 | 32 (51) |
Pentium MMX (Pentium II) | 32/80|64 | 32 | 8-32/80|64 | 32 | 32/80|64 | 32 | 8-32/80|64 | 32 | 64 | 32 (36) | 8-80 | 32 (51) |
K6 (K6-2) | 32/80| 64(/64) | 32 | 8-32/80| 64(/64) | 32 | 32/80| 64(/64) | 32 | 8-32/80| 64(/64) | 32 | 64 | 32 | 8-80 | 32 |
Athlon | 32/80| 64/64 | 32 | 8-32/80| 64/64 | 32 | 32/80| 64/64 | 32 | 8-32/80| 64/64 | 32 | 64 | 36 | 8-80 | 51 |
Athlon XP | 32/80| 64/64 | 32 | 8-32/80| 64/32-128 | 32 | 32/80|64/128 | 32 | 8-32/80| 64/128 | 32 | 64 | 36 | 8-128 | 51 |
Pentium III (Pentium 4/M, Core) | 32/80| 64/64 | 32 | 8-32/80| 64(+128)/32-128 | 32 | 32/80| 64(+128)/128 | 32 | 8-32/80| 64(+128)/128 | 32 | 64 | 36 | 8-128 | 51 |
Pentium 4 D/EE (Athlon 64*) | 64/80| 64/64 | 64 | 8-64/80|64 + 128/32-128 | 64 | 64/80|64 + 128/128 | 64 | 8-64/80|64 + 128/128 | 64 | 64(+16) | 40 | 8-128 | 52 |
Atom | 32-64/80| 64/64-128 | 64 | 8-64/80|64 + 128/32-128 | 64 | 64/80|64 + 128/128 | 64 | 8-64/80|64 + 128/128 | 64 | 64 | 36 | 8-128 | 51 |
Core 2 (i7*) | 64/80| 128/128 | 64 | 8-64/80|64 + 128/32-128 | 64 | 64/80|64 + 128/128 | 64 | 8-64/80|64 + 128/128 | 64 | 64 (192+16) | 40 | 8-128 | 52 |
Athlon II*, Phenom (II)* | 64/80| 128/128 | 64 | 8-64/80|64 + 128/32-128 | 64 | 64/80|64 + 128/128 | 64 | 8-64/80|64 + 128/128 | 64 | 128+16 | 40 (48) | 8-128 | 52 |
* — Мультиплексированная шина данных и адреса (для ЦП с интегрированным контроллёром памяти — только межпроцессорная)
«A/B|C/D» — для данных указана разрядность скалярного целого / вещественного | векторного целого / вещественного доменов
«X+Y» — имеет домены этого вида двух разрядностей
«X-Y» — в зависимости от команды или ФУ принимает все промежуточные значения с целой степенью двойки
Если вы дочитали до этого места, то объявленная цель статьи, скорее всего, уже достигнута, а Идеальное Конечное Точное Определение разрядности так и не найдено. Может быть, его вообще нет, и это даже хорошо. В конце концов, если компьютер это главный инструмент для работы с информацией, то каждая IT-технология это метод улучшения работы компьютера. Разрядность сама по себе ничего не даст в отрыве от всего остального арсенала высоких инфотехнологий. PDA/коммуникаторы, мобильники, нетбуки, медиа-плееры и прочая карманная электроника, а также гигантское количество встроенных контроллёров и бортовых компьютеров отлично работают, увеличивая свою популярность и без всякой 64-битности. Так зачем тогда переходят на большие разрядности? Зачем, например, никому пока не нужная 64-битность в Intel Atom для нетбуков, где 8 ГБ памяти мало того, что никому не нужны, так ещё и за пару часов досуха выжмут батарею, а научные или экономические вычисления (где могут потребоваться 64 целых бита) никто запускать не будет? Один из возможных ответов: «потому что мы можем». Дополнительная пара миллионов транзисторов для удвоения ещё оставшихся 32-битными блоков утонет каплей в море вентилей, уже потраченных на всё остальное в этом же чипе. Галопирующий прогресс микроэлектроники как главного паровоза IT сделал интегральный транзистор таким дешёвым, что теперь лакомый для любого маркетолога шильдик «64 bit» обойдётся потребителю в десяток лишних центов, обеспечивая совсем не бутафорское, а вполне реальное ускорение на 10-50 % в 1-5 % приложений. И если мелкая овчинка стоит почти бесплатной выделки, почему нет?