Есть ли в мире место для другой конструкции ЦП? Давайте разберемся.

Мне нравится изобретать велосипед. Я хочу посмотреть, есть ли другой способ сделать то, что уже было сделано, даже если это не обязательно самый практичный вариант. Я также упомянул о своей любви к процессорам серии RCA 180x и о своем желании перенести процессор в 21 век. Но я хочу сделать что-то действительно необычное. Итак, я начинаю путешествие по кроличьей норе разработки необычного процессора. Хотите следовать?

Некоторыми из ключевых особенностей процессора 1802 являются регистры оперативной памяти и относительная простота набора инструкций. Я хочу расширить понятие блокнотных регистров, а также максимально упростить набор инструкций, добавляя в процессор некоторые странные элементы. Один из аспектов набора инструкций, который мне нравится, заключается в том, что большинство кодов операций можно разбить на два компонента: компонент I и компонент N, где компонент I в основном управляет типом операции, а компонент N в основном управляет регистром блокнота. используется (Комплект инструкций 1802 г.). Я хотел бы в значительной степени сохранить эту идею в новом дизайне.

Идеи дизайна

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

Двумерные слова

Первая идея архитектурного дизайна, которая у меня возникла, заключалась в том, что, поскольку мы имеем дело с большим блокнотом, в него можно включить двумерные блоки. Я думаю, что уже есть архитектуры процессоров, которые работают с данными таким образом. Может быть, если есть 65536 регистров, их можно разделить на блоки, которыми можно манипулировать? Даже обычный регистр данных, аккумулятор, математические процедуры и т. д. могут быть определены на уровне блоков.

Но я думаю, что количество необходимых транзисторов было бы довольно абсурдным. Даже если у нас есть только размер блока 8 байт на 8 байт, нам все равно понадобится 512-битная шина, если мы собираемся передавать все данные сразу. Мы только что увидели, как высокопроизводительные графические процессоры переходят на 512-битную шину памяти. И на самом деле я хотел бы иметь блок побольше: желательно не менее 16 x 16. Но я мог бы иметь 512-битную шину и работать с блоками 8 x 8 по умолчанию, при этом операции с блоками 16 на 16 занимают в 4 раза больше. машинные циклы.

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

Если я придерживаюсь этой идеи, слово, которое является базовой единицей данных для архитектуры ЦП, будет состоять из 512 бит, однако, что не менее важно, это будет матрица байтов 8x8, а не линейная единица. Хотя программное обеспечение может эмулировать эту архитектуру, я думаю, было бы забавно, если бы схема соответствовала конструкции ЦП.

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

Набор инструкций

Как я уже упоминал, я хочу сохранить относительную простоту набора инструкций, который можно найти в 1802. Поэтому я хотел бы, по существу, оставить сегмент I в покое и добавить сегмент B для определения операций на уровне блоков и сегмент M для управления выбором блока.

К сожалению, Medium не поддерживает нативные таблицы, поэтому сегодня я не буду пытаться напечатать весь набор инструкций и не буду его полностью ограничивать. Однако рассмотрим инструкцию 80 (GLO 0) 1802 года, которая передает младший байт из первого регистра оперативной памяти и загружает его в регистр данных (аккумулятор).

Расширенная операция может быть 8139. Единица будет означать, что я хочу выполнять операции на уровне блоков в верхней половине блока 16x16, а 8, которая обращается к младшему байту, теперь будет указывать, что я хочу получить доступ к первой половине блока. тот сегмент. Между тем, 39 указывает, что мы хотим выбрать слово из блока, расположенного в 3-м столбце и 9-й строке.

Для наглядности (извините, я не силен в создании диаграмм, диаграмм и т. д.):

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

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

‹ Master Index|Технология|

Дальнейшее чтение