История процессоров общего назначения - History of general-purpose CPUs

История общего назначения процессоров является продолжением более ранней истории вычислительной техники .

1950-е: Ранние образцы

Модуль вакуумной трубки из компьютеров IBM начала 700-й серии.

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

Свобода дизайна в то время была очень важна, потому что дизайнеры были очень ограничены стоимостью электроники и только начинали исследовать, как лучше всего организовать компьютер. Некоторые из основных функций, представленных в этот период, включали регистры индекса (на Ferranti Mark 1 ), инструкцию сохранения адреса возврата ( UNIVAC I ), немедленные операнды ( IBM 704 ) и обнаружение недопустимых операций ( IBM 650 ).

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

Компьютер - это автоматические счеты . Тип системы счисления влияет на то, как она работает. В начале 1950-х годов большинство компьютеров было построено для конкретных задач числовой обработки, и многие машины использовали десятичные числа в качестве основной системы счисления; то есть математические функции машин работали с основанием-10, а не с основанием-2, как это принято сегодня. Это были не просто десятичные числа с двоичным кодом (BCD). У большинства машин было десять электронных ламп на цифру в каждом регистре процессора . Некоторые ранние советские разработчики компьютеров реализовали системы, основанные на троичной логике ; то есть бит может иметь три состояния: +1, 0 или -1, соответствующие положительному, нулевому или отрицательному напряжению.

BINAC, ранний проект для ВВС США , попытался создать легкий и простой компьютер с использованием двоичной арифметики. Это произвело глубокое впечатление на отрасль.

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

Даже когда дизайнеры использовали двоичную систему, у них все еще было много странных идей. Некоторые использовали знаковую арифметику (-1 = 10001) или дополнение до единиц (-1 = 11110), а не современную арифметику с дополнением до двух (-1 = 11111). Большинство компьютеров использовали шестибитные наборы символов, потому что они адекватно кодировали перфокарты Холлерита . Для дизайнеров того периода было главным откровением осознание того, что слово данных должно быть кратно размеру символа. Они начали проектировать компьютеры с 12-, 24- и 36-битными словами данных (например, см. TX-2 ).

В то время в компьютерном дизайне преобладал закон Гроша : стоимость компьютера увеличивалась пропорционально его скорости.

1960-е: компьютерная революция и CISC

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

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

Для этого они разработали один эталонный компьютер под названием System / 360 (S / 360). Это был виртуальный компьютер, эталонный набор инструкций и возможности, которые поддерживали все машины в семействе. Чтобы обеспечить разные классы машин, каждый компьютер в семействе будет использовать более или менее аппаратную эмуляцию и более или менее эмуляцию микропрограмм , чтобы создать машину, способную выполнять полный набор команд S / 360 .

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

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

Поскольку S / 360 должен был стать преемником как научных машин, таких как 7090, так и машин обработки данных, таких как 1401 , ему требовалась конструкция, которая могла бы разумно поддерживать все формы обработки. Следовательно, набор инструкций был разработан для управления простыми двоичными числами и текстом, научными числами с плавающей запятой (аналогично числам, используемым в калькуляторе) и двоично-десятичной арифметикой, необходимой для систем бухгалтерского учета.

Почти все последующие компьютеры в той или иной форме включали эти нововведения. Этот базовый набор функций теперь называется вычислением сложного набора команд (CISC, произносится как «sisk») - термин, появившийся много лет спустя, когда вычисления с сокращенным набором инструкций (RISC) начали завоевывать долю рынка.

Во многих CISC инструкция может обращаться либо к регистрам, либо к памяти, обычно несколькими разными способами. Это упростило программирование CISC, поскольку программист мог запомнить от 30 до 100 инструкций и набор от трех до десяти режимов адресации, а не тысячи отдельных инструкций. Это называлось ортогональным набором инструкций . Архитектура PDP-11 и Motorola 68000 являются примерами почти ортогональных наборов команд.

Также была BUNCH ( Burroughs , UNIVAC , NCR , Control Data Corporation и Honeywell ), которая в то время конкурировала с IBM; однако IBM доминировала в эпоху с S / 360.

Корпорация Burroughs (которая позже объединилась с Sperry / Univac и образовала Unisys ) предложила альтернативу S / 360 в своих больших системах Burroughs серии B5000. В 1961 году у B5000 была виртуальная память, симметричная многопроцессорная обработка, операционная система с мультипрограммированием (Master Control Program (MCP)), написанная на АЛГОЛе 60 , и первые в отрасли компиляторы с рекурсивным спуском еще в 1964 году.

Конец 1960-х - начало 1970-х: БИС и микропроцессоры.

МОП - транзистор (металл-оксид-полупроводник полевой транзистор), также известный как МОП - транзистора, был изобретен Mohamed Atalla и Давон Канг в Bell Labs в 1959 году, и продемонстрировал в 1960 г. Это привело к развитию металл-оксид -полупроводниковая (МОП) интегральная схема (ИС), предложенная Кангом в 1961 году и изготовленная Фредом Хейманом и Стивеном Хофштейном в RCA в 1962 году. Благодаря высокой масштабируемости , гораздо более низкому энергопотреблению и более высокой плотности, чем у транзисторов с биполярным переходом , MOSFET сделал возможным создание интегральных схем высокой плотности . Достижения в технологии интегральных схем МОП привели к разработке микросхем крупномасштабной интеграции (БИС) в конце 1960-х и, в конечном итоге, к изобретению микропроцессора в начале 1970-х.

В 1960-х годах разработка электронных калькуляторов , электронных часов , компьютера наведения Apollo и ракеты Minuteman помогли сделать МОП-интегральные схемы экономичными и практичными. В конце 1960-х первые микросхемы калькулятора и часов начали показывать, что очень маленькие компьютеры могут быть возможны с крупномасштабной интеграцией (LSI). Это привело к изобретению микропроцессора , одночипового процессора. Intel 4004 , выпущенный в 1971 году, был первым коммерческим микропроцессором. Истоки 4004 восходят к «Проекту Busicom», который начался в японской компании по производству калькуляторов Busicom в апреле 1968 года, когда инженеру Масатоши Шима было поручено разработать специальный набор микросхем LSI вместе со своим руководителем Тадаши Танба для использования в Busicom 141-ПФ настольный калькулятор со встроенным принтером. Его первоначальная конструкция состояла из семи микросхем LSI, включая трехчиповый ЦП . Его конструкция включена арифметические блоки ( сумматоры ), множитель единицы, регистры , только для чтения памяти , и макро-команды набора для управления десятичных компьютерной системы. Затем Busicom захотелось универсального набора микросхем LSI не только для настольных калькуляторов, но и для другого оборудования, такого как банкомат , кассовый аппарат и биллинг . Таким образом, Шима начал работу над набором микросхем LSI общего назначения в конце 1968 года. Инженер Sharp Тадаши Сасаки , который также принимал участие в его разработке, задумал однокристальный микропроцессор в 1968 году, когда он обсуждал эту концепцию на совещании, посвященном мозговому штурму. в Японии. Сасаки приписывает основное изобретение, состоящее в том, чтобы разбить набор микросхем калькулятора на четыре части с ПЗУ (4001), ОЗУ (4002), сдвиговыми регистрами (4003) и ЦП (4004), неизвестной женщине, исследовательнице программного обеспечения из женского колледжа Нара , которая была присутствуют на встрече. Затем Сасаки впервые встретился с Робертом Нойсом из Intel в 1968 году и представил концепцию женского чипсета с четырьмя подразделениями Intel и Busicom.

Busicom обратился к американской компании Intel за производственной помощью в 1969 году. Intel, которая в то время в основном производила память, располагала производственными мощностями для производства микросхемы MOS с кремниевым затвором высокой плотности, которая требовалась Busicom. Шима отправился в Intel в июне 1969 года, чтобы представить свое проектное предложение. Из-за того, что Intel не хватало инженеров-логиков для понимания логических схем или инженеров по схемам для их преобразования, Intel попросила Шиму упростить логику. Intel хотела разработать однокристальный процессор под влиянием Тадаши Сасаки из Sharp, который представил концепцию Busicom и Intel в 1968 году. Дизайн однокристального микропроцессора был затем сформулирован Марсианом «Тедом» Хоффом из Intel в 1969 году, что упростило первоначальный дизайн Шимы до четыре микросхемы, включая однокристальный процессор. Из-за того, что в формулировке Хоффа отсутствуют ключевые детали, Шима придумал свои собственные идеи по поиску решений для ее реализации. Шима отвечал за добавление 10-битного статического сдвигового регистра, чтобы сделать его полезным в качестве буфера принтера и интерфейса клавиатуры, многие улучшения в наборе команд , делающие организацию ОЗУ подходящей для калькулятора, передачу информации об адресе памяти , ключевую программу в область производительности и возможностей программы, функциональная спецификация, представление о десятичном компьютере, программное обеспечение, логика настольного калькулятора, управление вводом- выводом в реальном времени и инструкции по обмену данными между аккумулятором и регистром общего назначения . Хофф и Шима в конечном итоге совместно реализовали концепцию 4-битного микропроцессора с помощью Стэнли Мазора из Intel, который интерпретировал идеи Шимы и Хоффа. Спецификации четырех чипов разрабатывались в течение нескольких месяцев в 1969 году командой Intel во главе с Хоффом и командой Busicom во главе с Шимой.

