stringtranslate.com

Компьютерная архитектура

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

В информатике и компьютерной инженерии компьютерная архитектура — это описание структуры компьютерной системы, состоящей из составных частей. [1] Иногда это может быть высокоуровневое описание, игнорирующее детали реализации. [2] На более детальном уровне описание может включать проект архитектуры набора команд , проект микроархитектуры , проект логики и реализацию . [3]

История

Первая документированная архитектура компьютера была в переписке между Чарльзом Бэббиджем и Адой Лавлейс , описывающей аналитическую машину . Создавая компьютер Z1 в 1936 году, Конрад Цузе описал в двух патентных заявках для своих будущих проектов, что машинные инструкции могут храниться в том же хранилище, что и данные, то есть концепция хранимой программы . [4] [5] Два других ранних и важных примера:

Термин «архитектура» в компьютерной литературе восходит к работе Лайла Р. Джонсона и Фредерика П. Брукса-младшего , членов отдела машинной организации главного исследовательского центра IBM, в 1959 году. Джонсон имел возможность написать собственную исследовательское сообщение о Stretch , суперкомпьютере , разработанном IBM для Национальной лаборатории Лос-Аламоса (в то время известной как Научная лаборатория Лос-Аламоса). Чтобы описать уровень детализации обсуждения роскошно украшенного компьютера, он отметил, что его описание форматов, типов инструкций, параметров оборудования и повышения скорости было на уровне «архитектуры системы», термина, который казался более полезным, чем «организация машины». ". [8]

Впоследствии Брукс, дизайнер Stretch, открыл главу 2 книги под названием « Планирование компьютерной системы: Project Stretch» , заявив: «Компьютерная архитектура, как и другие архитектуры, — это искусство определения потребностей пользователя структуры, а затем проектирование с учетом удовлетворить эти потребности как можно более эффективно в рамках экономических и технологических ограничений». [9]

Брукс продолжал помогать в разработке линейки компьютеров IBM System/360 (теперь называемой IBM zSeries ), в которой «архитектура» стала существительным, определяющим «то, что пользователю нужно знать». [10] Позже пользователи компьютеров стали использовать этот термин во многих менее явных смыслах. [11]

Самые ранние компьютерные архитектуры были спроектированы на бумаге, а затем непосредственно встроены в окончательную аппаратную форму. [12] Позже прототипы компьютерной архитектуры были физически построены в виде компьютера с транзисторно-транзисторной логикой (TTL), такие как прототипы 6800 и PA-RISC , протестированы и настроены перед принятием окончательной аппаратной формы. . По состоянию на 1990-е годы новые компьютерные архитектуры обычно «строились», тестировались и настраивались внутри какой-либо другой компьютерной архитектуры в симуляторе компьютерной архитектуры ; или внутри FPGA в качестве программного микропроцессора ; или и то, и другое — прежде чем переходить к окончательной аппаратной форме. [13]

Подкатегории

Дисциплина компьютерной архитектуры имеет три основные подкатегории: [14]

Есть и другие технологии в компьютерной архитектуре. Следующие технологии используются в более крупных компаниях, таких как Intel, и, по оценкам, в 2002 году [14] они составляли 1% всей компьютерной архитектуры:

Роли

Определение

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

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

Архитектура набора команд

Архитектура набора команд (ISA) — это интерфейс между программным и аппаратным обеспечением компьютера, а также ее можно рассматривать как взгляд программиста на машину. Компьютеры не понимают языки программирования высокого уровня, такие как Java, C++ или большинство используемых языков программирования. Процессор понимает только инструкции, закодированные в каком-либо числовом виде, обычно в виде двоичных чисел . Программные инструменты, такие как компиляторы , преобразуют эти языки высокого уровня в инструкции, понятные процессору.

Помимо инструкций, ISA определяет элементы компьютера, доступные программе, например, типы данных , регистры , режимы адресации и память. Инструкции определяют местонахождение этих доступных элементов с помощью индексов регистров (или имен) и режимов адресации памяти.

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

МСА различаются по качеству и полноте. Хороший ISA компромисс между удобством программиста (насколько легко понять код), размером кода (сколько кода требуется для выполнения определенного действия), стоимостью компьютера для интерпретации инструкций (большая сложность означает, что для выполнения определенного действия требуется больше оборудования). декодировать и выполнять инструкции) и скорость компьютера (с более сложным оборудованием декодирования время декодирования увеличивается). Организация памяти определяет, как инструкции взаимодействуют с памятью и как память взаимодействует сама с собой.

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

Компьютерная организация

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

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

Выполнение

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

Для процессоров весь процесс реализации организован по-другому и часто называется проектированием процессора .

Цели дизайна

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

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

Производительность

Производительность современных компьютеров часто описывается числом инструкций на цикл (IPC), которое измеряет эффективность архитектуры на любой тактовой частоте; более высокая скорость IPC означает, что компьютер работает быстрее. У старых компьютеров количество IPC составляло всего 0,1, в то время как у современных процессоров оно легко достигало почти 1. Суперскалярные процессоры могут достигать трех-пяти IPC, выполняя несколько инструкций за такт. [ нужна цитата ]

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

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

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

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

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

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

Энергоэффективность

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

