Это из вопроса об интервью - http://www.glassdoor.com/Interview/Yelp-Software-Engineering-Intern-Interview-Questions-EI_IE43314.0,4_KO5,32_IP4.htm

«Существует не более одного способа ответа, например, количество байтов в процессах 64-битного процессора и сигнал уничтожения для Linux»

Сигнал убийства для Linux был довольно легко найти. Я только что сделал быстрый поиск в Google и смог найти эту статью. http://www.maketecheasier.com/kill-command-in-linux/

Я запутался в части «количество байтов в процессах 64-битного процессора». В одной статье (http://blog.boson.com/bid/87673/A-Few-Bytes-About-32-bit-vs-64-bit-Processing) говорится, что «фактически 64-разрядный процессор может теоретически обрабатывать до 18 446 744 073 709 551 616 байт или 16 эксабайт (EB) за один раз. " В другой статье (http://mindprod.com/bgloss/sixtyfourbit.html), которая имеет более интуитивный смысл, говорится, что «в 64-битных процессорах (центральных процессорах), таких как Athlon, Itanium и Opteron, программы обрабатывают информацию 64 биты (или 8 байтов) за один раз ". Это имело смысл для меня, потому что 64 бита это 8 байт (8 бит на байт)

Значит ли время в обеих статьях значит в нано секунде? мили второй? Какой ответ из этих двух статей будет ожидать интервьюер? Будет ли он ожидать ответа 8 байт за раз и что-то намного большее?

5 ответов5

4

По сути, ваша первая ссылка была неправильной, а вторая - правильной, но они не дали полной картины.

Вот (я надеюсь) более полная и точная картина основ CPU/Memory:

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

1) 64-битные (8 байт) данные могут "течь" через шину в любой момент времени. Эти данные "проталкиваются" через шину каждый раз, когда тактовые частоты процессора тикают. Если вам интересно, "часы" процессора - это обычно внутренний кристалл, который вибрирует ("колеблется"), когда он электрически заряжен. Колеблющийся кристалл производит электронную "волну", которая затем преобразуется в жесткую "тумблерную" форму волны. Это сердцебиение процессора, и каждый удар "проталкивает" данные через шину (проще говоря). Например, 64-битный процессор с тактовой частотой 1 ГГц может "выдавать" данные 1 миллиард раз в секунду, а каждый раз - 64 бит. Поэтому его вычислительная мощность или "полоса пропускания" составляет 64 млрд. Бит / с или "полоса пропускания" 8 Гбит / с.

2) Поскольку имеется 64 двоичных провода, существует 2 ^ 64 возможных значений, которые может когда-либо получить шина. Поскольку эти значения могут относиться к "адресам" памяти, 64-битный процессор может указывать до 2 ^ 64 областей памяти, каждая длиной 1 байт. Это ОГРОМНО ... 18,5 миллиардов ГБ оперативной памяти .... Это 2 ГБ оперативной памяти на каждого человека на земле ... на одном компьютере. Но для лучшего примера рассмотрим 32-битный процессор, который может ссылаться на 2 ^ 32 адреса памяти (ОЗУ). Опять же, каждый "адрес" ОЗУ обычно составляет 1 байт (8 бит), так что это 2 ^ 32 байта (4 ГБ) ОЗУ. Вот почему любой компьютер, имеющий 32-битный процессор или 32-битную Windows, ограничен использованием 4 ГБ ОЗУ. Даже если установлено больше ОЗУ, система может использовать только 4 ГБ. Кроме того, 64-разрядный процессор, работающий с 32-разрядными окнами, по-прежнему ограничен 4 ГБ ОЗУ, поскольку программное обеспечение Windows не предназначено для подключения к более чем 4 ГБ (2 ^ 32) "адресам" памяти.

ПРИМЕЧАНИЕ. Имейте в виду, что по мере добавления технологий, таких как биты с 3 состояниями, многоядерные процессоры, оптоволокно и т.д., Эти фундаментальные вычисления становятся более сложными.

ИСТОЧНИК: Бакалавр наук в области вычислительной техники и электротехники из Purdue (IUPUI) в 2010 году и работал в области данных / ИТ / анализа в течение последних 8 лет. Я также являюсь разработчиком / энтузиастом игровых ПК и наркоманом AnadTech / TomsHardawre :)

С уважением, - Джонатан Мэтьюз

2

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

Предполагая, что значение регистра указывает на адрес байта в памяти, он, таким образом, может "точно" определить любой байт в памяти размером 2 ^ 64 байта. Таким образом, в этом смысле он может "достигать" всех этих байтов в теоретических 16 EB памяти RAM в любое время. Но это не значит, что у процессора есть 16 EB встроенного плунжера, как звучит эта статья на boson.com.

В то время, вероятно, подразумевается не определенный промежуток времени, а один ход обработки. Я бы сказал, что ответ действительно 8 байтов. Если бы временной промежуток был важен для этого вопроса, это было бы более сложным вычислением, так как потребовалась бы тактовая частота ЦП, а затем также нужно было бы определить, включает ли счет повторные попытки исправления ошибок для тех же данных, циклы, используемые для основанного на ЦП графика / аудио и многое другое.

0

Я нахожу формулировку вопроса странной, но я попытаюсь объяснить несколько вещей. 32-битные и 64-битные имеют мало общего с вычислительной мощностью. Мощность обработки измеряется в вычислениях в секунду или целочисленных операциях или операциях с плавающей запятой (Flops).
Больше битов (16 против 32 против 64) фактически означает, что данные могут быть обработаны большими кусками, что также означает более точную обработку. Значение с плавающей запятой может иметь гораздо большую точность (большее число после целой части).
Наличие большего количества битов также позволяет системе указывать или адресовать большее количество мест в физической памяти.
32-разрядные системы были обновлены с 16-разрядных, поскольку они могли адресовать до 4 ГБ памяти. (2 ^ 32 = более 4 миллиардов).
В настоящее время приложения требуют более 4 ГБ памяти, 64-битные теперь широко распространены. Адресное значение становится 2 ^ 64 (16 экзабайт). Итак, самое близкое, что вы могли бы сказать, это то, что 64-битный процессор может адресовать до 2 ^ 64-1 адресов памяти. На практике это меньше, так как ОЗУ практически не соответствует этому значению.
Нано-секунды не имеют никакого отношения к проблеме. Таким образом, чтобы подвести итог ответа, ситуация в ваших интересах, так как вопрос не достаточно ясен, чтобы дать точный ответ.
Задавать вопрос «Сколько байт процессов 64-битного процессора» в корне неверно, поскольку нет ни времени, ни другого типа ссылки. "Сколько байт в секунду" было бы нормальным решением, но это опять-таки больше связано со скоростью обработки, которая в большей степени зависит от архитектуры и скорости (ГГц), чем от 32/64-битных.

-1

Существует способ подсчитать, сколько данных процессор может обработать за секунду, это просто, однако это не самый точный, но довольно точный процесс. Что вы делаете, это берете частоту обновления (ГГц) и умножаете ее на общий кэш процессора. Например: 2,16 * 0,00225 = 0,00486 или 4,86 МБ в секунду ^ ^ ГГц в секунду X общий кэш процессора

-1

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

Купить молоко ---- тактовый процессор 1 Купить пиво ---- тактовый процессор 2

В 64-битном это купить молоко и пиво ... ЦП 1

Но это не означает, что 64-битные процессоры работают вдвое быстрее. Также они не быстрее в запуске 32-битного кода ....

Вот почему 32-битные процессоры не могут выполнять 64-битный код или операционные системы ..... но возможно обратное. Мои два цента.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .