Запишите, какие инструкции вы бы включили в инструкции процессора, который должен выполнять вычисления

Обновлено: 04.07.2024

Производительность вашего ЦП — «мозга» вашего ПК — оказывает большое влияние на скорость загрузки программ и их бесперебойную работу. Однако есть несколько различных способов измерения производительности процессора. Тактовая частота (также «тактовая частота» или «частота») является одной из самых важных.

Если вам интересно, как проверить тактовую частоту, откройте меню «Пуск» (или нажмите клавишу Windows*) и введите «Информация о системе». Название модели вашего ЦП и тактовая частота будут указаны в разделе «Процессор».

Что такое тактовая частота?

В целом более высокая тактовая частота означает более быстрый процессор. Однако в игру вступают многие другие факторы.

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

С технической точки зрения «цикл» — это импульс, синхронизированный внутренним генератором, но для наших целей это базовая единица, которая помогает понять скорость процессора. Во время каждого цикла миллиарды транзисторов внутри процессора открываются и закрываются.

Частота – это большее количество операций за заданный промежуток времени, как указано выше.

ЦП с тактовой частотой 3,2 ГГц выполняет 3,2 миллиарда циклов в секунду. (Скорость старых ЦП измерялась в мегагерцах или миллионах циклов в секунду.)

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

Например, ЦП с более высокой тактовой частотой пятилетней давности может уступать по производительности новому ЦП с более низкой тактовой частотой, поскольку новая архитектура более эффективно обрабатывает инструкции. Процессор Intel® серии X может превзойти процессор серии K с более высокой тактовой частотой, поскольку он распределяет задачи между большим количеством ядер и имеет больший кэш-память ЦП. Но в ЦП того же поколения процессор с более высокой тактовой частотой обычно превосходит процессор с более низкой тактовой частотой во многих приложениях. Вот почему важно сравнивать процессоры одной марки и поколения.

Как тактовая частота влияет на игры?

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

Влияние тактовой частоты на конкретную игру зависит от игрового движка и инструментов, используемых для его создания. Сайты сравнительного анализа, такие как Tom’s Hardware, обнаружили, что некоторые игровые движки, такие как Dunia для Far Cry: Primal, выигрывают больше от высокой однопоточной производительности, чем от многопоточной. 2 С другой стороны, многие новые игры ААА, особенно в многопоточных движках, таких как Unreal Engine 4, могут выиграть как от дополнительных ядер, так и от увеличения тактовой частоты. 3

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

Что означает турбочастота?

В спецификациях ЦП Intel указаны как максимальная частота в режиме Turbo, так и базовая частота процессора. Базовая частота процессора относится к обычной рабочей точке ЦП, а максимальная частота в режиме Turbo — к максимальной скорости, которую процессор может достичь с помощью технологии Intel® Turbo Boost.

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

Введение в процессор

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

В этой статье я расскажу о центральном процессоре (ЦП), включая его компоненты и функциональные возможности. Многие темы относятся к первой статье, поэтому обязательно прочитайте ее, если вы еще этого не сделали.

Центральный процессор (ЦП)

ЦП современных компьютеров — это воплощение «мельницы» в разностной машине Бэббиджа. Термин центральный процессор возник еще в далекие компьютерные времена, когда в одном массивном корпусе содержалась схема, необходимая для интерпретации программных инструкций машинного уровня и выполнения операций с предоставленными данными. Центральный процессор также завершил всю обработку всех подключенных периферийных устройств. Периферийные устройства включали принтеры, устройства чтения карт и ранние устройства хранения, такие как барабаны и дисководы. Современные периферийные устройства сами обладают значительной вычислительной мощностью и разгружают некоторые задачи обработки с ЦП. Это освобождает ЦП от задач ввода-вывода, так что его мощность применяется к основной задаче под рукой.

Ранние компьютеры имели только один ЦП и могли выполнять только одну задачу за раз.

Сегодня мы сохраняем термин ЦП, но теперь он относится к процессорному пакету на типичной материнской плате. На рис. 1 показан стандартный пакет процессоров Intel.

Пакет процессора Intel Core i5

Рис. 1. Процессор Intel Core i5 (Джуд МакКрени, Wikimedia Commons, CC BY-SA 4.0).

