Какие бывают типы компьютерных архитектур?

Я просматриваю книгу «Элементы вычислительных систем». Эта книга учит, как собрать целый компьютер с нуля. Пока я просто просматривал главы по компьютерной архитектуре, я заметил, что все они сосредоточены на архитектуре фон Неймана. Мне просто было любопытно, что это за другие архитектуры, когда и где они используются.

Я знаю только о двух: одна — фон Нейман, а вторая — Гарвард. Также я знаю о RISC, который используется в uC AVR.


Существует много различных архитектур компьютеров.

Один из способов категоризации компьютеров Архитектура определяется количеством инструкций, выполняемых за такт. Многие вычислительные машины читают одну инструкцию за раз и выполняют ее (или они прилагают много усилий, чтобы действовать , как если бы они это делали, даже если внутренне они делают причудливые суперскалярные и нестандартные вещи). Я называю такие машины машинами фон Неймана, потому что все они имеют узкое место фон Неймана. Такие машины включают архитектуры CISC, RISC, MISC, TTA и DSP. включают в себя накопительные машины, регистровые машины и стековые машины. Другие машины читают и выполняют несколько инструкций одновременно (VLIW, суперскаляр), что нарушает ограничение одной инструкции на такт, но все же в некоторых случаях попадает в узкое место фон Неймана. несколько большее количество инструкций за такт. Однако другие машины не ограничены узким местом фон Неймана, потому что они предварительно загружают d все свои операции один раз при включении питания, а затем обрабатывают данные без дальнейших инструкций. Такие машины не-фон Неймана включают в себя архитектуры потока данных, такие как систолические архитектуры и клеточные автоматы, часто реализованные с помощью ПЛИС, и суперкомпьютер NON-VON. /p>

Другой способ категоризации компьютерных архитектур — это соединение (я) между ЦП и памятью. Некоторые машины имеют единую память, так что один адрес соответствует одному месту в памяти, и когда это память — это ОЗУ, можно использовать этот адрес для чтения и записи данных или загрузить этот адрес в счетчик программ для выполнения кода. Я называю эти машины машинами Принстона. Другие машины имеют несколько отдельных пространств памяти, так что счетчик программ всегда относится к «программной памяти», независимо от того, какой адрес загружен в него, а обычные операции чтения и записи всегда идут в «память данных», которая — это отдельное место, обычно содержащее различную информацию, даже если биты адреса данных совпадают с битами адреса памяти программ. Эти машины являются «чистыми гарвардскими» или «модифицированными гарвардскими» машинами. Большинство DSP имеют 3 отдельные области памяти. — ОЗУ X, ОЗУ Y и программная память. DSP, Princeton и машины с двумя памятью Harvard — это три различных типа машин фон Неймана.. Некоторые машины используют преимущества чрезвычайно широкой связи между памятью и вычислениями, которая возможна, когда они оба находятся на одном и том же чипе — вычислительной оперативной памяти, iRAM или CAM RAM, — что можно рассматривать как своего рода машину не по фон Нейману.

Некоторые люди используют узкое определение «машины фон Неймана», которое не включает машины Гарварда. Если вы один из этих людей, то какой термин вы бы использовали для более общего понятия «машина, имеющая узкое место по фон Нейману», которое включает машины Гарварда и Принстона и исключает НЕ-ВОН?

Большинство встраиваемых систем используют архитектуру Гарварда. Некоторые ЦП являются «чистыми Гарвардскими», что, возможно, является самой простой схемой для встраивания аппаратного обеспечения: адресная шина к программной памяти только для чтения подключена исключительно к счетчику программ, такие как многие ранние Microchip PICmicros. Некоторые модифицированные машины Гарварда, кроме того, также помещают константы в память программ, которые могут быть прочитаны с помощью специальной инструкции «считывать постоянные данные из памяти программ» (отличной от инструкции «чтения из памяти данных») .Программное обеспечение, работающее в вышеупомянутых типах гарвардских машин, не может изменять программную память, которая фактически является ПЗУ для этого программного обеспечения. Некоторые встроенные системы являются «самопрограммируемыми», обычно с программной памятью во флэш-памяти и специальным «стирающим блоком флэш-памяти объем памяти «инструкция и специальная инструкция» блока записи во флеш-память «(отличная от обычной инструкции» запись в память данных «) в дополнение к инструкции» чтение данных из памяти программ «. Несколько более поздних микроконтроллеров Microchip PICmicro и Atmel AVR являются собственными -программируемые модифицированные машины Гарварда.

