LINUX.ORG.RU
ФорумTalks

Каким должен быть хороший RISC процессор? Как вам такая схема?

 , , ,


0

2

Каким должен быть хороший RISC процессор? Как вам такая схема? Насколько такой процессор будет производительным?

Процессор должен иметь команды 2 типов.

  • Память-регистр. Считывание из памяти в регистр и запись из регистра в память.
  • Операции между регистрами.

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

Таким образом каждая команда это квартет 8 битных кодов.Первый код означает тип вычислительного блока. Второй, третий и четвёртый содержат номера 64 разрядных регистров которые будут подключены ко входам и выходам блока. Всего их максимум 3.

Для работы с дробными и целыми числами которые имеют длину 128 бит, шина между регистром и блоком имеет ширину 128 бит. Первые 64 бита берутся из указанного регистра, а вторые 64 бита берутся из следующего по счёту.

Последовательно записанные в памяти команды будут на этапе компиляции разделены нулевым оператором. Все команды находящиеся между 2 нулевых операторов по возможности будут выполнены одновременно с максимальным использованием доступных функциональных блоков и селекторов.

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

Дабы упростить переключатели ввода-вывода операционных блоков, их следует сделать 8 ступенчатыми.

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

Естественно порядок выполнения команд и расстановка нулевых операторов осуществляется компилятором.

Так же в процессоре должна быть аппаратная поддержка циклов.

Каким должен быть хороший RISC процессор?

Хороший риск-процессор должен способствовать скорейшему освобождению пролетариата от гнёта буржуазии.

ya-betmen ★★★★★
()

У тебя есть какие-либо представления о том, как оно реально устроено в железе?
Ты имеешь представление про ОоО, суперскалярность, спекулятивность, ренейминг регистров и прочие фичи современных риск процов?

Deleted
()
Последнее исправление: SMD (всего исправлений: 1)
Ответ на: комментарий от Deleted

Ты имеешь представление про ОоО, суперскалярность, спекулятивность, ренейминг регистров и прочие фичи современных риск процов?

Смутное. Поэтому и спрашиваю.

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

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

Deleted
()
Последнее исправление: SMD (всего исправлений: 1)

и какой у этого твоего процессора будет размер команды?

Что в нём принципиально нового?

Harald ★★★★★
()

Процессор должен иметь команды 2 типов.

А как насчет команд передачи управления?

Deleted
()

Рез12, вот скажи, как тебе такие идеи приходят?

ARM объестся уже не одно десятилетие, а производительность в перде.

Остался один risc - oracle sparc
подкинь им идейку.

Deleted
()

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

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

Это как?

Полагаю, что-то типа DJNZ в Z80. Не нужно.

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

А как насчет команд передачи управления?

Ты имеешь ввиду условный переход или прерывание?

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

Рез12, вот скажи, как тебе такие идеи приходят?

Легко, у меня творческий взгляд на окружающий мир.

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

Это как?

Процессор при помощи флагового бита в 0 регистре входит в специальный режим в котором часть регистров общего назначения становиться регистрами контролирующими выполнение цикла. Счётчик, условие счётчика, адрес итерации, адрес выхода.

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

Тогда перерисовывай советские мультики.
Будет успех.

А ты в процики полез.
чем ты лучше работников оракла/арм?

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

Окей ._.
У тебя будут поддерживаться циклы только вида for (i = 0; i < 100500; ++i)? А как насчет while(list->next) {}?
Кончай страдать херней и начинай ботать.

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

man branch prediction в современных железках, они ушли куда дальше.

Deleted
()

Я такой же чайник как и ты, поэтому скажу. Кэш не нужен, делай сразу ОЗУ быстродействующим. На мемристорах каких-нибудь или на MRAM. Во-вторых, если шина между регистром и блоком - 128 бит, то никаких 8-бит блоков не нужно, машинное слово у тебя будет 128 бит, всем будет проще. Сразу оперируй 128 битными командами, 128 битными типами и т.д. Типы меньшей размерности в твоём мире не нужны, а если нужны, их легко эмулировать. А так - если загоняться на производительности, т.е. если ему частоту сделать в 20-30 Мгц, думаю, может, реально заработать. Ведь увеличение разрядности шин автоматически ведёт к неиллюзорным технологическим проблемам.

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

