Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Программная инженерия > Микроконтроллеры, робототехника, схемотехника, 3D принтеры
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2015, 15:50   #1
almandrykin
Пользователь
 
Регистрация: 09.02.2015
Сообщений: 31
По умолчанию Приглашаю обсудить новую архитектуру

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

Прототип процессора существует нв языке Verilog и работает на плате Марсоход2 (с ПЛИС Altera). Кроме прототипа процессора существует и транслятор ассемблера. Процессор использует оригинальную, ни с чем несовместимую систему команд, близкую к CISC архитектуре.

На несколько традиционных вопросов попытаюсь ответить сразу. Зачем? Была необходимость расширишить любой из существующих процессоров некоим специализированным блоком (грубо говоря - сопроцессором, но не математическим. Об это позже). После изучения нескольких десятков проектов ("самопальные" x8086, ARM, Sparc, AVR на http://opencores.org) показалось что добавление "своего сопроцессора" в существующий дизайн по трудозатратам соизмеримо с разработкой процессора с нуля. Т.ч. давайте в этой теме больше не касаться вопроса "зачем".

В общем, я и мои коллеги, разработали оригинальную систему команд и попытались её воплотить ПЛИС (FPGA). Преимуществами нашей системы команд являются высокая плотность кода и расширяемость. Также мы использовали множество трюков при разработке системы команд, часть из которых скрыли макросами Ассемблера. Интересно? Задавайте вопросы, а я с превеликой радостью на них отвечу. В одном лишь можно быть абсолютно уверенным - этот процессор содержит массу "вкусных" решений и массу спорных решений.

Кстати, нам важна не столько реклама нашей разработки (разумеется, для рекламы есть сотня более надёжных способов, чем тема от вновь зарегистрированного пользователя), сколько критика и, возможно, некоторые идеи от специалистов. В подтверждение этих слов я не стал публиковать ссылку на сайт проекта - если интереса (или критики) с вашей стороны не будет, то не будет и ссылок.
almandrykin вне форума Ответить с цитированием
Старый 09.02.2015, 16:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

У-у-у... Сейчас пИтрасяны набегут. Ну держись )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.02.2015, 17:17   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Информации недостаточно. Группы команд хоть скажите какие есть. Адресация? Все это совместимо с существующими стандартами? В смысле на аппаратном уровне?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 09.02.2015, 17:56   #4
almandrykin
Пользователь
 
Регистрация: 09.02.2015
Сообщений: 31
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Информации недостаточно. Группы команд хоть скажите какие есть. Адресация?
32-х раздрядный микропроцессор
16 регистров общего назначения

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

Управление стеком и некоторыми операциями организовано через макрос.

Размерность машинных инструкций от 1 до 5 байт.
Для упрощения декодирования инструкции сгруппированы таким образом, что их размер однозначно декодируется по первому байту.

Виртуальная память - в разработке.
Аппаратная поддержка многозадачности - в разработке.

Цитата:
Все это совместимо с существующими стандартами?
На уровне системы команд совместимость полностью отсутствует. Система команд написана с "чистого листа". В остальном - проблем совместимости нет. Есть проблема компилятора, но мы решаем её.

Цитата:
В смысле на аппаратном уровне?
Простите, не понял вопроса. Если имеется в виду совместимость со стандартом Wishbone, то, увы, в настоящий момент такой совместимости нет.

Информацию о системе команд готовлю.

Последний раз редактировалось almandrykin; 09.02.2015 в 18:01.
almandrykin вне форума Ответить с цитированием
Старый 09.02.2015, 20:16   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
только косвенная через регистр.
Т.е. относительной адресации нет?
Если мне нужно сделать прыжок я должен буду четко знать в какую ячейку памяти прыгать?
Цитата:
Управление стеком и некоторыми операциями организовано через макрос.
Под словом "Макрос" что имеется ввиду?
Цитата:
В остальном - проблем совместимости нет.
Если брать бытовой вариант, то в какой сокет можно всунуть этот процессор?
Или под него своя матринская нужна?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.02.2015, 20:34   #6
almandrykin
Пользователь
 