Другой способ категоризации ЦП — по их часам. Большинство компьютеров синхронны — у них есть единые глобальные часы. Несколько ЦП асинхронны — у них нет часы, включая ILLIAC I и ILLIAC II, которые в свое время были самыми быстрыми суперкомпьютерами на земле.

Пожалуйста, помогите улучшить описание всех видов компьютерных архитектур на http://en.wikibooks .org/wiki/Microprocessor_Design/Computer_Architecture.


$ begingroup $

CISC — это «противоположность» РИНЦ. В то время как RISC предпочитает простые инструкции, которые компилятор может легко оптимизировать, и часто одинаковый размер, CISC предпочитает сложные инструкции различного размера.

Например, команда pop в CISC изменит указатель стека и поместите данные из стека в другой регистр. Однако процессор RISC будет читать данные с помощью одной инструкции, а затем изменять указатель стека с помощью второй инструкции. (обычно; есть некоторые исключения, например, PowerPC, который может обновлять указатель стека и передавать данные в стек, но это исключение)

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

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

$ endgroup $


CISC — это «противоположность» RISC. В то время как RISC предпочитает простые инструкции, которые компилятор может легко оптимизировать, и часто одинаковый размер, CISC предпочитает сложные инструкции различного размера.

Например, команда pop в CISC изменит указатель стека и поместите данные из стека в другой регистр. Однако процессор RISC будет читать данные с помощью одной инструкции, а затем изменять указатель стека с помощью второй инструкции. (обычно; есть некоторые исключения, например, PowerPC, который может обновлять указатель стека и передавать данные в стек, но это исключение)

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

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


$ begingroup $

Ну, есть что-то вроде ENIAC, где у вас есть по существу индивидуальные ALU, и вы «программируете» их, подключая выход one alu на вход другого alu, который собирался выполнить следующую операцию с этой промежуточной переменной. Ваши «регистры» и хранилище — это провода, соединяющие alus.

Недавно я купил книгу «Первые компьютеры — История и архитектура (История вычислительной техники)», которая частично посвящена именно этому тема. Я не рекомендую покупать эту книгу, хотя это всего лишь собрание научных статей, которые трудно читать, и я подозреваю, что они, вероятно, опубликованы (бесплатно) в другом месте.. (Я отказался от этого, прежде чем закончить введение)

Как только память была изобретена и стала практичной, мы как бы остановились на двух популярных — Фон Нейман и Гарвард. Выполнение из перфокарт, перфокарт, бумажной ленты и тому подобного стало менее практичным. И есть основанный на стеке (например, zpu), который, как я подозреваю, вероятно, попадает в категорию Гарварда, а не в свою собственную.

А как насчет платформ фон Неймана, которые загружаются только для чтения (в нормальное использование) флэш на одном интерфейсе памяти и иметь ОЗУ для чтения/записи в другом (который иногда может работать на обоих параллельно), но с точки зрения программ находятся в одном адресном пространстве? Или те, у которых несколько внутренних и внешних запоминающих устройств/интерфейсов работают параллельно, но фон Неймана находятся в одном адресном пространстве.

И что хорошего в платформе Harvard, где процессор не может получить доступ к инструкции память как данные, чтобы изменить/обновить загрузчик или загрузчик загрузил следующую программу для запуска? Почему это не архитектура фон Неймана? Процессор, выполняющий и работающий с одной и той же памятью на том же интерфейсе, вероятно, последовательно (выборка инструкций и запись в память не происходят одновременно)?

