Какие подходы, использованные в компьютерных архитектурах, позволили повысить их производительность

Обновлено: 21.11.2024

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

На самом базовом уровне компьютер состоит из блока управления, арифметико-логического блока (ALU), блока памяти и контроллеров ввода-вывода (I/O). АЛУ выполняет простые операции сложения, вычитания, умножения, деления и логические операции, такие как ИЛИ и И. В памяти хранятся инструкции и данные программы. Блок управления извлекает данные и инструкции из памяти и использует операции АЛУ для выполнения этих инструкций с использованием этих данных. (Блок управления и АЛУ вместе называются центральным процессором [ЦП].) Когда встречается инструкция ввода или вывода, блок управления передает данные между памятью и назначенным контроллером ввода-вывода. Скорость работы ЦП в первую очередь определяет скорость работы компьютера в целом. Все эти компоненты — блок управления, АЛУ, память и контроллеры ввода-вывода — реализованы на транзисторных схемах.

Компьютеры размещают веб-сайты, состоящие из HTML, и отправляют текстовые сообщения так же просто, как. РЖУ НЕ МОГУ. Взломайте этот тест, и пусть какая-нибудь технология подсчитает ваш результат и раскроет вам его содержание.

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

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

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

Работа компьютера после загрузки программы и некоторых данных в оперативную память происходит следующим образом. Первая инструкция передается из ОЗУ в блок управления и интерпретируется аппаратной схемой. Например, предположим, что инструкция представляет собой строку битов, являющуюся кодом для ЗАГРУЗКИ 10. Эта инструкция загружает содержимое ячейки памяти 10 в АЛУ. Выбирается следующая инструкция, скажем, ADD 15. Затем блок управления загружает содержимое ячейки памяти 15 в АЛУ и добавляет его к уже имеющемуся номеру. Наконец, инструкция STORE 20 сохранит эту сумму в ячейке 20. На этом уровне работа компьютера мало чем отличается от работы карманного калькулятора.

В целом, программы — это не просто длинные последовательности операций ЗАГРУЗКИ, СОХРАНЕНИЯ и арифметических операций. Самое главное, компьютерные языки включают условные инструкции — по сути, правила, которые гласят: «Если ячейка памяти n удовлетворяет условию a, выполните следующую команду с номером x». , иначе выполните инструкцию y». Это позволяет определять ход программы по результатам предыдущих операций — критически важная возможность.

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

Логический дизайн — это область компьютерных наук, которая занимается проектированием электронных схем с использованием фундаментальных принципов и свойств логики (см. булева алгебра) для выполнения операций блока управления, ALU, контроллеры ввода-вывода и другое оборудование. Каждая логическая функция (И, ИЛИ и НЕ) реализуется устройством определенного типа, называемым логическим элементом. Например, схема сложения АЛУ имеет входы, соответствующие всем битам двух суммируемых чисел, и выходы, соответствующие битам суммы. Расположение проводов и вентилей, соединяющих входы и выходы, определяется математическим определением сложения. В конструкции блока управления предусмотрены схемы, интерпретирующие инструкции. Из-за потребности в эффективности логическая конструкция также должна оптимизировать схему для работы с максимальной скоростью и иметь минимальное количество логических элементов и цепей.

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

Проектирование микропроцессора СБИС происходит в несколько этапов, включая создание начальной функциональной или поведенческой спецификации, кодирование этой спецификации на языке описания оборудования, разбивку конструкции на модули и создание размеров и форм для конечных компонентов микросхемы. Это также включает в себя планирование чипа, которое включает в себя создание «плана этажа», чтобы указать, где на чипе каждый компонент должен быть размещен и соединен с другими компонентами. Ученые-компьютерщики также участвуют в создании инструментов автоматизированного проектирования (САПР), которые помогают инженерам на различных этапах проектирования микросхем, а также в разработке необходимых теоретических результатов, таких как эффективное проектирование плана этажа с почти минимальной площадью, удовлетворяющей требованиям. заданные ограничения.

Прогресс в области технологии интегральных схем был невероятным. Например, в 1971 году первый микропроцессорный чип (4004 корпорации Intel) имел всего 2300 транзисторов, в 1993 году чип Intel Pentium имел более 3 миллионов транзисторов, а к 2000 году количество транзисторов на таком чипе составило около 50 миллионов. Чип Power7, представленный IBM в 2010 году, содержал примерно 1 миллиард транзисторов. Явление, когда количество транзисторов в интегральной схеме удваивается примерно каждые два года, широко известно как закон Мура.

