LINUX.ORG.RU

Как делают процессоры?

 


0

1

Всегда было интересно как делают процессоры. Если смотреть инфу из гугла - то алгоритм создания процессора такой: Берут песочек и плавят в огромную палку, которую потом распиливают на пластины, и бла бла бла. Но вообще, насколько я понимаю, сначала берут verilog или vhdl, на нем пишут описание процессора. Что потом - для меня загадка. Как я понимаю из этого как-то получают электрические схемы. Расскажите, пожалуйста, (или если можете покажите на примере) что дальше происходит. Заранее спасибо.

в огромную палку

О, блин, мне тоже плавили эту херню?

amorpher ★★★★★
()
Ответ на: комментарий от zikasak

Вот типичное видео про процессоры которое ни на что не отвечает. А как получают маски для литографии? Как получают электрическую схему?

Erfinder
() автор топика

в энциклопедии всё написано:

Hardware description languages such as Verilog differ from software programming languages because they include ways of describing the propagation of time and signal dependencies (sensitivity). There are two types of assignment operators; a blocking assignment (=), and a non-blocking (<=) assignment. The non-blocking assignment allows designers to describe a state-machine update without needing to declare and use temporary storage variables. Since these concepts are part of Verilog's language semantics, designers could quickly write descriptions of large circuits in a relatively compact and concise form. At the time of Verilog's introduction (1984), Verilog represented a tremendous productivity improvement for circuit designers who were already using graphical schematic capture software and specially written software programs to document and simulate electronic circuits.

The designers of Verilog wanted a language with syntax similar to the C programming language, which was already widely used in engineering software development. Like C, Verilog is case-sensitive and has a basic preprocessor (though less sophisticated than that of ANSI C/C++). Its control flow keywords (if/else, for, while, case, etc.) are equivalent, and its operator precedence is compatible. Syntactic differences include variable declaration (Verilog requires bit-widths on net/reg types[clarification needed]), demarcation of procedural blocks (begin/end instead of curly braces {}), and many other minor differences.

A Verilog design consists of a hierarchy of modules. Modules encapsulate design hierarchy, and communicate with other modules through a set of declared input, output, and bidirectional ports. Internally, a module can contain any combination of the following: net/variable declarations (wire, reg, integer, etc.), concurrent and sequential statement blocks, and instances of other modules (sub-hierarchies). Sequential statements are placed inside a begin/end block and executed in sequential order within the block. However, the blocks themselves are executed concurrently, making Verilog a dataflow language.

Verilog's concept of 'wire' consists of both signal values (4-state: «1, 0, floating, undefined») and strengths (strong, weak, etc.). This system allows abstract modeling of shared signal lines, where multiple sources drive a common net. When a wire has multiple drivers, the wire's (readable) value is resolved by a function of the source drivers and their strengths.

A subset of statements in the Verilog language are synthesizable. Verilog modules that conform to a synthesizable coding style, known as RTL (register-transfer level), can be physically realized by synthesis software. Synthesis software algorithmically transforms the (abstract) Verilog source into a netlist, a logically equivalent description consisting only of elementary logic primitives (AND, OR, NOT, flip-flops, etc.) that are available in a specific FPGA or VLSI technology. Further manipulations to the netlist ultimately lead to a circuit fabrication blueprint (such as a photo mask set for an ASIC or a bitstream file for an FPGA).

emulek
()
Ответ на: комментарий от Erfinder

А че за Synthesis software?

я точно не знаю, извини. Погугли, оно есть в сети. Вроде сам verilog умеет выхлоп уже в виде схемы выдавать. Ну «elementary logic primitives (AND, OR, NOT, flip-flops, etc.)». Или тебя волнует, как эти AND расставлять и разводить?

То есть процессор это ASIC получается?

какая разница? ASIC просто специальная схема. Разницы в изготовлении нет никакой. Разница только в цене, которая намного больше.

emulek
()
Ответ на: комментарий от emulek

Или тебя волнует, как эти AND расставлять и разводить

Ага. И как они потом преобразуются в маски.

какая разница?

Я в том то и дело, что не врубаюсь, есть асики, есть фгпа, чем из этого всего является процессор?

Erfinder
() автор топика
Ответ на: комментарий от Erfinder

Ага. И как они потом преобразуются в маски.

не. Не вдавался. Что там сложного? Придумываешь NAND, один. А потом verilog тебе расставляет Over9000 твоих NAND. Задачка как раз для компа — тупая и нудная.

Я в том то и дело, что не врубаюсь, есть асики, есть фгпа, чем из этого всего является процессор?

и то, и другое и третье.

ASIC и CPU это вообще одно и то же, разница только в количестве. CPU можно засунуть куда угодно, а ASIC только в конкретный девайс. (потому IRL часто дешевле, т.к. хоть ASIC и дорогой, но всяко дешевле Over9000 CPU, которые он в одиночку заменяет)