В конце 1969 года Сима вернулся в Японию. После этого Intel не проводила дальнейшей работы над проектом до начала 1970 года. Шима вернулся в Intel в начале 1970 года и обнаружил, что с тех пор, как он ушел, с 4004 больше не проводилось никаких работ, и что Хофф перешел к другим проектам. Всего за неделю до того, как Шима вернулся в Intel, Федерико Фаггин присоединился к Intel и стал руководителем проекта. После того, как Шима объяснил проект Фаггину, они вместе работали над разработкой 4004. Таким образом, главными разработчиками чипа были Фаггин, который создал методологию проектирования и дизайн чипа на основе кремния, Хофф, который сформулировал архитектуру, прежде чем перейти к другим проектам. , и Шима, который разработал первоначальный дизайн Busicom, а затем помогал в разработке окончательного дизайна Intel. 4004 был впервые представлен в Японии в качестве микропроцессора для калькулятора Busicom 141-PF в марте 1971 года. В Северной Америке первым публичным упоминанием 4004 было объявление в выпуске Electronic News от 15 ноября 1971 года .

NEC выпустила μPD707 и μPD708, двухчиповый 4-битный ЦП , в 1971 году. За ними последовал первый однокристальный микропроцессор NEC, μPD700, в апреле 1972 года. Это был прототип для μCOM-4 (μPD751). выпущен в апреле 1973 года и объединяет μPD707 и μPD708 в одном микропроцессоре. В 1973 году Toshiba выпустила TLCS-12, первый 12-разрядный микропроцессор.

1970-е: революция микропроцессоров

Первый коммерческий микропроцессор , то двоично-десятичном (BCD) на базе Intel 4004 , был выпущена Busicom и Intel в 1971 г. В марте 1972 года Intel представила микропроцессор с 8-битной архитектурой, 8008 , интегрированный PMOS логика повторно реализация ЦП Datapoint 2200 на базе транзисторно-транзисторной логики (ТТЛ) .

Конструкторы 4004 Федерико Фаггин и Масатоши Шима продолжили разработку его преемника, Intel 8080 , немного более миниатюрного компьютерного микропроцессора, в значительной степени основываясь на отзывах клиентов об ограниченном 8008. Как и 8008, он использовался для таких приложений, как терминалы. , принтеры, кассовые аппараты и промышленные роботы. Однако более способный 8080 также стал исходным целевым процессором для ранней де-факто стандартной операционной системы персональных компьютеров под названием CP / M и использовался для таких сложных задач управления, как крылатые ракеты , и для многих других целей. Выпущенный в 1974 году микропроцессор 8080 стал одним из первых действительно широко распространенных микропроцессоров.

К середине 1970-х годов использование интегральных схем в компьютерах стало обычным явлением. Десятилетие было отмечено рыночными потрясениями, вызванными падением цен на транзисторы.

Стало возможным разместить на одной печатной плате целый процессор. Результатом стало то, что миникомпьютеры, обычно с 16-битными словами и объемом памяти от 4 до 64 КБ, стали обычным явлением.

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

Пользовательские CISC обычно создавались с использованием компьютерной логики битового среза, такой как чипы AMD 2900, с пользовательским микрокодом. Компонент битового среза - это часть арифметико-логического устройства (АЛУ), регистрового файла или микросеквенсора. Большинство интегральных схем с битовым срезом имели ширину 4 бита.

К началу 1970-х был разработан PDP-11 , возможно, самый продвинутый маленький компьютер своего времени. Почти сразу же были представлены CISC с более широким словом, 32-битный VAX и 36-битный PDP-10 .

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