У тебя будут поддерживаться циклы только вида for (i = 0; i < 100500; ++i)? А как насчет while(list->next) {}?

Я слабо с синтаксисом cpp знаком, list->next в данном случае что означает?

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

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

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

Во-вторых, если шина между регистром и блоком - 128 бит, то никаких 8-бит блоков не нужно, машинное слово у тебя будет 128 бит, всем будет проще. Сразу оперируй 128 битными командами, 128 битными типами и т.д.

Не смог себе это предствить

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

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

Такое всё равно не получиться оптимизировать в одновременный код. Лучше массив использовать.

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

Ты для этого процессора систему охлаждения проектировал?

Да. Прототип изготовил, но у него много проблем. Скоро буду второй прототип изготавливать методом литья.

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

Типа такого?

Нет. Я имел ввиду всего лишь селекторы подключающие регистры к блокам. Например регистры 5 и 18 подключаются на входы целочисленного сумматора, а регистр 6 подключается на выход, команда суммирование кодируется единицей. Тогда в шестнадатиричной системе счисления такая команда будет выглядеть так

01051206
команда будет иметь длину 32 бита и все команды не разделённые нулевым оператором будут по возможности выполняться одновременно.

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

Я не могу сдержаться и не спросить: ты про пайплайн слышал? Имеешь базовые представления о цифровой электронике, чтобы рассказать мне, как ты такой замечательный регистровый файл запилишь? Что и как ты будешь делать, когда придется делать шедоу регфайл?

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

Хватит бросаться баззвордами. Тебе суть идеи объясняют, а ты в какие-то детали зарываешься. Мысли шире.

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

Товарищ хочет подключить регфайл напрямую к АЛУ, я предлагаю посчитать, какой лейтенси будет у такой схемы и сравнить с тем, что делают сейчас.

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

Что и как ты будешь делать, когда придется делать шедоу регфайл?

Это как? Ты имеешь ввиду подмену регистров для виртуализации?

ты про пайплайн слышал?

Какой именно? UNIX-сокеты?

rezedent12 ☆☆☆
() автор топика

Тред не читал.

должен иметь команды 2 типов

И сразу фэйл.

Так же у процессора должна быть явная команда подготовки перехода

Зачем? Алсо уже есть механизмы предсказания переходов.

аппаратная поддержка циклов

емнип раньше на каких-то процессорах была такая команда, но не взлетело и ее выпилили.

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

ymn ★★★★★
()

Так же в процессоре должна быть аппаратная поддержка циклов.

Можно грабить корованы.

Puzan ★★★★★
()

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

nvidia
()

Я так понимаю, что YobaCooler не встает ни на один существующий сокет, и творец решил создать новый YobaCPU (из шприцов и пластилина для совместимости)?

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

Я так понимаю, что YobaCooler не встает ни на один существующий сокет

Вообще то нормально он на AM сокетах становиться и на LGA с соответствующим переходником тоже.

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

блииин, прочитал как
ЦПУ становится сразу в 2 сокета :-)

ладно, ты не злобствуй на нас.

но не будет уже новых ЦПУ, слишком дорого и всё уже почти испробовали.

чтобы тебе не портить настроение совсем, лови ссыль

http://ko.com.ua/odnokorpusnyj_rekonfiguriruemyj_gibrid_114719

Deleted
()

Хорошую архитектуру RISCом не назовут.

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

Так же процессор должен иметь 255 регистров

255 регистров хватит всем!

Их хватит на долго. А вообще если когда нибудь сделают мультики-парралельную шину памяти, то регистры будут не нужны.

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