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

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

История [ править ]

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

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

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

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

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

Подкатегории [ править ]

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

  • Архитектура набора команд (ISA): определяет машинный код, который процессор считывает и обрабатывает ,а также размер слова , режимы адресации памяти , регистры процессора и тип данных .
  • Микроархитектура : также известная как «компьютерная организация», это описывает, как конкретный процессор будет реализовывать ISA. [14] Например,размер кэша ЦП компьютера- это проблема, которая обычно не имеет ничего общего с ISA.
  • Дизайн системы : включает в себя все другие аппаратные компоненты в вычислительной системе, такие как обработка данных, отличная от ЦП (например, прямой доступ к памяти ), виртуализация и многопроцессорность.

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

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

Роли [ править ]

Определение [ править ]

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

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

Архитектура набора команд [ править ]

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

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

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

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

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

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

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

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

Реализация [ править ]

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

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

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

Цели дизайна [ править ]

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

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

Производительность [ править ]

Производительность современного компьютера часто описывается в инструкциях за цикл (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] можно увидеть, что фокус в исследованиях и разработках смещается от тактовой частоты к потреблению меньшего количества энергии и занимающему меньше места.

См. Также [ править ]

  • Сравнение архитектур ЦП
  • Компьютерное железо
  • Конструкция процессора
  • Плавающая запятая
  • Гарвардская архитектура ( измененная )
  • Архитектура потока данных
  • Транспортная триггерная архитектура
  • Реконфигурируемые вычисления
  • Влияние IBM PC на рынок персональных компьютеров
  • Ортогональный набор инструкций
  • Архитектура программного обеспечения
  • фон Неймана архитектура
  • Таксономия Флинна

Ссылки [ править ]

  1. ^ Клементс, Алан. Принципы компьютерного оборудования (Четвертое изд.). п. 1. Архитектура абстрактно описывает внутреннюю организацию компьютера; то есть он определяет возможности компьютера и его модель программирования. У вас может быть два компьютера, которые были сконструированы по-разному, с разными технологиями, но с одинаковой архитектурой.
  2. ^ Хеннесси, Джон; Паттерсон, Дэвид. Компьютерная архитектура: количественный подход (пятое изд.). п. 11. Эта задача имеет множество аспектов, включая проектирование набора команд, функциональную организацию, логический дизайн и реализацию.
  3. ^ Уильямс, ФК; Килбурн, Т. (25 сентября 1948 г.), «Электронные цифровые компьютеры» , Nature , 162 (4117): 487, Bibcode : 1948Natur.162..487W , doi : 10.1038 / 162487a0 , S2CID 4110351 , заархивировано из оригинала 6 апреля. 2009 , дата обращения 10.04.2009 
  4. ^ Сюзанна Фабер, "Konrad Zuses Bemuehungen um die Patentanmeldung der Z3", 2000
  5. ^ Нойман, Джон (1945). Первый проект отчета о EDVAC . п. 9.
  6. Воспроизведено в BJ Copeland (Ed.), «Alan Turing's Automatic Computing Engine», Oxford University Press, 2005, стр. 369-454.
  7. ^ Джонсон, Лайл (1960). «Описание растяжения» (PDF) . п. 1 . Проверено 7 октября 2017 года .
  8. ^ Бухгольц, Вернер (1962). Планирование компьютерной системы . п. 5.
  9. ^ "Система 360, от компьютеров к компьютерным системам" . IBM100 . Дата обращения 11 мая 2017 .
  10. ^ Hellige, Hans Dieter (2004). "Die Genese von Wissenschaftskonzeptionen der Computerarchitektur: Vom" система органов "zum Schichtmodell des Designraums". Geschichten der Informatik: Visionen, Paradigmen, Leitmotive . С. 411–472.
  11. ^ ACE претерпела семь бумажных разработок за один год, прежде чем прототип был запущен в 1948 году. [BJ Copeland (Ed.), "Alan Turing's Automatic Computing Engine", OUP, 2005, p. 57]
  12. ^ Шмальц, М.С. "Организация компьютерных систем" . УФ CISE . Дата обращения 11 мая 2017 .
  13. ^ а б Джон Л. Хеннесси и Дэвид А. Паттерсон. Компьютерная архитектура: количественный подход (Третье изд.). Издательство Морган Кауфманн.
  14. ^ Laplante, Phillip A. (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)" . Самсунг . Дата обращения 8 мая 2017 .
  20. ^ "Измерение мощности процессора TDP против ACP" (PDF) . Intel . Апрель 2011 . Дата обращения 5 мая 2017 .
  21. ^ «История производительности процессора» (PDF) . cs.columbia.edu . 24 апреля 2012 . Дата обращения 5 мая 2017 .

Источники [ править ]

  • Джон Л. Хеннесси и Дэвид Паттерсон (2006). Компьютерная архитектура: количественный подход (четвертое изд.). Морган Кауфманн. ISBN 978-0-12-370490-0.
  • Бартон, Роберт С. , «Функциональный дизайн компьютеров», Коммуникации ACM 4 (9): 405 (1961).
  • Бартон, Роберт С., «Новый подход к функциональному дизайну цифрового компьютера», Труды Западной совместной компьютерной конференции , май 1961 г., стр. 393–396. О конструкции компьютера Burroughs B5000 .
  • Белл, К. Гордон ; и Ньюэлл, Аллен (1971). «Компьютерные структуры: материалы и примеры» , McGraw-Hill.
  • Блаау, Г.А. , и Брукс, Ф.П., мл. , "Структура системы / 360, Часть I - Краткое описание логической структуры" , IBM Systems Journal , т. 3, вып. 2. С. 119–135, 1964.
  • Таненбаум, Эндрю С. (1979). Структурированная компьютерная организация . Энглвуд Клиффс, Нью-Джерси : Прентис-Холл. ISBN 0-13-148521-0.

Внешние ссылки [ править ]

  • ISCA: Материалы Международного симпозиума по компьютерной архитектуре
  • Micro: Международный симпозиум IEEE / ACM по микроархитектуре
  • HPCA: Международный симпозиум по архитектуре высокопроизводительных компьютеров
  • ASPLOS: Международная конференция по архитектурной поддержке языков программирования и операционных систем
  • Транзакции ACM по архитектуре и оптимизации кода
  • Транзакции IEEE на компьютерах
  • Архитектура компьютерных систем фон Неймана