IBM System 370 была версией 360, настроенной для работы в виртуальных вычислительных средах. Виртуальный компьютер был разработан , чтобы уменьшить вероятность неустранимого сбоя программного обеспечения.

Серия больших систем Burroughs (B5000, B6000, B7000) достигла самой большой доли рынка. Это был стековый компьютер, ОС которого была написана на диалекте Алгола.

Все эти различные разработки конкурировали за долю на рынке.

Первый однокристальный 16-разрядный микропроцессор был представлен в 1975 году. Panafacom , конгломерат, образованный японскими компаниями Fujitsu , Fuji Electric и Matsushita , представил коммерческий 16-разрядный микропроцессор MN1610. По словам Fujitsu, это был «первый в мире 16-битный микрокомпьютер на одном чипе».

Intel 8080 был основой для 16-битного Intel 8086 , который является прямым предком сегодняшнего вездесущего семейства x86 (включая Pentium и Core i7 ). Каждая инструкция 8080 имеет прямой эквивалент в большом наборе инструкций x86, хотя значения кода операции в последнем различаются.

Начало 1980–1990-х годов: уроки RISC

В начале 1980-х исследователи из Калифорнийского университета в Беркли и IBM обнаружили, что большинство компиляторов и интерпретаторов компьютерных языков используют лишь небольшое подмножество инструкций вычислений со сложным набором команд (CISC). Большая часть мощности процессора игнорировалась в реальном использовании. Они поняли, что, сделав компьютер более простым и менее ортогональным, они могут сделать его быстрее и в то же время дешевле.

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

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

Общий вариант на дизайне RISC использует Harvard архитектуру , по сравнению с фон Нейманом архитектуры или хранятся архитектура программы , общая для большинства других конструкций. В машине с Гарвардской архитектурой программа и данные занимают отдельные устройства памяти и могут быть доступны одновременно. В машинах фон Неймана данные и программы смешиваются в одном запоминающем устройстве, что требует последовательного доступа, что создает так называемое узкое место фон Неймана .

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

В начале 1990-х инженеры японской Hitachi нашли способы сжать сокращенные наборы команд, чтобы они уместились в системах памяти даже меньшего размера, чем CISC. Такие схемы сжатия были использованы для набора команд их SuperH серии микропроцессоров, введенной в 1992 году набора инструкции SuperH позже был адаптирован для ARM архитектуры «с большим пальцем руки набор команд. В приложениях, которым не требуется запускать старое двоичное программное обеспечение, сжатые RISC-файлы становятся все более популярными и доминируют в продажах.

Другой подход к RISCs был минимальным набором команд (MISC), niladic или нулевой операнд набор команд. Этот подход позволил понять, что большая часть места в инструкции использовалась для идентификации операндов инструкции. Эти машины помещали операнды в стек с опусканием (последним пришел - первым вышел) . Набор инструкций был дополнен несколькими инструкциями по выборке и хранению памяти. Чаще всего используется простое кэширование для обеспечения чрезвычайно быстрых RISC-машин с очень компактным кодом. Еще одним преимуществом было то, что задержки прерывания были очень малы, меньше, чем у большинства машин CISC (редкая черта для машин RISC). Этот подход использовался в архитектуре больших систем Берроуза . B5000 был разработан в 1961 году, задолго до изобретения термина RISC . Архитектура помещает шесть 8-битных инструкций в 48-битное слово и была предшественницей дизайна очень длинных командных слов (VLIW) (см. Ниже: с 1990 г. по настоящее время ).

Архитектура Берроуза была одним из источников вдохновения для языка программирования Forth Чарльза Х. Мура , который, в свою очередь, вдохновил его более поздние разработки микросхем MISC. Например, его ядра f20 имели 31 5-битную инструкцию, что соответствовало четырем 20-битным словам.

Микросхемы RISC сейчас доминируют на рынке 32-битных встраиваемых систем. Микросхемы RISC меньшего размера становятся все более распространенными на рынке чувствительных к стоимости 8-битных встроенных систем. Основным рынком для процессоров RISC были системы, требующие небольшого энергопотребления или небольшого размера.

Даже некоторые процессоры CISC (основанные на архитектурах, которые были созданы до того, как RISC стал доминирующим), например, более новые процессоры x86 , внутренне преобразуют инструкции в набор команд, подобный RISC.

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

Середина и конец 1980-х: использование параллелизма на уровне инструкций