Две популярные архитектуры на основе памяти больше близко, чем они отличаются в текущих реализациях IMO.

Куда падают GPU? Или бизнес, в котором я работаю, сетевые процессоры (NPU). Там, где у вас есть эти относительно небольшие микродвигатели (процессоры) специального назначения, которые выполняются из гарвардской программной оперативной памяти (адресуемой, но вы просто не хотите этого делать по соображениям производительности), работают с различными модулями данных, каждый из которых имеет собственное отдельное адресное пространство (отдельный процессор инструкции для каждого пространства), (пространства памяти, работающие параллельно), и через эти плунжеры передают промежуточные данные, чтобы следующее вычисление выполнялось следующим микродвигателем в проводной alu (eniac) манере? Как бы вы это назвали? Являются ли npus и gpus просто модными модифицированными гарвардскими архитектурами?

$ endgroup $


Ну, есть что-то вроде ENIAC, где по сути отдельные ALU, и вы «запрограммировали» их, подключив выход одного alu ко входу другого alu, который собирался выполнить следующую операцию с этой промежуточной переменной. Ваши «регистры» и хранилище — это провода, соединяющие alus.

Недавно я купил книгу «Первые компьютеры — История и архитектура (История вычислительной техники)», которая частично посвящена именно этому тема. Я не рекомендую покупать эту книгу, хотя это просто сборник научных статей, которые трудно читать и, возможно, опубликованы (бесплатно) в другом месте. (Я отказался от этого, прежде чем закончить введение)

Когда память была изобретена и стала практичной, мы как бы остановились на двух популярных — фон Нейман и Гарвард.. Выполнение из перфокарт, перфокарт, бумажной ленты и тому подобного стало менее практичным. И есть основанный на стеке (например, zpu), который, как я подозреваю, вероятно, попадает в категорию Гарварда, а не в свою собственную.

А как насчет платформ фон Неймана, которые загружаются только для чтения (в нормальное использование) флэш на одном интерфейсе памяти и иметь ОЗУ для чтения/записи в другом (который иногда может работать на обоих параллельно), но с точки зрения программ находятся в одном адресном пространстве? Или те, у которых несколько внутренних и внешних запоминающих устройств/интерфейсов работают параллельно, но фон Неймана находятся в одном адресном пространстве.

И что хорошего в платформе Harvard, где процессор не может получить доступ к инструкции память как данные, чтобы изменить/обновить загрузчик или загрузчик загрузил следующую программу для запуска? Почему это не архитектура фон Неймана? Процессор, выполняющий и работающий с одной и той же памятью на том же интерфейсе, вероятно, последовательно (выборка инструкций и запись в память не происходят одновременно)?

Две популярные архитектуры на основе памяти больше близко, чем они отличаются в текущих реализациях IMO.

Куда падают GPU? Или бизнес, в котором я работаю, сетевые процессоры (NPU). Там, где у вас есть эти относительно небольшие микродвигатели (процессоры) специального назначения, которые выполняются из гарвардской программной оперативной памяти (адресуемой, но вы просто не хотите этого делать по соображениям производительности), работают с различными модулями данных, каждый из которых имеет собственное отдельное адресное пространство (отдельный процессор инструкции для каждого пространства), (пространства памяти, работающие параллельно), и через эти плунжеры передают промежуточные данные, чтобы следующее вычисление выполнялось следующим микродвигателем в проводной alu (eniac) манере? Как бы вы это назвали? Являются ли npus и gpus просто модными модифицированными гарвардскими архитектурами?


$ begingroup $

И фон Нейман, и Гарвард архитектуры могут использоваться с процессорами RISC, такими как AVR и ARM. AVR использует Гарвард, тогда как некоторые чипы ARM используют фон Неймана, а некоторые используют Гарвард.

$ endgroup $


Архитектура фон Неймана и Гарварда может использоваться с процессорами RISC, такими как AVR и ARM. AVR использует Гарвард, тогда как некоторые чипы ARM используют фон Неймана, а некоторые используют Гарвард.

Оцените статью
techsly.ru
Добавить комментарий