Проектирование процессоров — раздел компьютерной науки и компьютерной инженерии (производства), занимающийся созданием процессора — ключевого компонента компьютерного оборудования .
Процесс проектирования включает выбор набора инструкций и определенной парадигмы выполнения (например, VLIW или RISC ) и приводит к микроархитектуре , которая может быть описана, например, на VHDL или Verilog . Для проектирования микропроцессора это описание затем изготавливается с использованием некоторых из различных процессов изготовления полупроводниковых устройств , в результате чего получается кристалл , который прикрепляется к держателю чипа . Этот носитель чипа затем припаивается или вставляется в гнездо на печатной плате (PCB).
Режим работы любого процессора — выполнение списков инструкций. Обычно инструкции включают в себя инструкции по вычислению или манипулированию значениями данных с использованием регистров , изменению или извлечению значений в памяти для чтения/записи, выполнению реляционных тестов между значениями данных и управлению потоком программы.
Проекты процессоров часто тестируются и проверяются на одной или нескольких ПЛИС перед отправкой проекта процессора на литейный завод для изготовления полупроводников . [1]
Конструкция ЦП разделена на несколько компонентов. Информация передается через каналы передачи данных (такие как АЛУ и конвейеры ). Эти каналы передачи данных контролируются с помощью логики с помощью блоков управления . Компоненты памяти включают регистровые файлы и кэши для сохранения информации или определенных действий. Схема синхронизации поддерживает внутренние ритмы и синхронизацию с помощью драйверов синхронизации, ФАПЧ и сетей распределения синхронизации . Схема приемопередатчика Pad позволяет принимать и отправлять сигналы, а также библиотека ячеек логических вентилей , которая используется для реализации логики. Логические вентили являются основой для проектирования процессора, поскольку они используются для реализации большинства компонентов процессора. [2]
ЦП, разработанные для рынков с высокой производительностью, могут потребовать индивидуальной (оптимизированной или специфичной для приложения (см. ниже)) разработки для каждого из этих элементов для достижения целей частоты, рассеивания мощности и площади кристалла, тогда как ЦП, разработанные для рынков с более низкой производительностью, могут уменьшить бремя реализации, приобретя некоторые из этих элементов, купив их как интеллектуальную собственность . Методы реализации логики управления ( логический синтез с использованием инструментов САПР) могут использоваться для реализации каналов данных, файлов регистров и часов. Общие стили логики, используемые при проектировании ЦП, включают неструктурированную случайную логику, конечные автоматы , микропрограммирование (распространено с 1965 по 1985 год) и программируемые логические массивы (распространены в 1980-х годах, больше не распространены).
Типы устройств, используемых для реализации логики, включают:
Проект проектирования ЦП обычно включает в себя следующие основные задачи:
Перепроектирование ядра ЦП на меньшую площадь кристалла помогает уменьшить все (фотошаблонное сокращение ), что приводит к тому же количеству транзисторов на меньшем кристалле. Это улучшает производительность (меньшие транзисторы переключаются быстрее), снижает энергопотребление (меньшие провода имеют меньшую паразитную емкость ) и снижает стоимость (больше ЦП помещается на той же кремниевой пластине). Выпуск ЦП на кристалле того же размера, но с меньшим ядром ЦП, сохраняет стоимость примерно такой же, но позволяет достичь более высоких уровней интеграции в пределах одного очень масштабного интеграционного чипа (дополнительный кэш, несколько ЦП или другие компоненты), улучшая производительность и снижая общую стоимость системы.
Как и в случае с большинством сложных электронных конструкций, в настоящее время основная часть графика проекта ЦП отводится проверке логики (доказательству того, что конструкция не содержит ошибок).
Ключевые архитектурные инновации ЦП включают индексный регистр , кэш , виртуальную память , конвейеризацию инструкций , суперскалярность , CISC , RISC , виртуальную машину , эмуляторы , микропрограмму и стек .
Было предложено множество новых идей проектирования ЦП , включая реконфигурируемую логику , ЦП без тактовой частоты , вычислительную оперативную память и оптические вычисления .
Бенчмаркинг — это способ тестирования скорости ЦП. Примерами служат SPECint и SPECfp , разработанные Standard Performance Evaluation Corporation , и ConsumerMark, разработанный Embedded Microprocessor Benchmark Consortium EEMBC .
Некоторые из наиболее часто используемых показателей включают в себя:
При оптимизации некоторых из этих показателей могут быть компромиссы. В частности, многие методы проектирования, которые заставляют процессор работать быстрее, значительно ухудшают «производительность на ватт», «производительность на доллар» и «детерминированный отклик», и наоборот.
Существует несколько различных рынков, на которых используются ЦП. Поскольку каждый из этих рынков отличается своими требованиями к ЦП, устройства, разработанные для одного рынка, в большинстве случаев не подходят для других рынков.
По состоянию на 2010 год [update]на рынке вычислений общего назначения, то есть настольных компьютеров, ноутбуков и серверов, обычно используемых в бизнесе и дома, доминируют Intel IA-32 и 64-разрядная версия архитектуры x86-64 , а их конкуренты PowerPC и SPARC поддерживают гораздо меньшие клиентские базы. Ежегодно на этом рынке используются сотни миллионов процессоров архитектуры IA-32. Растущий процент этих процессоров предназначен для мобильных реализаций, таких как нетбуки и ноутбуки. [5]
Поскольку эти устройства используются для запуска бесчисленных различных типов программ, эти конструкции ЦП не ориентированы специально на один тип приложений или одну функцию. Требования к возможности эффективного запуска широкого спектра программ сделали эти конструкции ЦП одними из наиболее продвинутых в техническом плане, наряду с некоторыми недостатками, такими как относительная дороговизна и высокое энергопотребление.
В 1984 году на разработку большинства высокопроизводительных процессоров требовалось от четырех до пяти лет. [6]
Научные вычисления — гораздо меньшая ниша рынка (по доходам и количеству отгруженных единиц). Она используется в государственных исследовательских лабораториях и университетах. До 1990 года проектирование ЦП часто выполнялось для этого рынка, но ЦП массового рынка, организованные в большие кластеры, оказались более доступными. Основная оставшаяся область активного проектирования оборудования и исследований для научных вычислений — это высокоскоростные системы передачи данных для подключения ЦП массового рынка.
Если судить по отгруженным единицам, большинство ЦП встроены в другие машины, такие как телефоны, часы, бытовые приборы, транспортные средства и инфраструктуру. Встроенные процессоры продаются в объеме многих миллиардов единиц в год, однако в основном по гораздо более низким ценам, чем процессоры общего назначения.
Эти однофункциональные устройства отличаются от более привычных универсальных процессоров несколькими способами:
Семейство встраиваемых ЦП с наибольшим количеством отгруженных единиц — это 8051 , в среднем около миллиарда единиц в год. [7] 8051 широко используется, потому что он очень недорогой. Время разработки сейчас примерно равно нулю, потому что он широко доступен как коммерческая интеллектуальная собственность. Сейчас он часто встраивается как небольшая часть более крупной системы на чипе. Стоимость кремния 8051 сейчас составляет всего 0,001 доллара США, потому что некоторые реализации используют всего 2200 логических вентилей и занимают 0,4730 квадратных миллиметров кремния. [8] [9]
По состоянию на 2009 год больше процессоров было произведено с использованием наборов инструкций семейства архитектуры ARM , чем с использованием любого другого 32-битного набора инструкций. [10] [11] Архитектура ARM и первый чип ARM были разработаны примерно за полтора года и 5 человеко-лет рабочего времени. [12]
Архитектура 32-битного микроконтроллера Parallax Propeller и первый чип были разработаны двумя людьми примерно за 10 человеко-лет рабочего времени. [13]
8-битная архитектура AVR и первый микроконтроллер AVR были задуманы и спроектированы двумя студентами Норвежского технологического института.
8-битная архитектура 6502 и первый чип MOS Technology 6502 были разработаны за 13 месяцев группой из примерно 9 человек. [14]
32-разрядные процессоры Berkeley RISC I и RISC II были в основном разработаны группой студентов в рамках четырехчетвертной последовательности аспирантских курсов. [15] Эта конструкция стала основой для коммерческого процессора SPARC .
В течение примерно десятилетия каждый студент, изучающий курс 6.004 в Массачусетском технологическом институте, был частью команды — у каждой команды был один семестр, чтобы спроектировать и построить простой 8-битный ЦП из интегральных схем серии 7400. Одна команда из 4 студентов спроектировала и построила простой 32-битный ЦП в течение этого семестра. [16]
Некоторые курсы бакалавриата требуют, чтобы команда из 2–5 студентов спроектировала, внедрила и протестировала простой ЦП в ПЛИС в течение одного 15-недельного семестра. [17]
Процессор MultiTitan был разработан с затратами в 2,5 человеко-года, что в то время считалось «относительно небольшими усилиями по проектированию». [18] 24 человека внесли свой вклад в 3,5-летний исследовательский проект MultiTitan, который включал проектирование и создание прототипа процессора. [19]
Для встраиваемых систем самые высокие уровни производительности часто не нужны или не желательны из-за требований к энергопотреблению. Это позволяет использовать процессоры, которые могут быть полностью реализованы с помощью методов логического синтеза . Эти синтезированные процессоры могут быть реализованы в гораздо более короткие сроки, что обеспечивает более быстрое время выхода на рынок .