В середине-конце 1980-х годов разработчики начали использовать технику, называемую конвейерной обработкой инструкций , при которой процессор работает с несколькими инструкциями на разных стадиях выполнения. Например, процессор может извлекать операнды для следующей инструкции при вычислении результата текущей. Современные процессоры могут использовать более десятка таких стадий. (Конвейерная обработка была первоначально разработана в конце 1950-х годов компанией International Business Machines (IBM) на их мэйнфрейме 7030 (Stretch).) Компьютеры с минимальным набором команд (MISC) могут выполнять инструкции за один цикл без необходимости конвейерной обработки.

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

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

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

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

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

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

Результирующая логика планирования инструкций этих процессоров велика, сложна и трудна для проверки. Кроме того, более высокая сложность требует большего количества транзисторов, что увеличивает энергопотребление и тепло. В этом RISC превосходит RISC, потому что инструкции проще, меньше взаимозависимы и упрощают суперскалярные реализации. Однако, как продемонстрировала Intel, эти концепции могут быть применены к проектированию сложных вычислений с набором команд (CISC) при наличии достаточного времени и денег.

1990 по сегодняшний день: с нетерпением жду

VLIW и EPIC

Логика планирования инструкций, которая делает суперскалярный процессор, является булевой логикой. В начале 1990-х годов значительным нововведением было осознание того, что координация компьютера с несколькими ALU может быть перенесена в компилятор , программное обеспечение, которое переводит инструкции программиста в инструкции машинного уровня.

Этот тип компьютера называется компьютером с очень длинным командным словом (VLIW).

Статическое планирование инструкций в компиляторе (в отличие от динамического планирования в процессоре) может снизить сложность ЦП. Это может улучшить производительность, снизить нагрев и стоимость.

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

Статическое планирование в компиляторе также предполагает, что динамически сгенерированный код будет необычным. До создания Java и виртуальной машины Java это было правдой. Было разумно предположить, что медленная компиляция повлияет только на разработчиков программного обеспечения. Теперь, когда виртуальные машины JIT -компиляции используются для многих языков, медленная генерация кода также влияет на пользователей.

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

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

В январе 2000 года Transmeta Corporation предприняла новый шаг, разместив компилятор в центральном процессоре и заставив компилятор транслировать эталонный байтовый код (в их случае, инструкции x86 ) во внутренний набор команд VLIW. Этот метод сочетает в себе простоту оборудования, низкое энергопотребление и скорость VLIW RISC с компактной системой основной памяти и программной обратной совместимостью, обеспечиваемой популярными CISC.

Чип Intel Itanium основан на том, что они называют архитектурой с явным параллельным вычислением инструкций (EPIC). Предполагается, что такая конструкция обеспечивает преимущество VLIW в виде увеличенной пропускной способности команд. Однако он позволяет избежать некоторых проблем масштабирования и сложности, явно предоставляя в каждом пакете инструкций информацию об их зависимостях. Эта информация вычисляется компилятором, как и в проекте VLIW. Ранние версии также обратно совместимы с новым программным обеспечением x86 посредством режима эмулятора на кристалле . Целочисленные показатели разочаровывают, и, несмотря на улучшения, объем продаж на оптовых рынках остается низким.

Многопоточность

Текущие разработки работают лучше всего, когда на компьютере выполняется только одна программа. Однако почти все современные операционные системы позволяют запускать несколько программ одновременно. Чтобы ЦП переключился и работал над другой программой, требуется дорогостоящее переключение контекста . Напротив, многопоточные процессоры могут обрабатывать инструкции из нескольких программ одновременно.

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

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

Intel называет эту технологию «гиперпоточностью» и предлагает два потока на ядро ​​в своей текущей линейке Core i3, Core i5, Core i7 и Core i9 для настольных ПК (а также в линейке Core i3, Core i5 и Core i7 Mobile), а также предлагая до четырех потоков на ядро ​​в высокопроизводительных процессорах Xeon Phi.

Многоядерный

Многоядерные процессоры обычно представляют собой несколько ядер ЦП на одном кристалле, подключенных друг к другу через общий кеш L2 или L3, встроенную шину или переключающий переключатель на кристалле . Все ядра ЦП на кристалле имеют общие компоненты для взаимодействия с другими процессорами и остальной системой. Эти компоненты могут включать интерфейс внешней шины , контроллер памяти для взаимодействия с динамической памятью с произвольным доступом (DRAM), когерентную связь кэша с другими процессорами и некогерентную связь с южным мостом и устройствами ввода-вывода. Термины « многоядерный» и « микропроцессорный блок» (MPU) стали общеупотребительными для обозначения одного кристалла, имеющего несколько ядер ЦП.