Современные схемы требуют меньше энергии на транзистор по мере роста количества транзисторов на кристалл. [19] Это связано с тем, что каждый транзистор, который устанавливается в новый чип, требует собственного источника питания и требует создания новых путей для его питания. Однако количество транзисторов на чип начинает увеличиваться более медленными темпами. Таким образом, энергоэффективность начинает становиться столь же важной, если не более важной, чем размещение все большего и большего количества транзисторов в одном чипе. Недавние разработки процессоров продемонстрировали этот акцент, поскольку они уделяют больше внимания энергоэффективности, а не размещению как можно большего количества транзисторов в одном кристалле. [20] В мире встраиваемых компьютеров энергоэффективность уже давно является важной целью наряду с пропускной способностью и задержкой.

Изменения рыночного спроса

За последние несколько лет увеличение тактовой частоты росло медленнее по сравнению с улучшениями в области снижения энергопотребления. Это было вызвано отменой закона Мура и требованием увеличения срока службы батарей и уменьшения размеров мобильных технологий. Это изменение акцента с более высоких тактовых частот на энергопотребление и миниатюризацию можно продемонстрировать по значительному снижению энергопотребления, до 50%, о котором сообщила Intel в выпуске микроархитектуры Haswell ; где они снизили контрольный показатель энергопотребления с 30–40 Вт до 10–20 Вт. [21] Сравнивая это с увеличением скорости обработки с 3 ГГц до 4 ГГц (с 2002 по 2006 годы) [22] можно увидеть, что фокус в исследованиях и разработках смещается от тактовой частоты к потреблению меньшего количества энергии и меньше места.

Смотрите также

Рекомендации

  1. ^ Драгони, Николь (nd). «Введение в одноранговые вычисления» (PDF) . DTU Compute — Кафедра прикладной математики и информатики . Люнгбю, Дания.
  2. ^ Клементс, Алан. Принципы компьютерного оборудования (Четвертое изд.). п. 1. Архитектура абстрактно описывает внутреннюю организацию компьютера; то есть он определяет возможности компьютера и его модель программирования. У вас могут быть два компьютера, построенных по-разному, с использованием разных технологий, но с одинаковой архитектурой.
  3. ^ Хеннесси, Джон; Паттерсон, Дэвид. Компьютерная архитектура: количественный подход (Пятое изд.). п. 11. Эта задача имеет множество аспектов, включая разработку набора команд, функциональную организацию, разработку логики и реализацию.
  4. ^ Уильямс, ФК; Килберн, Т. (25 сентября 1948 г.), «Electronic Digital Computers», Nature , 162 (4117): 487, Бибкод : 1948Natur.162..487W, doi : 10.1038/162487a0 , S2CID  4110351, заархивировано из оригинала 6 апреля. 2009 г. , получено 10 апреля 2009 г.
  5. ^ Сюзанна Фабер, "Konrad Zuses Bemuehungen um die Patentanmeldung der Z3", 2000 г.
  6. ^ Нойманн, Джон (1945). Первый проект отчета о EDVAC . п. 9.
  7. ^ Воспроизведено в книге Б. Дж. Коупленда (ред.), «Автоматическая вычислительная машина Алана Тьюринга», Oxford University Press, 2005, стр. 369–454.
  8. ^ Джонсон, Лайл (1960). «Описание растяжения» (PDF) . п. 1 . Проверено 7 октября 2017 г.
  9. ^ Бухгольц, Вернер (1962). Планирование компьютерной системы . п. 5.
  10. ^ «Система 360, от компьютеров к компьютерным системам». IBM100 . 7 марта 2012 года . Проверено 11 мая 2017 г.
  11. ^ Хеллиге, Ганс Дитер (2004). «Die Genese von Wissenschaftskonzeptionen der Computerarchitektur: Vom «система органов» zum Schichtmodell des Designraums». Geschichten der Informatik: Visionen, Paradigmen, Leitmotive . стр. 411–472.
  12. ^ ACE разработала семь бумажных проектов за один год, прежде чем в 1948 году был начат прототип. [Б.Дж. Коупленд (ред.), «Автоматическая вычислительная машина Алана Тьюринга», OUP, 2005, стр. 57]
  13. ^ Шмальц, MS «Организация компьютерных систем». УФ ЦИСЭ . Проверено 11 мая 2017 г.
  14. ^ AB Джон Л. Хеннесси и Дэвид А. Паттерсон. Компьютерная архитектура: количественный подход (Третье изд.). Издательство Морган Кауфманн.
  15. ^ Лапланте, Филипп А. (2001). Словарь по информатике, технике и технологиям . ЦРК Пресс. стр. 94–95. ISBN 0-8493-2691-5.
  16. ^ Фрей, Брэд (24 февраля 2005 г.). «Книга по архитектуре PowerPC, версия 2.02». Корпорация IBM.
  17. ^ Нуль, Линда (2019). Основы компьютерной организации и архитектуры (5-е изд.). Берлингтон, Массачусетс: Jones & Bartlett Learning. п. 280. ИСБН 9781284123036.
  18. ^ Мартин, Майло. «Что такое компьютерная архитектура?» (PDF) . УПЕНН . Проверено 11 мая 2017 г.
  19. ^ «Интегральные схемы и производство» (PDF) . Проверено 8 мая 2017 г.
  20. ^ "Exynos 9 Series (8895)" . Samsung . Проверено 8 мая 2017 г.
  21. ^ «Измерение TDP мощности процессора в сравнении с ACP» (PDF) . Интел . Апрель 2011 года . Проверено 5 мая 2017 г.
  22. ^ «История производительности процессора» (PDF) . cs.columbia.edu . 24 апреля 2012 года . Проверено 5 мая 2017 г.

Источники

Внешние ссылки