Закон Мура. Гордон Э. Мур заметил, что количество транзисторов на компьютерном чипе удваивается примерно каждые 18–24 месяца. Как показано на логарифмическом графике количества транзисторов в процессорах Intel на момент их появления, его «закон» соблюдался.

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

Вычислительные науки

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

Математические методы, необходимые для вычислительной науки, требуют преобразования уравнений и функций из непрерывных в дискретные. Например, компьютерное интегрирование функции на интервале выполняется не путем применения интегрального исчисления, а путем аппроксимации площади под графиком функции как суммы площадей, полученных при вычислении функции в дискретных точках. Точно так же решение дифференциального уравнения получается как последовательность дискретных точек, определяемых путем аппроксимации кривой истинного решения последовательностью касательных отрезков. При такой дискретизации многие проблемы можно преобразовать в уравнение, включающее матрицу (прямоугольный массив чисел), решаемую с помощью линейной алгебры. Численный анализ - это изучение таких вычислительных методов. При применении численных методов необходимо учитывать несколько факторов: (1) условия, при которых метод дает решение, (2) точность решения, (3) является ли процесс решения стабильным (т. е. не показывает рост ошибки) , и (4) вычислительная сложность (в смысле, описанном выше) получения решения желаемой точности.

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

Графика и визуальные вычисления

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

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

Изображение человеческого мозга, пораженного раком, полученное с помощью магнитно-резонансной томографии (МРТ). Ярко-синяя область указывает на то, что рак распространился на затылочную долю (внизу справа).

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

Взаимодействие человека с компьютером

Взаимодействие человека с компьютером (HCI) связано с проектированием эффективного взаимодействия между пользователями и компьютерами и созданием интерфейсов, поддерживающих это взаимодействие. HCI происходит на интерфейсе, который включает в себя как программное, так и аппаратное обеспечение. Дизайн пользовательского интерфейса влияет на жизненный цикл программного обеспечения, поэтому он должен выполняться на ранних этапах процесса проектирования. Поскольку пользовательские интерфейсы должны учитывать различные пользовательские стили и возможности, исследования HCI опираются на несколько дисциплин, включая психологию, социологию, антропологию и инженерию. В 1960-х годах пользовательские интерфейсы состояли из компьютерных консолей, которые позволяли оператору напрямую вводить команды, которые можно было выполнить немедленно или в будущем. С появлением более удобных для пользователя персональных компьютеров в 1980-х годах пользовательские интерфейсы стали более сложными, так что пользователь мог «указать и щелкнуть», чтобы отправить команду в операционную систему.

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

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

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

Веб-разработка, языки программирования, тестирование программного обеспечения и другое

Типы компьютерной архитектуры

1. Архитектура фон Неймана

Эта архитектура предложена Джоном фон Нейманом. Сейчас компьютеры, которыми мы пользуемся каждый день, основаны на архитектуре фон Неймана. Он основан на некоторых концепциях.

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

Каждая память имеет несколько местоположений, и каждое место имеет уникальный адрес. Мы можем обращаться к содержимому памяти по его расположению независимо от того, какой тип данных и инструкций присутствует в памяти, благодаря чему мы можем читать или записывать любые данные и инструкции. Выполнение всегда происходит последовательно, если изменение не требуется. Например, предположим, что мы выполняем инструкцию со строки 1 по строку 10, но теперь нам нужно выполнить строку 50 вместо строки 11, тогда мы переходим к инструкции 50 и выполняем ее.

Существует шина (адресная шина/шина данных/шина управления), используемая для выполнения инструкций и кода данных. Устройство ввода принимает данные или инструкции, а центральный процессор (ЦП) выполняет одну операцию за раз, либо извлекая данные, либо вводя/извлекая инструкции из памяти. После завершения операции она отправляется на устройство вывода. Блоки управления и логики для обработки операций находятся внутри центрального процессора.

Все в одном пакете для разработки программного обеспечения (600+ курсов, 50+ проектов) 600+ онлайн-курсов | 3000+ часов | Поддающиеся проверке сертификаты | Пожизненный доступ
4,6 (3144 оценки)

2. Гарвардская архитектура

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

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

3. Архитектура набора инструкций

Чтобы составить архитектуру, необходима архитектура набора инструкций, поскольку она содержит набор инструкций, понятных процессору. Он имеет два набора инструкций: один — RISC (компьютер с сокращенным набором инструкций), а второй — CISC (компьютер со сложным набором инструкций).

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

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

4. Микроархитектура

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

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

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

5. Дизайн системы

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

Заключение

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

Рекомендуемые статьи

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

