Почему нет 256-битных или 512-битных микропроцессоров?

В 8-разрядном микропроцессоре его шина данных состоит из 8 строк данных. В 16-разрядном микропроцессоре его шина данных состоит из 16 строк данных и т. Д.

Почему нет ни 256-битного микропроцессора, ни 512-битного микропроцессора? Почему бы им просто не увеличить количество строк данных и создать 256-битный микропроцессор или 512-битный микропроцессор?

В чем препятствие, препятствующее созданию 256-разрядного микропроцессора или 512-разрядного микропроцессора?

91 голос | спросил Michael harris 4 +04002012-10-04T17:02:23+04:00312012bEurope/MoscowThu, 04 Oct 2012 17:02:23 +0400 2012, 17:02:23

10 ответов


105

Подумайте об этом. Что именно вы представляете «256-битный» процессор? Что делает бит-версию процессора в первую очередь?

Я думаю, что если дальнейших квалификаций не будет сделано, бит-версия процессора относится к его ширине ALU. Это ширина двоичного числа, которое может обрабатываться изначально за одну операцию. Таким образом, «32-битный» процессор может работать непосредственно на значениях до 32 бит в одной инструкции. Таким образом, ваш 256-битный процессор будет содержать очень большой ALU, способный добавлять, вычитать, ORing, ANDing и т. Д., 256-битные номера в отдельных операциях. Зачем вам это нужно? Какая проблема заключается в том, что большой и дорогой ALU стоит и платит, даже в тех случаях, когда процессор только считает 100 итераций цикла и т. П.?

Суть в том, что вы должны заплатить за широкий ALU, если вы используете его много или только небольшую часть своих возможностей. Чтобы оправдать 256-битный ALU, вам нужно найти достаточно важную проблему, которая может действительно выиграть от манипулирования 256-битными словами в отдельных инструкциях. Хотя вы, вероятно, можете придумать несколько примеров, недостаточно таких проблем, которые заставляют производителей чувствовать, что они когда-либо получат прибыль от значительных инвестиций, необходимых для производства такого чипа. Если у него есть нишевые, но важные (хорошо финансируемые) проблемы, которые могут действительно выиграть от широкого ALU, тогда мы увидим очень дорогостоящие высоконаправленные процессоры для этого приложения. Однако их цена будет препятствовать широкому использованию за пределами узкого приложения, для которого оно предназначено. Например, если 256 бит сделают определенные криптографические приложения возможными для военных, вероятно, появятся специализированные 256-битные процессоры стоимостью от 100 до 1000 долларов. Вы бы не поставили один из них в тостер, источник питания или даже автомобиль.

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

Другое дело, что вы можете выполнять любую арифметику ширины на любом процессоре ширины. Вы можете добавить 32-битное слово памяти в другое 32-битное слово памяти на PIC 18 в 8 инструкциях, тогда как вы можете сделать это на той же архитектуре, масштабированной до 32 бит, всего за 2 инструкции. Дело в том, что узкий ALU не мешает вам выполнять широкие вычисления, только для того, чтобы широкие вычисления занимали больше времени. Поэтому речь идет о скорости, а не о возможностях. Если вы посмотрите на спектр приложений, которым нужно использовать определенные номера ширины, вы увидите, что очень мало требуется 256-битных слов. Затраты на ускорение только тех немногих приложений с аппаратным обеспечением, которые не помогут другим просто не стоит и не делают хороших инвестиций для разработки продукта.

ответил Olin Lathrop 4 +04002012-10-04T17:39:44+04:00312012bEurope/MoscowThu, 04 Oct 2012 17:39:44 +0400 2012, 17:39:44
34

Ну, я не знаю о 256 или 512 бит, но я слышал о 1024-битном процессоре (я не могу найти его прямо сейчас). Слово VLIW , для Very Long Command Word . Так что это шина команд, а не ширина шины данных. Преимущества заключаются в том, что вы можете реализовать Параллельность уровня обучения (ILP) в больших масштабах.

Моя первая встреча с ILP должна была быть 20 лет назад с Motorola DSP, у которой были инструкции по выполнению MAC (Multiply и ACcumulate) при перемещении данных в память и из памяти, чтобы вы могли выполнять новый MAC на следующей инструкции , не теряя времени между двумя MAC-адресами для перемещения данных.
Сегодня есть также универсальные контроллеры, предлагающие этот вариант. VLIW применяет это в гораздо более высоком масштабе.