Интеллектуальная оперативная память

Один из способов обойти узкое место фон Неймана - объединить процессор и DRAM на одном кристалле.

Реконфигурируемая логика

Еще одно направление развития - объединение реконфигурируемой логики с универсальным процессором. В этой схеме специальный компьютерный язык компилирует быстро выполняющиеся подпрограммы в битовую маску для настройки логики. Более медленные или менее важные части программы можно запускать, разделяя свое время на ЦП. Этот процесс позволяет создавать устройства, такие как программные радиоприемники , с использованием цифровой обработки сигналов для выполнения функций, обычно выполняемых аналоговой электроникой .

Процессоры с открытым исходным кодом

По мере того как границы между аппаратным и программным обеспечением все более стираются из-за прогресса в методологии проектирования и доступности микросхем, таких как программируемые вентильные матрицы (FPGA), и более дешевых производственных процессов, стало появляться даже оборудование с открытым исходным кодом . Слабо связанные сообщества, такие как OpenCores и RISC-V , недавно анонсировали полностью открытые архитектуры ЦП, такие как OpenRISC, которые могут быть легко реализованы на ПЛИС или в микросхемах, изготовленных на заказ, кем угодно, без лицензионных сборов, и даже такие известные производители процессоров, как Sun Microsystems, имеют выпустила проекты процессоров (например, OpenSPARC ) по лицензиям с открытым исходным кодом.

Асинхронные процессоры

Еще один вариант - бессинхронный или асинхронный ЦП . В отличие от обычных процессоров, у без тактовых процессоров нет центральных часов для координации прохождения данных по конвейеру. Вместо этого этапы ЦП координируются с помощью логических устройств, называемых элементами управления конвейером или секвенсорами FIFO . По сути, конвейерный контроллер синхронизирует следующий этап логики, когда существующий этап завершен. Таким образом, центральные часы не нужны.

По сравнению с тактовой логикой, может быть проще реализовать высокопроизводительные устройства в асинхронной логике:

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

Сторонники асинхронной логики считают, что эти возможности будут иметь следующие преимущества:

  • меньшее рассеивание мощности для заданной производительности
  • максимально возможная скорость выполнения

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

Несмотря на это, было построено несколько асинхронных процессоров, в том числе

Оптическая связь

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

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

Оптические процессоры

Другой долгосрочный вариант - использовать свет вместо электричества для цифровой логики. Теоретически это могло бы работать примерно на 30% быстрее, потреблять меньше энергии и обеспечивать прямой интерфейс с квантовыми вычислительными устройствами.

Основные проблемы этого подхода заключаются в том, что в обозримом будущем электронные вычислительные элементы будут быстрее, меньше, дешевле и надежнее. Такие элементы уже меньше некоторых длин волн света. Таким образом, даже оптическая логика на основе волновода может быть неэкономичной по сравнению с электронной логикой. По состоянию на 2016 год большая часть усилий по разработке приходится на электронные схемы.

Ионные процессоры

Ранние экспериментальные работы были выполнены по использованию химических реакций на основе ионов вместо электронных или фотонных воздействий для реализации элементов логического процессора.

Архитектура ленточной машины

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

