vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2012-10-29 02:53 pm

Moxie: 32-битная процессорная архитектура

Инженерная мысль не стоит на месте, и это радует.  Неожиданно для себя обнаружил на просторах интернета новую замечательную идею: Moxie.
  • 32-битная процессорная архитектура, свободная от патентов.
  • Простой 16-битный набор инструкций.
  • Поддерживается компилятором GCC, начиная с 4.6.1.  Собственно, архитектура и разрабатывалась как максимально удобная для GCC.
  • MoxieLite: реализация для FPGA.
  • Есть версия ядра Linux.
  • Симулятор QEMU.
  • Отладчик GDB.
Весь софт здесь: MoxieDev.
spamsink: (Default)

[personal profile] spamsink 2012-10-29 10:02 pm (UTC)(link)
Есть версия ядра Linux.

All of the opcode space not consumed by the encodings below is filled with the bad instruction (which will eventually cause an exception once exceptions have been implemented).

Что-то я не понял насчет exceptions.

started with a non-pipelined VHDL implementation

Да чтоб им пусто было с их VHDL-ом.
(deleted comment)
spamsink: (Default)

[personal profile] spamsink 2012-10-30 12:42 am (UTC)(link)
Он чрезмерно многословен.
(deleted comment)
spamsink: (Default)

[personal profile] spamsink 2012-10-30 12:53 am (UTC)(link)
Я - нет, но мне иногда приходится вглазную его читать. По сравнению с Верилогом - как по болоту ходить.
(deleted comment)
spamsink: (Default)

[personal profile] spamsink 2012-10-30 12:58 am (UTC)(link)
Есть, но написанию хорошего синтезируемого кода это только вредит.
(deleted comment)
spamsink: (Default)

[personal profile] spamsink 2012-10-30 01:56 am (UTC)(link)
Ну да, а потом этот код берет кто-нибудь другой и думает, что раз этот код хорошо симулируется, то и для синтеза послужит, а потом удивляется, что не так. Порой чувствуешь себя как работник прачечной, куда принесли персидский ковер, чтобы его постирали и накрахмалили.
(deleted comment)
spamsink: (Default)

[personal profile] spamsink 2012-10-30 02:01 am (UTC)(link)
Какую характерную возможность VHDL ты использовал для достижения элегантности и эффективности?
(deleted comment)
spamsink: (Default)

[personal profile] spamsink 2012-10-30 02:10 am (UTC)(link)
Так и в верилоге можно иметь сигналы произвольных типов, включая плавающую точку. Видимо, наличие открытого софта, умеющего симулировать VHDL, повлияло?
(deleted comment)
spamsink: (Default)

[personal profile] spamsink 2012-10-30 02:23 am (UTC)(link)
Можно было с 1995 года:
module top;
event foo;
always @foo $display("foo");
initial repeat (5) #1 -> foo;
endmodule

печатает foo 5 раз.
(deleted comment)
spamsink: (Default)

[personal profile] spamsink 2012-10-30 02:29 am (UTC)(link)
repeat (5) значит "повторить 5 раз".
Уродство-не уродство, а на VHDL аналогичная программа будет в несколько раз длиннее - попробуй написать два процесса, один из которых посылает асинхронный сигнал 5 раз, а другой принимает и что-нибудь печатает.

Много лет назад, когда уже были споры, какой язык лучше (видимо, как раз когда вышел стандарт верилога-95), какой-то журнал провел эксперимент - собрал несколько верилоговских и ВХДЛовских дизайнеров и попросил их написать по спецификации и отладить какое-то простое устройство, то ли UART, то ли ALU, то ли еще что-то подобное на уровне сложности до сотни строк. Верилоговцы справились гораздо быстрее.
(deleted comment)
spamsink: (Default)

[personal profile] spamsink 2012-10-30 02:49 am (UTC)(link)
Не актуально тебе словосочетание "time to market", сразу видно.
(deleted comment)
spamsink: (Default)

[personal profile] spamsink 2012-10-30 02:51 am (UTC)(link)
О том и речь.
(deleted comment)
(deleted comment)
(deleted comment)

[identity profile] lionet.livejournal.com 2012-10-30 02:38 am (UTC)(link)
Я так понял, что VHDL супротив Verilog — это как C против шелла. Налабать что-то быстрее на верилоге можно, но строить сложные системы — уже не очень. Пользовательских типов нет, enumerations нет, модульности и пэкеджинга нет, etc.

Я не настоящий сварщик, просто прочитал comparisons.
spamsink: (Default)

[personal profile] spamsink 2012-10-30 02:50 am (UTC)(link)
Эти сравнения нужно в топку. Всё перечисленное есть в System Verilog.

[identity profile] tim-caper.livejournal.com 2012-10-30 05:50 am (UTC)(link)
Сомнительный комплимент. Всё настолько плохо?

[identity profile] hogzie.livejournal.com 2012-10-30 12:18 am (UTC)(link)
Не понял, почему архитектура 32-битная, а инструкции 16-ти битные.
spamsink: (Default)

[personal profile] spamsink 2012-10-30 01:01 am (UTC)(link)
Чем компактнее код, тем меньше циклов памяти тратится на выборку команд, ускоряя выполнение программы.

[identity profile] hogzie.livejournal.com 2012-11-06 11:35 pm (UTC)(link)
Про выборку - не факт. Зависит от размера шины. Остальное понятно, я невнимательно прочитал описание.

[identity profile] teewoon.livejournal.com 2012-10-30 10:51 am (UTC)(link)
MIPSx14x вроде как тоже =)

[identity profile] b0p0h0k.livejournal.com 2012-10-30 02:53 am (UTC)(link)
All instructions are 16-bits long. Some 16-bit instructions are followed by a 32-bit immediate value.

Ой!

[identity profile] raydac.livejournal.com 2012-10-30 03:30 am (UTC)(link)
напомнило pdp-11

[identity profile] mtve.livejournal.com 2012-10-30 10:54 am (UTC)(link)
наверное имелось в виду, что почти такая-же изящная, в отличие от того-же AMD64, IMHO.

[identity profile] dip-au.livejournal.com 2012-10-30 05:36 pm (UTC)(link)
тогда уж LSI-11 скорее, извиняюсь =))
Edited 2012-10-30 17:38 (UTC)

[identity profile] mandrykin.livejournal.com 2012-10-30 11:15 am (UTC)(link)
Какое интересное обсуждение получилось. А можно уточнить, MMU в Moxie присутствует и если да, то какие размеры страниц поддерживает? Спасибо.