Среда, 24 Апреля 2024, 13:39

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » Общие обсуждения программистов » Тестируем процессор (начал делать свой процессор в logosim)
Тестируем процессор
05142Дата: Вторник, 15 Ноября 2011, 17:00 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
После недавнего поста на хабре, я начал делать свой процессор в logosim. Делал около 2 - 3 дней, 24 команды, почти все записываются одним байтом.
Вот описание команд


Вот сама схема (там всё намешано, разобраться невозможно)


Какие команды добавить? И пишите свои программки для него, протестирую.


mecinvader

Сообщение отредактировал 05142 - Вторник, 15 Ноября 2011, 19:00
0x90Дата: Вторник, 15 Ноября 2011, 17:10 | Сообщение # 2
участник
Сейчас нет на сайте
Или команды очень неудобные, или ты все так непонятно расписал. Сделай команды по образу и подобию команд x86 и будет тебе куча программ.
05142Дата: Вторник, 15 Ноября 2011, 17:54 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Тут дело в том, что x86 CISC, а у меня RISC. Команды может быть неудобные, в следующий раз попробую получше сделать. В шеснадцатиричном представлении они понятны для человека.

mecinvader
ZizilkДата: Вторник, 15 Ноября 2011, 18:04 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
А Risc для конкретного устройства работаете или для общего развития, а то насколько помню из курса лекций они быстрее но менее универсалны CISC-ов

Сообщение отредактировал Zizilk - Вторник, 15 Ноября 2011, 18:04
0x90Дата: Вторник, 15 Ноября 2011, 18:16 | Сообщение # 5
участник
Сейчас нет на сайте
Quote (05142)
Какие команды добавить?

Умножение, деление, деление по модулю.
SWFcreatorДата: Вторник, 15 Ноября 2011, 18:34 | Сообщение # 6
участник
Сейчас нет на сайте
Я уж было подумал, что ты собрал его smile , глаза уже выпучил. Для реализации такой схемы, наверно, физика очень серьезная нужна.
PesetsДата: Воскресенье, 20 Ноября 2011, 22:24 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
Тут вспомнил, как я пару лет назад делал на эмуле похожий процессор, правда другой ориентации немного... Решил отписаться)
Что могу посоветовать:
0) Никто просто так писать программы для непонятно какого проца не будет. Ну, может кто-то и будет, но шанс тебе этого кого-то встретить довольно мал. Надо заинтересовать народ. Например, можно устроить мини-конкурс - написать простенькую программу на заданную тему и посмотреть, у кого будет быстрее.
1) Напиши некое подобие компилятора. Достаточно, чтобы он принимал столбик команд наподобие х86 и преобразовывал их в формат команд твоего процессора. Писать код будет в разы удобнее, чем на нех-кодах
2) Расширь адресацию до 16 бит хотя бы. На процессоре с 8-битной адресацией далеко не уедешь.
3) Выставлять схему в виде картинки - имхо бесполезно. Читать ее все равно никто не будет, а преобразовывать во что-то рабочее - тем более. Выложи уж тогда что-нибудь, что можно собрать в эмуляторе и запустить на этом программу.

Quote (05142)
Какие команды добавить? И пишите свои программки для него, протестирую.

Булевые операции (and, or, xor, not), операцию сравнения, операцию условного перехода (соответственно, понадобится флаговый регистр). Еще умножение можно, благо тоже легко делается. Если хочешь стать гуру - сделай деление, будет весело, обещаю)

Quote (Zizilk)
А Risc для конкретного устройства работаете или для общего развития, а то насколько помню из курса лекций они быстрее но менее универсалны CISC-ов

Просто на заметку: RISC'и - вполне себе универсальные процессоры. А то, что почти все современные ЦП (по крайней мере, Intel и AMD) делаются именно на RISC - тому доказательство)

Quote (SWFcreator)
Для реализации такой схемы, наверно, физика очень серьезная нужна.

Нет, на самом деле. Достаточно иметь чип программируемой логики и программатор. Другое дело, что практическое применение такому чуду будет сложно найти.

Алсо, интересует, до какой частоты можно разгонять этот процессор и какие команды по сколько тактов выполняются?



05142Дата: Воскресенье, 20 Ноября 2011, 22:59 | Сообщение # 8
постоянный участник
Сейчас нет на сайте
Quote (Pesets)
Алсо, интересует, до какой частоты можно разгонять этот процессор и какие команды по сколько тактов выполняются?

До скольки разогнать можно не знаю, мой эмулятор может максимум 4,7кГц. Один байт исполняется за 8 тактов (много, да?), так что команда ff pt исполняется за 16 тактов.
Quote (Pesets)
операцию условного перехода

Это есть тут
10 - передача управления по адресу в регистре D
11 - если C == 0 то следующая команда пропускается
Тоесть код перехода на ячейку памяти 53 если C == 0 будет
Code
ff 53 11 10

Quote (Pesets)
Достаточно иметь чип программируемой логики и программатор.

А это идея. Мой работающий реально процессор произведёт впечатление на меня

И ещё, какой эмулятор посоветуете? Сейчас на logosim


mecinvader
PesetsДата: Воскресенье, 20 Ноября 2011, 23:28 | Сообщение # 9
постоянный участник
Сейчас нет на сайте
Quote (05142)
До скольки разогнать можно не знаю, мой эмулятор может максимум 4,7кГц. Один байт исполняется за 8 тактов (много, да?), так что команда ff pt исполняется за 16 тактов.

А, ясно. Просто там начинается веселье, когда начинаешь разгонять на эмуле до скоростей порядка 1ГГц - начинает влиять длина линий между элементами и сила индукции на транзисторах. Естественно, на реальных чипах такую частоту достичь невозможно, но все же)
Команда за 8 тактов - это действительно много для RISC. Идеал - одна команда за такт. Понятно, что команды, работающие непосредственно с памятью не в счет. Равно как и команды типа умножения.
Да, забыл сказать - неплохо было бы побольше регистров. Хотя бы те же 8. Тогда можно будет выполнять простейшие программы без лишних обращений к памяти.
Если я правильно помню, на том процессоре, что я делал, было 7+1 флаговый регистр, а простейшие операции (булевы, сложение, вычитание, сравнение, битовые сдвиги) действительно делались за один такт. С памятью, правда, было все печально.

Quote (05142)
Это есть тут
10 - передача управления по адресу в регистре D
11 - если C == 0 то следующая команда пропускается
Тоесть код перехода на ячейку памяти 53 если C == 0 будет

Не, ну я видел, но мне кажется это чем-то сродне "одевать штаны через голову". Все привыкли к флаговому регистру и условному переходу)

Quote (05142)
А это идея. Мой работающий реально процессор произведёт впечатление на меня

Имхо, напаришься) Хотя, если есть терпение и возможность - дерзай, авось что-нибудь полезное соберешь)

Quote (05142)
И ещё, какой эмулятор посоветуете? Сейчас на logosim

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



Форум игроделов » Программирование » Общие обсуждения программистов » Тестируем процессор (начал делать свой процессор в logosim)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг