В компьютерной инженерии, компьютерная архитектура - это набор правил и методов, которые описывают функциональность, организацию и реализацию компьютера систем. Некоторые определения архитектуры определяют ее как описание возможностей и модели программирования компьютера, но не конкретной реализации. В других определениях компьютерная архитектура включает в себя архитектуру набора команд дизайн, микроархитектуру дизайн, логический дизайн и реализацию.
Первая задокументированная компьютерная архитектура находилась в соответствии между Чарльз Бэббидж и Ада Лавлейс, описывающие аналитическую машину. При создании компьютера Z1 в 1936 году Конрад Цузе описал в двух патентных заявках для своих будущих проектов, что машинные инструкции могут храниться в том же хранилище, которое используется для данных, т. Е. концепция хранимой программы. Двумя другими ранними и важными примерами являются:
Термин «архитектура» в компьютерной литературе восходит к работам Лайла Р. Джонсона и Фредерика П. Брукса-младшего, членов отдела организации машин в главном исследовательском центре IBM в 1959 году. возможность написать собственное исследовательское сообщение о Stretch, разработанном IBM суперкомпьютере для Лос-Аламосской национальной лаборатории (в то время известной как Лос-Аламосская научная лаборатория). Чтобы описать уровень детализации для обсуждения роскошно украшенного компьютера, он отметил, что его описание форматов, типов инструкций, параметров оборудования и улучшений скорости было на уровне «системной архитектуры», термин, который казался более полезным, чем «организация машины»
Впоследствии Брукс, дизайнер Stretch, открыл главу 2 книги «Планирование компьютерной системы: Project Stretch», заявив: «Компьютерная архитектура, как и другая архитектура, - это искусство определения потребностей пользователь структуры, а затем проектирует ее для максимально эффективного удовлетворения этих потребностей с учетом экономических и технологических ограничений ».
Брукс продолжал помогать в разработке IBM System / 360 (теперь называется IBM zSeries ) линейку компьютеров, в которой «архитектура» стало существительным, определяющим «что нужно знать пользователю». Позже пользователи компьютеров стали использовать этот термин менее явно.
Самые ранние компьютерные архитектуры были разработаны на бумаге, а затем непосредственно встроены в окончательную форму оборудования. Позже прототипы компьютерной архитектуры были физически построены в форме компьютера с транзисторно-транзисторной логикой (TTL), например, прототипы 6800 и PA-RISC - протестировано и настроено перед принятием окончательной формы оборудования. Начиная с 1990-х годов, новые компьютерные архитектуры обычно «строятся», тестируются и настраиваются внутри какой-то другой компьютерной архитектуры в симуляторе компьютерной архитектуры ; или внутри ПЛИС в качестве программного микропроцессора ; или и то, и другое - перед переходом к окончательной аппаратной форме.
Дисциплина компьютерной архитектуры имеет три основные подкатегории:
. В компьютерной архитектуре есть и другие технологии. Следующие технологии используются в более крупных компаниях, таких как Intel, и, по оценкам, в 2002 г. составляли 1% всей компьютерной архитектуры:
Архитектура компьютера связана с балансированием производительности, эффективность, стоимость и надежность компьютерной системы. Случай с архитектурой набора команд может использоваться, чтобы проиллюстрировать баланс этих конкурирующих факторов. Более сложные наборы инструкций позволяют программистам писать программы, занимающие больше места, поскольку одна инструкция может кодировать некоторую абстракцию более высокого уровня (например, инструкцию цикла x86). Однако более длинные и сложные инструкции требуют больше времени для декодирования процессором и могут быть более дорогостоящими для эффективной реализации. Повышенная сложность из-за большого набора инструкций также создает больше возможностей для ненадежности, когда инструкции взаимодействуют неожиданным образом.
Реализация включает в себя проектирование интегральной схемы, корпус, питание и охлаждение. Оптимизация дизайна требует знакомства с компиляторами, операционными системами для логического проектирования и упаковки.
Архитектура набора команд (ISA) - это интерфейс между программное и аппаратное обеспечение компьютера, а также может рассматриваться как взгляд программиста на машину. Компьютеры не понимают языков программирования высокого уровня, таких как Java, C ++, или большинства используемых языков программирования. Процессор понимает только команды, закодированные в некоторой числовой форме, обычно как двоичные числа. Программные инструменты, такие как компиляторы, переводят эти высокоуровневые языки в инструкции, понятные процессору.
Помимо инструкций, ISA определяет в компьютере элементы, доступные программе, например, типы данных, регистры, режимы адресации, и память. Инструкции находят эти доступные элементы с помощью индексов (или имен) регистров и режимов адресации памяти.
ISA компьютера обычно описывается в небольшом руководстве по эксплуатации, в котором описано, как кодируются инструкции. Кроме того, он может определять короткие (нечетко) мнемонические имена для инструкций. Имена можно распознать с помощью инструмента разработки программного обеспечения, называемого ассемблером. Ассемблер - это компьютерная программа, которая переводит читаемую человеком форму ISA в машиночитаемую форму. Дизассемблеры также широко доступны, обычно в отладчиках и программах для выявления и исправления неисправностей в двоичных компьютерных программах.
ISA различаются по качеству и полноте. Хороший ISA идет на компромисс между удобством программиста (насколько легко понять код), размером кода (сколько кода требуется для выполнения определенного действия), стоимостью компьютера для интерпретации инструкций (чем выше сложность, тем больше оборудования требуется для декодировать и выполнять инструкции), и скорость компьютера (с более сложным аппаратным обеспечением декодирования увеличивается время декодирования). Организация памяти определяет, как инструкции взаимодействуют с памятью и как память взаимодействует сама с собой.
Во время разработки эмуляции эмуляторы могут запускать программы, написанные с использованием предложенного набора команд. Современные эмуляторы могут измерять размер, стоимость и скорость, чтобы определить, соответствует ли конкретный ISA своим целям.
Компьютерная организация помогает оптимизировать продукты, основанные на производительности. Например, программистам необходимо знать вычислительную мощность процессоров. Возможно, им потребуется оптимизировать программное обеспечение, чтобы получить максимальную производительность по самой низкой цене. Для этого может потребоваться довольно подробный анализ организации компьютера. Например, в SD-карте дизайнерам может потребоваться расположить карту так, чтобы большая часть данных могла быть обработана максимально быстро.
Компьютерная организация также помогает спланировать выбор процессора для конкретного проекта. Мультимедийным проектам может потребоваться очень быстрый доступ к данным, тогда как виртуальным машинам может потребоваться быстрое прерывание. Иногда для определенных задач также требуются дополнительные компоненты. Например, компьютеру, способному запускать виртуальную машину, требуется оборудование виртуальной памяти, чтобы память разных виртуальных компьютеров могла быть разделена. Организация и функции компьютера также влияют на энергопотребление и стоимость процессора.
После проектирования набора команд и микроархитектуры необходимо разработать практическую машину. Этот процесс проектирования называется реализацией. Реализация обычно не считается архитектурным проектированием, а скорее считается аппаратным проектированием. Реализация может быть далее разбита на несколько этапов:
Для ЦП весь процесс реализации организован иначе и часто упоминается как проектирование ЦП.
Точная форма компьютерной системы зависит от ограничений и целей. В компьютерных архитектурах обычно компромисс между стандартами, мощностью и производительностью, стоимостью, объемом памяти, задержкой (задержка - это количество времени, которое требуется для передачи информации от одного узла к источнику) и пропускной способности. Иногда другие факторы, такие как характеристики, размер, вес, надежность и расширяемость, также являются факторами.
Наиболее распространенная схема выполняет углубленный анализ мощности и выясняет, как сохранить низкое энергопотребление при сохранении адекватной производительности.
Производительность современного компьютера часто описывается в инструкциях за цикл (IPC), которые измеряют эффективность архитектуры на любой тактовой частоте; более высокая скорость IPC означает, что компьютер быстрее. В старых компьютерах количество IPC составляло всего 0,1, в то время как современные процессоры легко достигают почти 1. Суперскалярные процессоры могут достигать трех-пяти IPC, выполняя несколько инструкций за такт.
Подсчет инструкций на машинном языке. будет вводить в заблуждение, потому что они могут выполнять разный объем работы в разных ISA. «Инструкция» в стандартных измерениях - это не количество команд машинного языка ISA, а единица измерения, обычно основанная на скорости архитектуры компьютера VAX.
Многие люди раньше измеряли скорость компьютера по тактовой частоте (обычно в МГц или ГГц). Это относится к числу циклов в секунду основных часов ЦП. Однако этот показатель несколько вводит в заблуждение, поскольку машина с более высокой тактовой частотой не обязательно может иметь более высокую производительность. В результате производители отказались от тактовой частоты как показателя производительности.
На скорость влияют другие факторы, такие как сочетание скоростей функциональных блоков, шины, доступная память, а также тип и порядок инструкций в программах.
Существует два основных типа скорости: задержка и пропускная способность. Задержка - это время между началом процесса и его завершением. Пропускная способность - это объем работы, выполненной за единицу времени. Задержка прерывания - это гарантированное максимальное время отклика системы на электронное событие (например, когда диск заканчивает перемещение некоторых данных).
На производительность влияет очень широкий диапазон вариантов дизайна - например, конвейерная обработка процессора обычно ухудшает задержку, но улучшает пропускную способность. Компьютерам, которые управляют оборудованием, обычно требуется низкая задержка прерывания. Эти компьютеры работают в среде реального времени и выходят из строя, если операция не завершена в течение заданного периода времени. Например, антиблокировочная система тормозов с компьютерным управлением должна начать торможение в течение предсказуемого и ограниченного периода времени после того, как будет обнаружена педаль тормоза, иначе произойдет отказ тормоза.
Бенчмаркинг учитывает все эти факторы, измеряя время, необходимое компьютеру для выполнения серии тестовых программ. Несмотря на то, что бенчмаркинг показывает сильные стороны, вы не должны выбирать компьютер. Часто измеряемые машины разделяются по разным параметрам. Например, одна система может быстро обрабатывать научные приложения, а другая - более плавно отображать видеоигры. Кроме того, дизайнеры могут нацеливать и добавлять в свои продукты специальные функции с помощью оборудования или программного обеспечения, которые позволяют быстро выполнять определенный тест, но не предлагают преимуществ, аналогичных общим задачам.
Энергоэффективность - еще одно важное измерение в современных компьютерах. Более высокий КПД часто можно обменять на более низкую скорость или более высокую стоимость. Типичное измерение энергопотребления в компьютерной архитектуре - MIPS / Вт (миллионы инструкций в секунду на ватт).
Современные схемы требуют меньше энергии на транзистор по мере роста количества транзисторов на чип. Это связано с тем, что каждый транзистор, который вставляется в новую микросхему, требует собственного источника питания и требует создания новых путей для его питания. Однако количество транзисторов на микросхему начинает расти медленнее. Таким образом, энергоэффективность становится не менее важной, если не более важной, чем установка все большего и большего количества транзисторов в один кристалл. Последние разработки процессоров продемонстрировали этот акцент, поскольку они уделяют больше внимания энергоэффективности, а не втискивают как можно больше транзисторов в один чип. В мире встраиваемых компьютеров энергоэффективность долгое время была важной целью наряду с пропускной способностью и задержкой.
Увеличение тактовой частоты за последние несколько лет росло медленнее по сравнению с улучшениями в области снижения мощности. Это было обусловлено окончанием действия закона Мура и требованием увеличения срока службы батарей и уменьшения габаритов мобильных технологий. Это изменение акцента с более высоких тактовых частот на энергопотребление и миниатюризацию может быть продемонстрировано значительным сокращением энергопотребления, вплоть до 50%, о котором сообщила Intel в своем выпуске микроархитектуры Haswell ; где они снизили эталонное энергопотребление с 30-40 Вт до 10-20 Вт. Сравнивая это с увеличением скорости обработки с 3 ГГц до 4 ГГц (с 2002 по 2006 год), можно увидеть, что фокус в исследованиях и разработках смещается от тактовой частоты в сторону меньшего потребления энергии и занимающего меньше места.
Викискладе есть носители, относящиеся к Архитектура компьютера. |