Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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 году. [1] Благодаря высокой масштабируемости , [2] и гораздо более низкому энергопотреблению и более высокой плотности, чем биполярные переходные транзисторы , [3]МОП-транзистор позволил создавать интегральные схемы высокой плотности . [4] [5] Достижения в технологии МОП- интегральных схем привели к разработке микросхем крупномасштабной интеграции (БИС) в конце 1960-х и, в конечном итоге, к изобретению микропроцессора в начале 1970-х. [6]

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

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

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

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

1970-е: революция микропроцессоров [ править ]

Микропроцессор Intel 4004 .

Первый коммерческий микропроцессор , то двоично - десятичном (BCD) на базе Intel 4004 , был выпущен Busicom и Intel в 1971 г. [10] [12] В марте 1972 года Intel представила микропроцессор с 8-битной архитектуры, 8008 , А.Н. интегрированная pMOS логика, реализующая транзисторно-транзисторную логику (TTL) на базе процессора Datapoint 2200 .

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

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

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

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

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

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

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

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

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

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

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

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 году [23] набор команд SuperH был позже адаптированным для архитектуры ARM «ы большого пальца руки набора команд. [24] В приложениях, которым не требуется запускать старое двоичное программное обеспечение, сжатые 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 i7 и Core i9 Desktop (а также в линейке Core i3, Core i5 и Core i7 Mobile), а также предлагает до четыре потока на ядро ​​в высокопроизводительных процессорах Xeon Phi.

Многоядерный [ править ]

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

Интеллектуальная RAM [ править ]

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

  • Проект Berkeley IRAM
  • eDRAM
  • Вычислительная RAM
  • Мемристор

Реконфигурируемая логика [ править ]

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

Процессоры с открытым исходным кодом [ править ]

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

Асинхронные процессоры [ править ]

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

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

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

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

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

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

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

  • ORDVAC и идентичный Illiac I (1951)
  • ILLIAC II (1962), то самый быстрый компьютер на Земле
  • Асинхронный микропроцессор Caltech, первый в мире асинхронный микропроцессор (1988)
  • ARM -implementing АМУЛЕТ (1993 и 2000)
  • асинхронная реализация MIPS Technologies R3000 , названная MiniMIPS (1998) [25]
  • многоядерный процессор SEAforth от Чарльза Х. Мура [26]

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

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

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

Оптические процессоры [ править ]

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

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

Ионные процессоры [ править ]

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

Архитектура ленточной машины [ править ]

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