Поскольку ширина вашей шины данных не будет такой широкой, вы можете иметь несколько инструкций плюс константы в инструкции. Причина, по которой шина данных не соответствует тенденции, заключается в том, что она довольно бесполезна; 64-битный регистр данных может представлять собой десятизначное десятичное число. Когда в последний раз вам понадобилось 20 цифр точности? Для большинства приложений 10 \ $ ^ {20} \ $ = \ $ \ infty \ $.

Дополнительная литература
Архитектура VLIW

ответил stevenvh 4 +04002012-10-04T17:23:33+04:00312012bEurope/MoscowThu, 04 Oct 2012 17:23:33 +0400 2012, 17:23:33
25

«Bitness» микропроцессора обычно определяется с точки зрения размера регистров общего назначения. Размер определяет, насколько большие числа процессор может обрабатывать изначально и сколько памяти он может получить. Для почти любого алгоритма достаточно 64-битных чисел, а количество адресной памяти (16 миллионов терабайт) достаточно в течение некоторого времени. Просто нет никакого преимущества для увеличения размера регистров общего назначения. С другой стороны, область арифметических логических блоков (ALU) используется для выполнения операций с шкалами регистров с квадратом количества бит. 256-битный ALU будет в 16 раз больше и значительно медленнее.

С другой стороны, есть смысл в расширении процессора, чтобы сделать возможным одновременное выполнение нескольких небольших операций. На самом деле процессоры Intel Sandy Bridge и Ivy Bridge делают именно это, у них есть 256-битные SIMD-регистры и могут выполнять две арифметические операции и одну операцию памяти за цикл на них. Таким образом, можно было бы оправдать называть их 256-битными или даже 768-битными процессорами, если бы кто-то был подлый маркетолог, желающий сгибать регулярно используемые термины.

ответил Ants Aasma 4 +04002012-10-04T17:48:57+04:00312012bEurope/MoscowThu, 04 Oct 2012 17:48:57 +0400 2012, 17:48:57
14

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

Например, Motorola 68000 - это 32-битный процессор. Он имеет 32-битные регистры данных и 32-разрядные регистры адресов. Теперь первая версия этого архитектурного семейства выставляет только 24 бита адресных строк. Кроме того, существуют варианты, которые имеют только 8-битную шину данных (поэтому 32-разрядные операции памяти выполняются процессором в виде циклов множественного доступа).

Теперь о вопросе, почему бы не перейти к 256 и 512. Процессоры «изначально» манипулируют несколькими типами данных, поэтому полезно посмотреть, что означает 256 или 512 бит для каждого из этих типов данных по отдельности. У нас есть целые числа, указатели и типы с плавающей запятой.

  1. Целые числа: программы получают много пробега из 32 и 64 бит целых чисел. Если 64 бита являются ограничением, исправление для этого состоит в том, чтобы реализовать реализованные программным обеспечением целые числа bignum. Языки высокого уровня могут реализовать целые типы, чтобы операции плавно переключались между «fixnums» и «bignums». Конечно, вы принимаете удар производительности с помощью bignums, но вы должны учитывать это в общей картине: сколько операций в программе - операции bignum. 256 или 512 бит номера не устраняют необходимость в бонусах, они только увеличивают запас, прежде чем мы должны переключиться на бонусы. Если вы хотите манипулировать 2048-разрядными открытыми ключами, 512-битные целые числа не будут выполняться (но бигнам с 512-битными разрядами может быть быстрым).

  2. Указатели: более широкие указатели допускают две вещи: более широкие адресные пространства и дополнительные метаданные, хранящиеся в указателе. В наши дни адресные пространства являются виртуальными, и поэтому они могут расти, даже если память не растет. Было высказано предположение, что если у вас есть 128-битные указатели, адресное пространство настолько велико, что вы можете поместить все процессы пользовательского пространства в операционную систему, а ядро ​​- в случайные места в одном незащищенном пространстве, и они маловероятны сталкиваться. Вместо того, чтобы просто создавать большее адресное пространство, более точные указатели могут использоваться для переноса битов, которые не являются битами адреса, такими как информация об объекте референта (тип, размер и другая информация) или информация, связанная с безопасностью. Вероятно, существует определенная «оптимальная жирность» для такого рода вещей, и, если бы я мог догадаться, я бы все же ограничил ее на 128 бит. Кажется, нет смысла переходить к 256-битным указателям, не говоря уже о 512. У худших указателей есть недостаток: они раздувают все структуры данных, содержащие указатели. И, как правило, вы хотите, чтобы указатели имели одинаковый размер, в противном случае вам нужны осложнения в архитектуре набора команд (например, сегменты памяти), в результате чего у вас есть полные указатели (дескриптор сегмента и смещение) или только локальные указатели (смещение в некотором понятном сегменте) .

  3. Типы с плавающей точкой: больше битов в числах с плавающей запятой означает большую точность. Я бы сказал, что типы с плавающей точкой лучше всего выигрывают от более широкого представления. Плавающий тип 256 или 512 бит улучшит стабильность числового кода и качество научных вычислений, требующих много итераций, и накапливает ошибки на этом пути. Точность в плавающей точке не такая же, как точность в целых числах: мы не можем разделить тип с плавающей точкой на диапазоны, такие как fixnums и bignums. Более высокая точность в плавающей точке влияет на качество всех неточных чисел, независимо от того, близки они к нулю или имеют большую величину. Более биты в показателях с плавающей запятой также могут значительно расширить диапазон чисел с плавающей запятой и намного быстрее, чем добавление битов в целое число bignum.

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

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