Здесь действительно не на что смотреть, кроме самого пакета процессора. Пакет процессора представляет собой микросхему, содержащую процессор(ы), запечатанную внутри металлического контейнера и установленную на небольшой печатной плате (ПК). Пакет просто вставляется в гнездо ЦП на материнской плате и фиксируется с помощью фиксирующего рычага. Процессорный кулер крепится к корпусу процессора. Существует несколько различных физических разъемов с определенным количеством контактов, поэтому, если вы собираете свои собственные компьютеры, очень важно подобрать правильный корпус, подходящий для разъема материнской платы.

Как работает процессор

Давайте рассмотрим ЦП более подробно. На рис. 2 представлена ​​концептуальная схема гипотетического ЦП, позволяющая упростить визуализацию компонентов. ОЗУ и системные часы заштрихованы, поскольку они не являются частью ЦП и показаны только для ясности. Кроме того, никакие связи между тактовым генератором ЦП и блоком управления и компонентами ЦП не используются. Достаточно сказать, что сигналы от тактового генератора и блока управления являются неотъемлемой частью любого другого компонента.

Упрощенная концептуальная схема типичного процессора

Рисунок 2. Упрощенная концептуальная схема типичного процессора.

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

Арифметико-логическое устройство

Арифметико-логическое устройство (АЛУ) выполняет арифметические и логические функции, за которые отвечает компьютер. A и B регистры содержат входные данные, а накопитель получает результат операции. Регистр инструкций содержит инструкцию, которую должен выполнить АЛУ.

Например, при добавлении двух чисел одно число помещается в регистр A, а другое — в регистр B. АЛУ выполняет сложение и помещает результат в аккумулятор. Если операция логическая, сравниваемые данные помещаются в регистры ввода. Результат сравнения, 1 или 0, помещается в аккумулятор. Независимо от того, является ли это логической или арифметической операцией, содержимое накопителя затем помещается в ячейку кэша, зарезервированную программой для результата.

Существует еще один тип операций, выполняемых ALU. Результатом является адрес в памяти, который используется для вычисления нового местоположения в памяти, чтобы начать загрузку инструкций. Результат помещается в регистр указателя команд.

Регистр инструкций и указатель

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

После загрузки инструкции в регистр инструкций указатель регистра инструкций увеличивается на один адрес инструкции. Увеличение позволяет ему быть готовым к перемещению следующей инструкции в регистр инструкций.

Кэш

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

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

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

Наш простой ЦП имеет три уровня кэша. Уровни 2 и 3 предназначены для прогнозирования того, какие данные и программные инструкции потребуются в следующий раз, для перемещения этих данных из ОЗУ и перемещения их как можно ближе к ЦП, чтобы они были готовы, когда это необходимо. Эти размеры кэша обычно варьируются от 1 МБ до 32 МБ в зависимости от скорости и предполагаемого использования процессора.

Кэш уровня 1 расположен ближе всего к центральному процессору. В нашем процессоре есть два типа кеша L1. L1i — это кэш инструкций, а L1d — кэш данных. Размер кэша уровня 1 обычно составляет от 64 КБ до 512 КБ.

Блок управления памятью

Блок управления памятью (MMU) управляет потоком данных между основной памятью (ОЗУ) и ЦП. Он также обеспечивает защиту памяти, необходимую в многозадачных средах, и преобразование адресов виртуальной памяти в физические адреса.

Часы процессора и блок управления

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

Оперативная память (ОЗУ)

Хотя ОЗУ или основное хранилище показаны на этой и следующей диаграммах, на самом деле они не являются частью ЦП. Его функция заключается в хранении программ и данных, чтобы они были готовы к использованию, когда они потребуются процессору.

Как это работает

ЦП работают по циклу, который управляется блоком управления и синхронизируется с часами ЦП. Этот цикл называется циклом инструкций ЦП и состоит из ряда компонентов выборки/декодирования/выполнения. Инструкция, которая может содержать статические данные или указатели на переменные данные, извлекается и помещается в регистр инструкций. Команда декодируется, и любые данные помещаются в регистры данных A и B. Инструкция выполняется с использованием регистров A и B, а результат помещается в аккумулятор. Затем ЦП увеличивает значение указателя инструкции на длину предыдущего и начинает заново.

Базовый цикл инструкций ЦП выглядит следующим образом.

Основной цикл инструкций процессора

Рисунок 3. Базовый цикл инструкций ЦП.

Потребность в скорости

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

Ускорение цикла инструкций

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

Например, когда текущая инструкция декодирована, следующая извлекается и помещается в регистр инструкций. Как только это произошло, указатель инструкции обновляется адресом памяти следующей инструкции. Использование перекрывающихся циклов команд показано на рисунке 4.