Хронология событий

  • 1964. IBM выпускает 32-битную IBM System / 360 с защитой памяти.
  • 1968. Busicom «s Masatoshi Сима начинает проектирование три-чип процессора , который позже эволюционировать в одном чипе Intel 4004 микропроцессора .
  • 1968. Инженер Sharp Тадаши Сасаки создает однокристальный микропроцессор , который обсуждает с Busicom и Intel .
  • 1969. Intel 4004 «S первоначальный дизайн во главе с Intel Тед Хофф и Busicom » ы Masatoshi Шима .
  • 1970. Разработку Intel 4004 завершили Федерико Фаггин из Intel и Масатоши Шима из Busicom.
  • 1971. Busicom и Intel выпускают 4-битный Intel 4004 , первый коммерческий микропроцессор .
  • 1971. NEC выпускает μPD707 и μPD708, двухчиповый 4-битный ЦП.
  • 1972. NEC выпускает однокристальный 4-битный микропроцессор, μPD700.
  • 1973 г. NEC выпускает 4-битный μCOM-4 (μPD751), объединяющий μPD707 и μPD708 в одном микропроцессоре.
  • 1973 г. Toshiba выпускает TLCS-12, первый 12-разрядный микропроцессор.
  • 1974. Intel выпускает Intel 8080 , 8-битный микропроцессор, разработанный Федерико Фаггин и Масатоши Шима .
  • 1975. Компания MOS Technology выпускает 8-битный процессор MOS Technology 6502 , первый интегрированный процессор с доступной ценой в 25 долларов, тогда как у конкурента 6800 - 175 долларов.
  • 1975. Panafacom представляет MN1610, первый коммерческий 16-битный однокристальный микропроцессор.
  • 1976 г. Zilog представляет 8-битный Zilog Z80 , разработанный Федерико Фаггин и Масатоши Шима .
  • 1977 г. Продан первый 32-битный VAX - VAX-11 /780.
  • 1978 год. Intel представляет Intel 8086 и Intel 8088 , первые чипы x86.
  • 1978 г. Fujitsu выпускает микропроцессор MB8843.
  • 1979. Zilog выпускает Zilog Z8000 , 16-битный микропроцессор, разработанный Федерико Фаггин и Масатоши Шима .
  • 1979. Motorola представляет Motorola 68000 , 16/32-битный микропроцессор.
  • 1981. Представлен Stanford MIPS , одна из первых схем вычислений с сокращенным набором команд (RISC).
  • 1982 год. Intel представляет Intel 80286 , который был первым процессором Intel, который мог запускать все программное обеспечение, написанное для его предшественников, 8086 и 8088.
  • 1984. Motorola представляет Motorola 68020 + 68851 , который поддерживает 32-битный набор команд и виртуализацию.
  • 1985. Intel представляет Intel 80386 , который добавляет 32-битный набор команд в микроархитектуру x86.
  • 1985. Представлена архитектура ARM .
  • 1989. Intel представляет Intel 80486 .
  • 1992. Hitachi представляет архитектуру SuperH , которая обеспечивает основу для набора инструкций ARM Thumb .
  • 1993. Intel выпускает оригинальный микропроцессор Pentium , первый процессор с суперскалярной микроархитектурой x86.
  • 1994. ARM, Thumb набор инструкций введена, основанная на Hitachi «s SuperH набора инструкций.
  • 1995. Intel представляет Pentium Pro, который становится основой для архитектур Pentium II , Pentium III , Pentium M и Intel Core .
  • 2000. AMD анонсировала расширение x86-64 для микроархитектуры x86.
  • 2000. AMD достигает 1 ГГц со своим микропроцессором Athlon .
  • 2000. Analog Devices представляет архитектуру Blackfin .
  • 2002. Intel выпустила Pentium 4 с гиперпоточностью , первый современный процессор для настольных ПК, реализующий одновременную многопоточность (SMT).
  • 2003. AMD выпустила Athlon 64 , первый 64-разрядный потребительский процессор.
  • 2003. Intel представила Pentium M , маломощный мобильный вариант архитектуры Pentium Pro.
  • 2005 г. AMD анонсировала Athlon 64 X2 , свой первый двухъядерный процессор x86 .
  • 2006. Intel представляет линейку процессоров Core на основе модифицированного дизайна Pentium M.
  • 2008 г. Поставлено 10 миллиардов процессоров ARM.
  • 2010. Intel представила процессоры Core i3 , i5 и i7 .
  • 2011. AMD анонсировала первый в мире 8-ядерный процессор для настольных ПК .
  • 2017. AMD анонсировала процессоры Ryzen на базе архитектуры Zen .
  • 2017. Intel представила Coffee Lake, которое увеличивает количество ядер на два в процессорах Core i3, Core i5 и Core i7, удаляя при этом гиперпоточность для Core i3. Core i7 теперь имеет шесть ядер с гиперпоточностью, которые когда-то были доступны только для настольных компьютеров высокого класса.
  • 2017. Поставлено сто миллиардов процессоров ARM.
  • 2020. 48-ядерные процессоры Fujitsu A64FX с ядром ARM используются в Fugaku, самом мощном суперкомпьютере в мире.
  • 2021. ARM выпускает ARMv9 - первое крупное обновление за десять лет, начиная с Armv8 в 2011 году.

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

использованная литература

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