Хронология событий [ править ]

  • 1964. IBM выпускает 32-битную IBM System / 360 с защитой памяти.
  • 1968. Busicom «s Masatoshi Сима начинает проектирование три-чип процессора , который позже эволюционировать в одном чипе Intel 4004 микропроцессора . [10]
  • 1968. Инженер Sharp Тадаши Сасаки создает однокристальный микропроцессор , который обсуждает с Busicom и Intel . [12]
  • 1969. Intel 4004 «S первоначальный дизайн во главе с Intel Тед Хофф и Busicom » ы Masatoshi Шима . [9]
  • 1970. Разработку Intel 4004 завершили Федерико Фаггин из Intel и Масатоши Шима из Busicom. [9]
  • 1971. Busicom и Intel выпускают 4-битный Intel 4004 , первый коммерческий микропроцессор . [10]
  • 1971. NEC выпускает μPD707 и μPD708, двухчиповый 4-битный ЦП. [14]
  • 1972. NEC выпускает однокристальный 4-битный микропроцессор, μPD700. [15] [16]
  • 1973 г. NEC выпускает 4-битный μCOM-4 (μPD751) [15], объединяющий μPD707 и μPD708 в одном микропроцессоре. [14]
  • 1973 г. Toshiba выпускает TLCS-12, первый 12-разрядный микропроцессор. [15] [17]
  • 1974. Intel выпускает Intel 8080 , 8-битный микропроцессор, разработанный Федерико Фаггин и Масатоши Шима .
  • 1975. Компания MOS Technology выпускает 8-битный процессор MOS Technology 6502 , первый интегрированный процессор с доступной ценой в 25 долларов, тогда как у конкурента 6800 - 175 долларов.
  • 1975. Panafacom представляет MN1610, первый коммерческий 16-разрядный однокристальный микропроцессор. [29] [21] [30]
  • 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 [23], которая обеспечивает основу для набора инструкций ARM Thumb . [24]
  • 1993. Intel выпускает оригинальный микропроцессор Pentium , первый процессор с суперскалярной микроархитектурой x86.
  • 1994. ARM, Thumb набор инструкций введен, [31] на основе Hitachi «s SuperH набор инструкций. [24]
  • 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. Произведено около десяти миллиардов процессоров.
  • 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 теперь имеет шесть ядер с гиперпоточностью, которые когда-то были доступны только для настольных компьютеров высокого класса.

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

  • Хронология микропроцессора

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

  1. ^ https://www.computerhistory.org/siliconengine/metal-oxide-semiconductor-mos-transistor-demonstrated/
  2. ^ Motoyoshi, М. (2009). «Сквозной кремний (TSV)» (PDF) . Труды IEEE . 97 (1): 43–48. DOI : 10.1109 / JPROC.2008.2007462 . ISSN  0018-9219 .
  3. ^ "Транзисторы поддерживают закон Мура" . EETimes . 12 декабря 2018.
  4. ^ "Кто изобрел транзистор?" . Музей истории компьютеров . 4 декабря 2013 г.
  5. ^ Хиттингер, Уильям С. (1973). «Металл-оксид-полупроводники». Scientific American . 229 (2): 48–59. Bibcode : 1973SciAm.229b..48H . DOI : 10.1038 / Scientificamerican0873-48 . ISSN 0036-8733 . JSTOR 24923169 .  
  6. ^ «1971: микропроцессор объединяет функцию процессора на одном чипе» . Музей истории компьютеров .
  7. Mack, Памела Э. (30 ноября 2005 г.). «Микрокомпьютерная революция» . Проверено 23 декабря 2009 .
  8. ^ "История в компьютерной программе" (PDF) . Архивировано из оригинального (PDF) 19 июля 2011 года . Проверено 23 декабря 2009 . Цитировать журнал требует |journal=( помощь )
  9. ^ a b c d e f g h i Федерико Фаггин , Создание первого микропроцессора , IEEE Solid-State Circuits Magazine , Winter 2009, IEEE Xplore
  10. ^ a b c d e f g Найджел Тоут. «Вычислитель Busicom 141-PF и микропроцессор Intel 4004» . Проверено 15 ноября 2009 года .
  11. ^ a b c d e f g h i j k l Масатоши Шима , IEEE
  12. ^ а б в г Аспрей, Уильям (1994-05-25). "Устная история: Тадаши Сасаки" . Интервью № 211 для Центра истории электротехники . Институт инженеров по электротехнике и радиоэлектронике, Inc . Проверено 2 января 2013 .
  13. ^ Гилдер, Джордж (1990). Микрокосм: квантовая революция в экономике и технологиях . Саймон и Шустер. п. 107. ISBN 978-0-671-70592-3. В номере « Электронных новостей» от 15 ноября 1971 г. появилось знаменательное объявление от компании, которой исполнилось два года.
  14. ^ a b c d "NEC 751 (uCOM-4)" . Страница коллекционера антикварных фишек. Архивировано из оригинала на 2011-05-25 . Проверено 11 июня 2010 .
  15. ^ a b c d e f 1970 年代 マ イ コ ン の 開 発 発 展 ~ 集 積 回路, Японский музей истории полупроводников.
  16. ^ a b Джеффри А. Харт и Сангбэ Ким (2001), Защита прав интеллектуальной собственности в глобальном информационном порядке , Ассоциация международных исследований, Чикаго
  17. ^ a b Огдин, Джерри (январь 1975 г.). «Микропроцессорная система показателей». Информационный бюллетень Euromicro . 1 (2): 43–77. DOI : 10.1016 / 0303-1268 (75) 90008-5 .
  18. ^ [1]
  19. ^ [2]
  20. ^ «16-битные микропроцессоры» . Музей CPU . Проверено 5 октября 2010 года .
  21. ^ a b c "История" . PFU . Проверено 5 октября 2010 года .
  22. ^ PANAFACOM Lkit-16 , Общество обработки информации Японии
  23. ^ a b http://www.hitachi.com/New/cnews/E/1997/971110B.html
  24. ^ a b c Натан Уиллис (10 июня 2015 г.). «Воскрешая архитектуру SuperH» . LWN.net .
  25. ^ MiniMIPS
  26. ^ Обзор SEAforth Архивировано 2 февраля 2008 г. в Wayback Machine «... асинхронная схема во всем чипе. Нет центральных часов с миллиардами немых узлов, рассеивающих бесполезную мощность. ... ядра процессора сами внутренне асинхронны».
  27. ^ http://williams.comp.ncat.edu/comp375/RISCprocessors.pdf
  28. ^ «Пояс» .
  29. ^ «16-битные микропроцессоры» . Музей CPU . Проверено 5 октября 2010 года .
  30. ^ PANAFACOM Lkit-16 , Общество обработки информации Японии
  31. ^ ARM7TDMI Техническое справочное руководство, стр. Ii

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

  • Великие моменты в истории микропроцессоров У. Уорнера, 2004 г.
  • Великие микропроцессоры прошлого и настоящего (V 13.4.0), автор: Джон Байко, 2003 г.
  • По крупицам: иллюстрированная история компьютеров , Стэн Аугартен, 1984. OCR с разрешения автора.
  • Галерея процессоров и связанных с ними печатных плат (на итальянском языке) [3]