Раздел 404 Закона Сарбейнса-Оксли (SOX) требует, чтобы все публичные компании установили внутренний контроль и процедуры.

Закон о защите конфиденциальности детей в Интернете от 1998 года (COPPA) – это федеральный закон, который налагает особые требования на операторов доменов .

План North American Electric Reliability Corporation по защите критически важной инфраструктуры (NERC CIP) представляет собой набор стандартов.

Стандарт безопасности данных платежных приложений (PA-DSS) – это набор требований, призванных помочь поставщикам программного обеспечения в разработке безопасных .

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

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

Медицинская транскрипция (МТ) – это ручная обработка голосовых сообщений, продиктованных врачами и другими медицинскими работниками.

Электронное отделение интенсивной терапии (eICU) — это форма или модель телемедицины, в которой используются самые современные технологии.

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

Снижение рисков – это стратегия подготовки к угрозам, с которыми сталкивается бизнес, и уменьшения их последствий.

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

Синхронная репликация — это процесс копирования данных по сети хранения, локальной или глобальной сети, поэтому .

Коэффициент усиления записи (WAF) – это числовое значение, представляющее объем данных, передаваемых контроллером твердотельного накопителя (SSD) .

API облачного хранилища — это интерфейс прикладного программирования, который соединяет локальное приложение с облачным хранилищем.

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

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

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

В принципе вы должны уметь

  • оценивать эффективность
  • отчет об эффективности и
  • подвести итоги.

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

• Почему одно оборудование лучше другого для разных программ?

• Какие факторы производительности системы связаны с оборудованием? (например, нужна ли нам новая машина или новая операционная система?)

• Как набор инструкций машины влияет на производительность?

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

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

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

  • Сколько времени занимает выполнение моего задания?
  • Сколько времени занимает выполнение задания?
  • Как долго я должен ждать запроса к базе данных?

Еще один важный фактор времени – пропускная способность. Это общий объем работы, выполненной за определенное время.

• Сколько заданий может выполнять машина одновременно?

• Какова средняя скорость выполнения?

• Сколько работы выполняется?

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

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

Производительность = 1/время выполнения

Если процессор X в n раз быстрее, чем Y, то

Уменьшение времени отклика почти всегда повышает пропускную способность.

Например, если компьютер A запускает программу за 10 секунд, а компьютер B запускает ту же программу за 20 секунд, насколько быстрее A, чем B?

Ускорение A по сравнению с B = 20/10 = 2, что указывает на то, что A в два раза быстрее, чем B.

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

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

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

Тактовая частота в основном зависит от конкретной организации ЦП, будь то конвейерная или неконвейерная, технологии аппаратной реализации — используемой технологии СБИС. Тактовый цикл 10 нс относится к тактовой частоте 100 МГц, тактовый цикл 5 нс относится к тактовой частоте 200 МГц и так далее. Если вы смотрите на тактовый цикл 250 пс, то он соответствует тактовой частоте 4 ГГц. Чем выше тактовая частота, тем меньше ваш такт.

В качестве примера рассмотрим следующую задачу:

Программа запускается на компьютере А с тактовой частотой 2 ГГц за 10 секунд.С какой тактовой частотой должен работать компьютер B, чтобы эта программа выполнялась за 6 секунд? К сожалению, для этого компьютеру B потребуется в 1,2 раза больше тактов, чем компьютеру A, чтобы запустить программу.

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

Когда вам нужно узнать общее время выполнения с точки зрения общего количества тактов, умноженных на период такта, у вас возникает проблема вычисления общего количества тактов. Не все инструкции занимают одинаковое количество времени для выполнения — скажем, вам нужно знать количество тактов, которое занимает каждая инструкция, и вы должны быть в состоянии сложить все эти такты, чтобы узнать общее количество тактов. Один из способов представить время выполнения состоит в том, что оно равно количеству инструкций, умноженному на среднее время выполнения каждой инструкции. Каким-то образом, если мы узнаем среднее время на инструкцию, мы сможем рассчитать время выполнения. Инструкция компьютерной машины (ISA) состоит из ряда элементарных или микроопераций, которые различаются по количеству и сложности в зависимости от инструкции и точной организации ЦП (дизайна). Микрооперация — это элементарная аппаратная операция, которая может быть выполнена за один такт процессора. Это соответствует одной микроинструкции в микропрограммируемых ЦП. Примеры: операции с регистрами: сдвиг, загрузка, очистка, приращение, операции АЛУ: сложение, вычитание и т. д. Таким образом, для выполнения одной машинной инструкции может потребоваться один или несколько циклов ЦП, что называется циклами на инструкцию (CPI). Средний (или эффективный) CPI программы: средний CPI всех инструкций, выполняемых в программе на данной конструкции ЦП.

