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

Date: 2012-10-29 22:02 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Есть версия ядра 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-ом.

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

Date: 2012-10-30 00:42 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Он чрезмерно многословен.

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

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

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

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

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

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

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

печатает foo 5 раз.

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

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

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

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

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

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

Date: 2012-10-30 02:51 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
О том и речь.

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

Ой!

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

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

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

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

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

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

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