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

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

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

История

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

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

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

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

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

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

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

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

  • Макроархитектура: архитектурные слои более абстрактно, чем микроархитектура
  • Архитектура набора инструкций сборки: Умный ассемблер может преобразовать абстрактные язык ассемблера общее для группы машин на несколько разные машинный язык для разных реализации.
  • Макроархитектура, видимая программисту: языковые инструменты более высокого уровня, такие как компиляторы может определять согласованный интерфейс или контракт с программистами, использующими их, абстрагируя различия между базовыми ISA, UISA и микроархитектуры. Например, C, C ++, или же Ява стандарты определяют различные макроархитектуры, видимые программисту.
  • Микрокод: микрокод - это программа, которая переводит инструкции для работы на микросхеме. Он действует как оболочка для оборудования, представляя предпочтительную версию интерфейса набора команд оборудования. Это средство перевода инструкций дает разработчикам микросхем гибкие возможности: например, 1. Новая улучшенная версия микросхемы может использовать микрокод для представления того же набора инструкций, что и старая версия микросхемы, поэтому все программное обеспечение, нацеленное на этот набор инструкций, будет работать на новом кристалле без необходимости внесения изменений. Например. 2. Микрокод может представлять множество наборов инструкций для одного и того же базового чипа, что позволяет запускать более широкий спектр программного обеспечения.
  • UISA: Архитектура набора команд пользователя, относится к одному из трех подмножеств RISC Инструкции процессора предоставлены PowerPC RISC-процессоры. Подмножество UISA - это инструкции RISC, представляющие интерес для разработчиков приложений. Два других подмножества - это инструкции VEA (Архитектура виртуальной среды), используемые разработчиками систем виртуализации, и OEA (Архитектура операционной среды), используемые разработчиками операционных систем.[15]
  • Пин-архитектура: Аппаратные функции, которые микропроцессор должны предоставлять аппаратной платформе, например, x86 штифты A20M, FERR / IGNNE или FLUSH. Кроме того, сообщения, которые должен выдавать процессор, чтобы внешние тайники может быть признан недействительным (опорожнен). Функции архитектуры контактов более гибкие, чем функции ISA, поскольку внешнее оборудование может адаптироваться к новым кодировкам или переключаться с вывода на сообщение. Термин «архитектура» подходит, потому что функции должны быть предусмотрены для совместимых систем, даже если подробный метод изменится.

Роли

Определение

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

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

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

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

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

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

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

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

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

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

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

Выполнение

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

  • Логическая реализация проектирует схемы, необходимые на логический вентиль уровень.
  • Схема реализации делает транзистор -уровневые конструкции основных элементов (например, ворот, мультиплексоры, защелки ), а также некоторых более крупных блоков (ALU, кеши и т. д.), которые могут быть реализованы на уровне логического элемента или даже на физическом уровне, если этого требует дизайн.
  • Физическая реализация рисует физические схемы. Различные компоненты схемы помещены в микросхему поэтажный план или на плате и создаются соединяющие их провода.
  • Проверка дизайна тестирует компьютер в целом, чтобы убедиться, что он работает во всех ситуациях и в любое время. Как только начинается процесс проверки дизайна, дизайн на логическом уровне тестируется с использованием логических эмуляторов. Однако обычно это слишком медленно для проведения реалистичного теста. Итак, после внесения исправлений на основе первого теста, прототипы создаются с использованием программируемых пользователем вентильных массивов (ПЛИС ). На этом этапе заканчивается большинство хобби-проектов. Последним шагом является тестирование прототипов интегральных схем, которые могут потребовать нескольких переделок.

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

Цели дизайна

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

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

Спектакль

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источники

внешняя ссылка