• Компьютеры A и B реализуют одну и ту же ISA. Время тактового цикла компьютера А составляет 250 пс, а эффективный ИПЦ равен 2,0 для некоторой программы, а компьютер В имеет время тактового цикла 500 пс и эффективный ИПЦ, равный 1,2, для той же программы. Какой компьютер быстрее и насколько?

Каждый компьютер выполняет одинаковое количество инструкций, I, поэтому

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

где ICi — количество (процент) количества выполненных инструкций класса i, CPIi — (среднее) количество тактовых циклов на инструкцию для этого класса инструкций, а n — количество классов инструкций.

Общий эффективный CPI зависит от набора инструкций — это показатель динамической частоты инструкций в одной или нескольких программах.

В качестве примера рассмотрим следующий набор инструкций:

Насколько быстрее будет работать машина, если улучшенный кэш данных сократит среднее время загрузки до 2 циклов?

– Нагрузка à 20% x 2 цикла = 0,4

– Общий индекс потребительских цен от 2,2 до 1,6

– относительная эффективность 2,2 / 1,6 = 1,38

Как это соотносится с сокращением инструкции ветвления до 1 цикла?

– Переход на 20% x 1 цикл = 0,2

– Общий индекс потребительских цен от 2,2 до 2,0

– Относительная эффективность равна 2,2 / 2,0 = 1,1. Теперь мы можем записать базовое уравнение производительности в следующем виде:

Эти уравнения разделяют три ключевых фактора, влияющих на эффективность

  • Может измерить время выполнения ЦП, запустив программу
  • Частота обычно указывается
  • Может измерить общее количество инструкций с помощью профилировщиков/симуляторов, не зная всех деталей реализации
  • CPI зависит от типа инструкции и реализации ISA, для которой нам необходимо знать подробности реализации
  • На количество инструкций влияют разные факторы: зависит от того, как написана программа. Если вы опытный программист, используете четкий алгоритм и кодируете его соответствующим образом, тогда он будет использовать меньше инструкций. Итак, первое зависит от алгоритма, который вы хотите использовать, и навыков программиста, который пишет этот код. Во-вторых, когда вы написали код, компилятор отвечает за перевод этих инструкций в машинные инструкции.Компилятор должен быть оптимизирующим компилятором, чтобы он переводил этот код в меньшее количество машинных инструкций. Компилятор определенно играет роль в сокращении количества инструкций, но помните, что компилятор может использовать только те инструкции, которые поддерживаются вашей архитектурой набора инструкций. Таким образом, архитектура набора инструкций также играет роль в сокращении количества инструкций. В предыдущем разделе мы рассмотрели, как одна и та же операция может быть реализована в виде различных последовательностей инструкций в зависимости от ISA. Таким образом, с помощью ISA компилятор сможет генерировать код, использующий меньшее количество машинных инструкций.
  • Время тактового цикла зависит от организации ЦП, а также от используемой технологии. Под организацией мы подразумеваем, реализована ли единица инструкций как конвейерная или неконвейерная. Конвейерная обработка упрощает многоцикловые операции, что сокращает время такта. Это будет подробно рассмотрено в следующих модулях.
  • CPI, который представляет собой среднее количество тактовых циклов на инструкцию, зависит от используемой программы, поскольку вы можете использовать сложные инструкции, состоящие из ряда элементарных операций или простых инструкций. Точно так же компилятор может транслировать программу, используя сложные инструкции вместо более простых. Таким образом, компилятор также может сыграть свою роль, и, поскольку компилятор использует только инструкции в вашей ISA, ISA определенно играет свою роль. Наконец, организация ЦП также играет роль в определении значений ИПЦ.

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

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

Веб-ссылки/вспомогательные материалы

  • Компьютерная архитектура — количественный подход, Джон Л. Хеннесси и Дэвид А. Паттерсон, 5-е издание, Морган Кауфманн, Elsevier, 2011 г.
  • Компьютерная организация и дизайн — аппаратно-программный интерфейс, Дэвид А. Паттерсон и Джон Л. Хеннесси, 4-е издание, Морган Кауфманн, Elsevier, 2009 г.
  • Computer Organization, Carl Hamacher, Zvonko Vranesic and Safwat Zaky, 5th. Edition, McGraw-Hill Higher Education, 2011.

Performance Metrics by Dr A. P. Shanthi распространяется под лицензией Creative Commons Attribution-NonCommercial 4.0 International License, если не указано иное.

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