Цикл инструкций процессора с перекрытием

Рисунок 4. Цикл инструкций ЦП с перекрытием.

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

Тем не менее, это мощная стратегия повышения производительности ЦП.

Гиперпоточность

Еще одна стратегия повышения производительности ЦП — гиперпоточность. Гиперпоточность заставляет одно ядро ​​процессора работать как два процессора, предоставляя два потока данных и инструкций. Добавление второго указателя инструкций и регистра инструкций к нашему гипотетическому ЦП, как показано на рис. 5, заставляет его функционировать как два ЦП, выполняя два отдельных потока инструкций в течение каждого командного цикла. Кроме того, когда один поток выполнения останавливается в ожидании данных (опять же, инструкции также являются данными), второй поток выполнения продолжает обработку. Каждое ядро, реализующее гиперпоточность, эквивалентно двум ЦП по способности обрабатывать инструкции.

Концептуальная схема процессора с гиперпоточностью

Рис. 5. Концептуальная схема ЦП с технологией Hyper-Threading.

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

Дополнительная терминология

Я столкнулся с множеством различных терминов ЦП. Чтобы более точно определить терминологию, давайте рассмотрим сам ЦП с помощью команды lscpu.

Процессор Intel, показанный выше, представляет собой корпус, который подключается к одному разъему на материнской плате. Пакет процессора содержит шесть ядер. Каждое ядро ​​поддерживает гиперпоточность, поэтому каждое из них может одновременно запускать два потока, что в сумме дает 12 ЦП.

  • Ядро. Ядро — это наименьшая единица физического оборудования, способная выполнять задачу обработки. Он содержит одно АЛУ и один или два набора вспомогательных регистров. Второй набор регистров и поддерживающих схем обеспечивает гиперпоточность. Одно или несколько ядер можно объединить в один физический пакет.
  • ЦП. Логический аппаратный блок, способный обрабатывать один поток выполнения. Современное использование термина центральный процессор относится к общему количеству потоков, которые процессорный пакет может выполнять одновременно. Одноядерный процессор, не поддерживающий гиперпоточность, эквивалентен одному процессору. В этом случае ЦП и ядро ​​являются синонимами. Процессор Hyper-Threading с одним ядром является функциональным эквивалентом двух процессоров. Процессор с поддержкой технологии Hyper-Threading с восемью ядрами функционально эквивалентен 16 процессорам.
  • Пакет – физический компонент, содержащий одно или несколько ядер, как показано на рис. 1 выше.
  • Процессор. 1) Устройство, которое обрабатывает инструкции программы для обработки данных. 2) Часто используется как синоним пакета.
  • Сокет. Иногда используется как синоним пакета, но более точно относится к физическому сокету на материнской плате, в который вставляется корпус процессора.

Термины сокет, процессор и пакет часто используются взаимозаменяемо, что может вызвать некоторую путаницу. Как видно из приведенных выше результатов команды lscpu, Intel предоставляет нам собственную терминологию, и я считаю ее авторитетным источником. На самом деле мы все используем эти термины по-разному, но если мы понимаем друг друга в любой момент времени, это действительно важно.

Обратите внимание, что указанный выше процессор имеет два кэша уровня 1 по 512 КиБ каждый: один для инструкций (L1i) и один для данных (L1d). Кэш уровня 1 находится ближе всего к ЦП, и он ускоряет работу, разделяя инструкции и данные на этом этапе. Кэши уровня 2 и уровня 3 больше, но инструкции и данные сосуществуют в каждом из них.

Что все это значит?

Хороший вопрос. На заре мейнфреймов каждый компьютер имел только один ЦП и не мог одновременно запускать более одной программы. Мейнфрейм может выполнять расчет заработной платы, затем учет запасов, затем выставление счетов клиентам и т. д., но одновременно может выполняться только одно приложение. Каждая программа должна была завершиться, прежде чем системный оператор мог запустить следующую.

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

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

Все современные компьютеры, от смарт-часов и планшетов до суперкомпьютеров, поддерживают настоящую многозадачность с несколькими процессорами. Наличие нескольких процессоров позволяет компьютерам выполнять множество задач одновременно. Каждый ЦП выполняет свои функции одновременно со всеми остальными ЦП. Восьмиъядерный процессор с технологией Hyper-Threading (т. е. 16 ЦП) может одновременно выполнять 16 задач.