Одна очень полезная функция, которая была бы приятной, чтобы увидеть emerge в представлениях с плавающей точкой, будет несколько запасных бит для тега типа. Реализация типов с плавающей запятой в динамических языках высокого уровня (в которых объекты имеют тип, но места хранения содержат значения любого типа) - это борьба, поскольку в то время как запасные биты можно найти в указателях и целых объектах, чтобы поместить части идентифицирующий тег типа, это трудно сделать с числами с плавающей запятой. Так что часто заканчивается то, что числа с плавающей запятой получают выделение кучи. Некоторые схемы крадут биты из мантиссы, поэтому типы с плавающей запятой на этом языке теряют точность по сравнению с поплавками на других языках на одной машине.

ответил Kaz 4 +04002012-10-04T22:12:05+04:00312012bEurope/MoscowThu, 04 Oct 2012 22:12:05 +0400 2012, 22:12:05
9

Фактически, такие процессоры существуют и являются общими, в зависимости от того, как вы определяете битность. Вы почти наверняка используете его сейчас. Как пояснил Олин, для 256-битных номеров не очень много, но что насчет 4-х 32-разрядных номеров? Что делать, если ALU может одновременно добавить 4 пары 32-битных чисел. Такие ALU (которые я знаю) были впервые реализованы в векторных суперкомпьютерах в 1970-х годах. В первый раз, когда я когда-либо владел таким компьютером, у меня был один из Intel Pentium с MMX.

Intel MMX guy

Помните этих ребят?

У чипов MMX был набор инструкций Single Instruction - Multiple Data ( SIMD ), позволяющий вы должны добавить 1Ã-64-битную пару, пары 2Ã-32-бит, пары 4Ã-16-бит или пары 8Ã-8 бит.

Но это ничего. Современная графическая карта имеет графический процессор (который использовался для установки графической обработки, но теперь стоит для общей обработки). Это часто широкие реализации SIMD, способные к ветвям, нагрузкам и хранилищам на 128 или 256 бит за раз. Микроархитектура прототипа Intel Larrabee включает в себя более двух 512-битных SIMD-регистров на каждом из своих ядер.

GPU SIMD

Обратите внимание, что SIMD не следует путать с многоядерным процессором. Каждое ядро ​​процессора будет иметь свой собственный ALU, способный скомбинировать набор целых чисел.

ответил Rocketmagnet 4 +04002012-10-04T19:47:10+04:00312012bEurope/MoscowThu, 04 Oct 2012 19:47:10 +0400 2012, 19:47:10
8

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

Исторически процессоры используют минимальное количество бит, которое имеет практический смысл по назначению. Благодаря достижениям в области технологий стали доступны более широкие автобусы и ALU, поэтому увеличение размера автобуса для более широкого применения:

  • 4 бит: достаточно для цифры, следовательно, практические для (BCD-стиле) калькуляторы, кассовые аппараты и т. д. (что является довольно ограниченной областью)
  • 8 бит: достаточно для символа (ASCII), практичного для систем обработки текста (это ОЧЕНЬ большая область), а также для низкокачественного звука
  • 16 бит: когда 16-биттеры были популярны, адреса памяти 2 ^ 16 были разумной (по крайней мере, гораздо более разумной, чем 2 ^ 8 или 2 ^ 32). 16 бит дает вполне приемлемое качество звука, и большинство аналого-цифровых преобразователей дают менее 16 бит результата, поэтому вычисление с такими значениями в 16 бит имеет смысл
  • 32 бит: 32 бита соответствуют точности большинства (но не всех) измеряемых человеком величин, и если вы не имеете дело с большими базами данных, адреса 2 ^ 32 были бы адекватными для большинства практических целей.
  • 64 бит: наличие> 2 ^ 32 байта памяти теперь практичны.
  • 128 бит: на данный момент небольшое преимущество над 32, за исключением криптографии. Когда мы ожидаем более 2 ^ 64 байтов на жестком диске? вероятно, не скоро.
ответил pjc50 4 +04002012-10-04T17:29:39+04:00312012bEurope/MoscowThu, 04 Oct 2012 17:29:39 +0400 2012, 17:29:39
3

Потому что нам это еще не нужно.

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

ответил Axel 5 +04002012-10-05T09:53:42+04:00312012bEurope/MoscowFri, 05 Oct 2012 09:53:42 +0400 2012, 09:53:42
3

«Почему бы им просто не увеличить количество строк данных и создать 256-битный«

Все процессоры Intel, которые подходят к Socket LGA-2011, фактически имеют 256 выводов данных, подключающихся к 256 линиям данных на материнской плате, которые приводят к DRAM. Я был бы немного удивлен, если бы самый последний ноутбук или настольный компьютер, на котором вы использовали , не имели не менее 256 строк данных. Могу ли я спросить, откуда у вас эта ошибочная идея, что они «не ... просто увеличивают количество строк данных»?

LGA -2011 Socket datasheet , раздел 6.1, указывает, что эти ЦП имеют 256 выводов данных и 76 адресных контактов (адрес банка + адрес памяти).

ответил davidcary 22 SatEurope/Moscow2012-12-22T11:52:23+04:00Europe/Moscow12bEurope/MoscowSat, 22 Dec 2012 11:52:23 +0400 2012, 11:52:23
-1

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

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

ответил Paulo 5 +04002012-10-05T07:59:47+04:00312012bEurope/MoscowFri, 05 Oct 2012 07:59:47 +0400 2012, 07:59:47
-4

Компьютерная система имеет в своем значении вычислительную машину, которая требует некоторых входов и дает некоторые результаты. Мы должны удовлетворить компьютер в этих строках, поэтому разработчикам приходилось иметь бенчмарк, имея 3 автобуса, а именно адресную шину, шину данных и управляющую шину. 1) Адресная шина извлекает /выбирает конкретный адрес в памяти для операций чтения /записи. 2) Шина данных затем извлекает данные. Присутствует эти данные в /из процессора и памяти для целей обработки /хранения. 3) Контрольная шина Создает протокол управления интерфейсом и просит Систему уважать его.

Они необходимы для выполнения некоторых полезных вычислений для пользователя /сервера /клиента. В целом производительность (скорость выполнения задачи, меньше глюков и т. Д.) Зависит от очистки буферов в системе. т. е. если ЦП способен обрабатывать с гораздо более высокой скоростью, чем скорость передачи с жесткого диска, то горлышко бутылки происходит на жестком диске. Точно так же мы должны иметь правильную скорость обработки для конкретных скоростей данных и ширины кода.

Из-за старта, из-за различных причин, таких как сложность H /W, стоимость, требование, эффективные алгоритмы и основная причина, по которой Market Scope являются основными препятствиями для производства Шины данных High Data, как упоминалось в Host Host вопросов, 256 бит или 512 бит. Это возможно! Но этого требования пока нет, рыночная область пока не видна с потребностями сегодня и отсутствием комплиментарной поддержки программного обеспечения.

256-битный процессор означает ширину шины данных, которую может обрабатывать конкретный процессор, или ALU может обрабатывать в одном исполнении. Мы начали формировать 4 бита, затем 8,16,32 и в настоящее время 64 и даже 128 бит, которые являются настоящими продуктами рынка.

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

ответил Sri Krishna 5 +04002012-10-05T10:44:38+04:00312012bEurope/MoscowFri, 05 Oct 2012 10:44:38 +0400 2012, 10:44:38

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132