Регистрация: 09.02.2015
Сообщений: 31
По умолчанию

Спасибо за терпение. Я поместил карту системы команд в таблицу. Надо было сделать это раньше, но вот руки доши. Кликабельно для полного размера.




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

Цитата:
Сообщение от Stilet Посмотреть сообщение
Под словом "Макрос" что имеется ввиду?
Вот эти инструкции реализованы с помощью макросов - таких инструкций в системе команд нет:

Код:
	// Макро инструкции
	{"LEA",		parse_load_address	},
	{"CALL",	parse_function_call	},
	{"PUSH",	parse_push	},
	{"POP",		parse_pop	},
Цитата:
Если брать бытовой вариант, то в какой сокет можно всунуть этот процессор?
Или под него своя матринская нужна?
Нет нет. В сокет его не засунуть. Его можно поместить, например, вот сюда: http://marsohod.org/index.php/prodmarsohod2

Последний раз редактировалось almandrykin; 09.02.2015 в 20:51.
almandrykin вне форума Ответить с цитированием
Старый 09.02.2015, 20:50   #7
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

А для дураков можно сказать в чем преимущества относительно х86, например?
Какой-то тип операций быстрее будет выполняться там или под это дело проще и дешевле процессоры делать,...?
pu4koff вне форума Ответить с цитированием
Старый 09.02.2015, 21:14   #8
almandrykin
Пользователь
 
Регистрация: 09.02.2015
Сообщений: 31
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
А для дураков можно сказать в чем преимущества относительно х86, например?
Я практически уверен, что в данном форуме умные люди общаются.

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

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

Если говорить о перспективе, то обратите внимание на иинструкции IDLE, TASK_ID, SEND, RECV, LOCK, FREE, SET_MR, GET_MR - это и есть наше расширение микропроцессора для поддержки многозадачности и возможности обмена синхронными сообщениями. Некоторые из них уже реализованы, некоторые реализуются, некоторые отлаживаются, а некоторые продумываются. Если мы осилим задуманное и доведём работу до конца, то в результате получим процессор с аппаратным синхронным микроядром внутри.

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

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

В общем, благодаря архитектурным решениям, улучшаются следующие характиристики - увеличение скорости переключения задач, уменьшение накладные расходы на дспетчеризацию, уменьшение энергопотребления, уменьшение задержек и времени реакции на событие.
almandrykin вне форума Ответить с цитированием
Старый 09.02.2015, 21:24   #9
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию

Цитата:
Сообщение от almandrykin Посмотреть сообщение
Спасибо за терпение. Я поместил карту системы команд в таблицу. Надо было сделать это раньше, но вот руки доши.
Чесгря, не понял, в чем новизна. Почему код не трехадресный, например? Сходил по ссылке из профиля -- ба, знакомые всё лица! 3OS еще кто-то помнит?
Vapaamies вне форума Ответить с цитированием
Старый 09.02.2015, 21:32   #10
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
У-у-у... Сейчас пИтрасяны набегут. Ну держись )
Набежим, никуда не денемся .
В чём "фишка"? В системе команд? Код, всё-раравно - двочный. Подозреваю, что и архитектура та-же, которой мы пользуемся. Ничего нового. Та-же ж**а, только в профиль.
Цитата:
Сообщение от pu4koff Посмотреть сообщение
АКакой-то тип операций быстрее будет выполняться там или под это дело проще и дешевле процессоры делать,...?
Феликс. Делал всё. Просуществовал 30 лет. Никто не жаловался.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 09.02.2015 в 21:38.
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка программного обеспечения, с кем обсудить? BioWat Общие вопросы по программированию, компьютерный форум 6 06.09.2013 01:05
Как узнать архитектуру процессора на неттопе? qewertyns Компьютерное железо 8 16.04.2013 23:22
Желающим обсудить идею создания он-лайн игры ringu2 Фриланс 0 03.01.2011 17:06
Какую архитектуру выбрать? k376 Помощь студентам 2 23.04.2008 23:57