Заключительные мысли

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

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

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

Процессор — это интегральная электронная схема, выполняющая вычисления, необходимые для работы компьютера. Процессор выполняет арифметические, логические, ввод-вывод (I/O) и другие основные инструкции, которые передаются от операционной системы (ОС). Большинство других процессов зависят от операций процессора.

Термины "процессор", "центральный процессор" (ЦП) и "микропроцессор" обычно используются как синонимы. В настоящее время большинство людей используют слово «процессор» как синоним термина «ЦП». Это технически неверно, поскольку ЦП — это всего лишь один из процессоров внутри персонального компьютера (ПК).

Графический процессор (GPU) — это еще один процессор, и даже некоторые жесткие диски технически способны выполнять некоторую обработку.

Techopedia объясняет процессор

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

Процессор включает в себя блок арифметической логики и управления (CU), который измеряет возможности с точки зрения следующего:

  • Возможность обработки инструкций в заданное время.
  • Максимальное количество бит/инструкций.
  • Относительная тактовая частота.

Каждый раз, когда на компьютере выполняется операция, например изменение файла или открытие приложения, процессор должен интерпретировать инструкции операционной системы или программного обеспечения. В зависимости от его возможностей, операции обработки могут выполняться быстрее или медленнее и сильно влиять на так называемую «скорость обработки» ЦП.

Каждый процессор состоит из одного или нескольких отдельных процессорных блоков, называемых «ядрами». Каждое ядро ​​обрабатывает инструкции одной вычислительной задачи с определенной скоростью, определяемой как «тактовая частота» и измеряемой в гигагерцах (ГГц). Поскольку увеличение тактовой частоты сверх определенного значения стало технически слишком сложным, современные компьютеры теперь имеют несколько процессорных ядер (двухъядерные, четырехъядерные и т. д.). Они работают вместе, обрабатывая инструкции и выполняя несколько задач одновременно.

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

Процессор состоит из четырех основных элементов: арифметико-логического устройства (ALU), устройства с плавающей запятой (FPU), регистров и кэш-памяти. ALU и FPU выполняют базовые и расширенные арифметические и логические операции над числами, а затем результаты отправляются в регистры, в которых также хранятся инструкции. Кэши – это небольшие и быстрые запоминающие устройства, в которых хранятся копии данных для частого использования, и они действуют аналогично оперативной памяти (ОЗУ).

ЦП выполняет свои операции через три основных этапа цикла инструкций: выборка, декодирование и выполнение.

Выборка: ЦП извлекает инструкции, обычно из ОЗУ.

Декодирование: декодер преобразует инструкцию в сигналы для других компонентов компьютера.

Выполнение: декодированные теперь инструкции отправляются каждому компоненту, чтобы можно было выполнить желаемую операцию.

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

Наши редакторы рассмотрят то, что вы отправили, и решат, нужно ли пересматривать статью.

computer

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

Многим людям на протяжении всей истории приписывают разработку ранних прототипов, которые привели к созданию современного компьютера. Во время Второй мировой войны физик Джон Мочли, инженер Дж. Преспер Эккерт-младший и их коллеги из Пенсильванского университета разработали первый программируемый электронный цифровой компьютер общего назначения — электронный числовой интегратор и компьютер (ENIAC).

По состоянию на ноябрь 2021 года самым мощным компьютером в мире является японский суперкомпьютер Fugaku, разработанный компаниями RIKEN и Fujitsu. Он использовался для моделирования симуляций COVID-19.

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

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

Способность компьютера обретать сознание — широко обсуждаемая тема. Некоторые утверждают, что сознание зависит от самосознания и способности мыслить, а это означает, что компьютеры обладают сознанием, потому что они распознают свое окружение и могут обрабатывать данные. Другие считают, что человеческое сознание никогда не может быть воспроизведено физическими процессами. Прочитайте точку зрения одного исследователя.

компьютер, устройство для обработки, хранения и отображения информации.

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

Основы вычислений