FPGA несколько другое. Тамошняя конфигурация зашита в ROM (EEPROM и т.п.), и её можно записать без всякого производства. Естественно они медленные и дорогие. За то ты можешь сделать ЛЮБОЙ чип, прямо у себя дома. И он даже будет работать. Хабра гарантирует (:

emulek
()
Ответ на: комментарий от emulek

не. Не вдавался. Что там сложного? Придумываешь NAND, один. А потом verilog тебе расставляет Over9000 твоих NAND. Задачка как раз для компа — тупая и нудная.

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

Пример одного синтезатора: Synopsys DC

Пример второго: Cadence Encounter

Задача на самом деле безумно интересная и по ней даже есть неплохой курс на Курсере: VLSI CAD: Logic to layout. На самом деле, она включает в себя несколько сильно разных подзадач: собственно, синтез — это преобразование текста на Верилоге или VHDL в схему из логических элементов. Набор элементов определяется фабрикой и техпроцессом, либо, в случае FPGA, возможностями стандартной ячейки FPGA. Есть ещё placement — это автоматическая расстановка компонентов на кристалле, и routing — соответственно, разводка. После этого нужно оценить, что получилось — это timing analysys. После полученной оценки следует расстроиться и начать всё сначала. А потом ещё и ещё. Следует добавить, что каждый пункт включает в себя пару-тройку подпунктов, то есть это довольно грубое приближение. Например, синтез для FPGA выглядит немного по-другому: сначала генерируется логика из стандартных компонентов, а потом отображается большими кусками на ячейки ПЛИС — это mapping.

GolemXIV
()

проектирование: http://1i7.livejournal.com/17550.html

перевод с описания в кремний: https://www.coursera.org/course/vlsicad лекции оттуда на youtube перетащены, и они планировали этой весной следующую сессию

производство: http://www.ixbt.com/cpu/microelectronics-1.shtml http://www.ixbt.com/cpu/microelectronics-2.shtml http://www.ixbt.com/cpu/microelectronics-3.shtml

dn2010 ★★★★★
()
Ответ на: комментарий от GolemXIV

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

Тащем-то я сразу сказал, что я не в курсе. Спасибо за ликбез, интересно.

emulek
()

Берут песочек и плавят в огромную палку

Ну AMD примерно так и делает.

Lavos ★★★★★
()

распиливают на пластины

Сборка сверху вниз.

Сборка снизу вверх.

История рассудит, но мне кажется, что за второй будущее.

tlx ★★★★★
()

насколько я понимаю, сначала берут verilog или vhdl, на нем пишут описание процессора. Что потом - для меня загадка

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

Потом синтезируют netlist, разводят руками clock hierarchy и power hierarchy (ну и геометрию кристалла и пины задают), под это дело делают автоматический place & route, и долго-долго доводят руками до приемлемого состояния.

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

Ну и, наконец, когда дизайн готов, отдают его на фабрикацию - печатается много слоев масок, по которым уже собственно и изготавливается чип. Этот последний этап стоит от $3m до $10m, так что косячить недопустимо, и всю отладку надо было выполнить задолго до фабрикации.

Так что, как видишь, наговнякать кодец на вериложике - это самая маленькая и незначительная часть процесса.

anonymous
()
Ответ на: комментарий от Erfinder

А как получают маски для литографии?

Из вручную нарисованной cell library, которая является страшной-страшной тайной для каждого fab-а, и делиться ей они не станут никогда и ни с кем.

anonymous
()
Ответ на: комментарий от Erfinder

А че за Synthesis software?

Посмотри на open source реализации, такие, как vtr-verilog-to-routing: https://code.google.com/p/vtr-verilog-to-routing/

Грубо говоря, процесс такой: из HDL синтезируется netlist - по сути, тупо раскрываются все модули (аналогично подстановке макросов, наприме, в препроцессоре Си, или, например, агрессивному инлайну), вплоть до выбранной элементной базы (так называемой cell library). В результате получаются логические элементы и прочие элементарные устройства, соединенные абстрактными проводами.

После этого начинается самое интересное - place&route. Элементы надо разместить на кристалле, и между ними надо протянуть провода, и при этом надо присосаться к разведенной уже по кристаллу сети тактового генератора и питания, прицепиться к имеющимся выходам (тем, к которым ножки припаяют), задействовать минимальное количество слоев разводки проводов, и вписаться в заданные констрейны по максимальной возможной тактовой частоте (то есть, по максимально допустимой задержке на самом длинном critical path).

Полностью автоматизировать этот процесс пока никто не умеет, и автоматическому place&route должен помогать специально обученный сумасшедший человек.

anonymous
()
Ответ на: комментарий от emulek

я точно не знаю, извини.

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

какая разница? ASIC просто специальная схема

В жаргоне электронщиков, ASIC - это вообще любая схема в кремнии, которая чуть более специальная чем микросхемы 155-й серии.

anonymous
()
Ответ на: комментарий от anonymous

Из вручную нарисованной cell library

AFAIK их печатают. На бумажке. Не?

emulek
()
Ответ на: комментарий от Erfinder

Ну так vtr это умеет, на примитивном уровне.

anonymous
()
Ответ на: комментарий от anonymous

и автоматическому place&route должен помогать специально обученный сумасшедший человек.

и где таких находят/обучают? :)

Harald ★★★★★
()
Ответ на: комментарий от Harald

и автоматическому place&route должен помогать специально обученный сумасшедший человек.

и где таких находят/обучают?

если я его правильно продетектил, то ты с таким и общаешься (:

emulek
()
Ответ на: комментарий от Harald

и где таких находят/обучают? :)

Во всяких там Интелах и Самсунгах, лет по двадцать учат.

anonymous
()
Ответ на: комментарий от Erfinder

фоторезистом наносят слой и лазером пропекают, в двух словах не написать

res2500
()

На счет того как создают сами процессоры:

  • Топология микросхемы описывается на Verilog/VHDL
  • Также микросхема может быть описана на специальном уникальном языке описания топологии
  • Каждая фабрика производства микросхем имеет технические спецификации с описанием технологических ограничений
  • Спроектированная топология (читай файл с описанием слоев) проверяется с помощью специального САПР (проверка электрических правил, проверка технологических ограничений)

Физическое производство знаю на таком уровне как и ты. Топология микросхемы - это просто файл, который после всех верификация, грубо говоря печатают.

amazpyel ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.