Первые компьютеры использовались в основном для численных расчетов. Однако, поскольку любая информация может быть закодирована в числовом виде, люди вскоре поняли, что компьютеры способны обрабатывать информацию общего назначения. Их способность обрабатывать большие объемы данных расширила диапазон и точность прогнозов погоды. Их скорость позволяет им принимать решения о маршрутизации телефонных соединений через сеть и управлять механическими системами, такими как автомобили, ядерные реакторы и роботизированные хирургические инструменты. Они также достаточно дешевы, чтобы их можно было встроить в бытовые приборы и сделать сушилки для белья и рисоварки «умными». Компьютеры позволили нам ставить вопросы и отвечать на них, на которые раньше нельзя было ответить. Эти вопросы могут касаться последовательностей ДНК в генах, моделей поведения на потребительском рынке или всех случаев употребления слова в текстах, хранящихся в базе данных. Компьютеры все чаще могут обучаться и адаптироваться во время работы.

Компьютеры также имеют ограничения, некоторые из которых носят теоретический характер. Например, существуют неразрешимые утверждения, истинность которых не может быть определена в рамках заданного набора правил, таких как логическая структура компьютера. Поскольку не может существовать универсального алгоритмического метода для идентификации таких утверждений, компьютер, которому нужно получить истинность такого утверждения, будет (если его принудительно не прервать) продолжать работу бесконечно — состояние, известное как «проблема остановки». (См. Машина Тьюринга.) Другие ограничения отражают современные технологии. Человеческий разум умеет распознавать пространственные структуры — например, легко различать человеческие лица, — но это сложная задача для компьютеров, которые должны обрабатывать информацию последовательно, а не схватывать детали в целом с первого взгляда. Еще одна проблемная область для компьютеров связана с взаимодействием на естественном языке. Поскольку в обычном человеческом общении предполагается так много общих знаний и контекстуальной информации, исследователям еще предстоит решить проблему предоставления релевантной информации универсальным программам на естественном языке.

Аналоговые компьютеры

Аналоговые компьютеры используют непрерывные физические величины для представления количественной информации. Сначала они представляли величины с помощью механических компонентов (см. дифференциальный анализатор и интегратор), но после Второй мировой войны стали использоваться напряжения; к 1960-м годам цифровые компьютеры в значительной степени заменили их. Тем не менее аналоговые компьютеры и некоторые гибридные цифро-аналоговые системы продолжали использоваться в течение 1960-х годов для решения таких задач, как моделирование самолетов и космических полетов.

Одним из преимуществ аналоговых вычислений является то, что спроектировать и построить аналоговый компьютер для решения одной задачи может быть относительно просто. Другое преимущество заключается в том, что аналоговые компьютеры часто могут представлять и решать проблему в «реальном времени»; то есть вычисления выполняются с той же скоростью, что и моделируемая им система. Их основные недостатки заключаются в том, что аналоговые представления имеют ограниченную точность — обычно несколько знаков после запятой, но меньше в сложных механизмах, — а устройства общего назначения дороги и их нелегко запрограммировать.

Цифровые компьютеры

В отличие от аналоговых компьютеров, цифровые компьютеры представляют информацию в дискретной форме, как правило, в виде последовательностей нулей и единиц (двоичных цифр или битов). Современная эра цифровых компьютеров началась в конце 1930-х — начале 1940-х годов в США, Великобритании и Германии. В первых устройствах использовались переключатели, управляемые электромагнитами (реле). Их программы хранились на перфоленте или картах, и у них было ограниченное внутреннее хранилище данных. Исторические события см. см. в разделе Изобретение современного компьютера.

Мейнфрейм

В 1950-х и 60-х годах Unisys (производитель компьютера UNIVAC), International Business Machines Corporation (IBM) и другие компании производили большие и дорогие компьютеры все большей мощности. Они использовались крупными корпорациями и государственными исследовательскими лабораториями, как правило, в качестве единственного компьютера в организации. В 1959 году компьютер IBM 1401 сдавался в аренду за 8000 долларов в месяц (ранние машины IBM почти всегда сдавались в аренду, а не продавались), а в 1964 году самый большой компьютер IBM S/360 стоил несколько миллионов долларов.

Эти компьютеры стали называть мейнфреймами, хотя этот термин не стал общепринятым, пока не были построены компьютеры меньшего размера. Мэйнфреймы характеризовались наличием (для своего времени) больших объемов памяти, быстрых компонентов и мощных вычислительных возможностей. Они были очень надежны, и, поскольку они часто обслуживали жизненно важные потребности в организации, они иногда разрабатывались с избыточными компонентами, которые позволяли им выдерживать частичные отказы. Поскольку это были сложные системы, ими управлял штат системных программистов, которые одни имели доступ к компьютеру. Другие пользователи отправили «пакетные задания» для запуска на мэйнфрейме по одному.

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

Читайте также: