[16:35:07] <vаlexey> .
[17:58:03] <vаlexey> гм. забавно. выходит что КАПС в Обероне просто из за того, что Вирту подсветка синтаксиса была нужна, но Ceres изначально имел монохромный двуцветный экран и видеоподсистему. Поэтому Вирт использовал КАПС
[17:58:31] <vаlexey> С учетом того, что современный Оберон-комп опять таки с монохромной видеоподсистемой, то КАПС Вирт не выпилит.
[18:09:44] <geniepro> это не забавно. это печально.
[18:12:22] <vаlexey> еще забавней что из за ограничений по памяти и производительности выделение ключевых слов делается вручную. то есть машиной это проверяется только в момент компиляции.
[18:13:02] <vаlexey> ну, это все равно как если бы в редакторе с подсветкой синтаксиса нужно было бы при наборе ключевого слова наживать скажем Shift чтобы эти буковки цветов выделились.
[18:13:22] <vаlexey> (кстати! а ведь это можно для ББ сделать! там все для этого есть!)
[18:24:14] <vаlexey> гы. на умножение (целочисленное) занимает 2 такта, деление - 32 такта!
[18:24:27] <vаlexey> (в процессоре Вирта)
[18:25:52] <geniepro> а чо так неоптимально?
[18:26:09] <geniepro> а плавающая арифметика там есть?
[18:26:21] <vаlexey> есть
[18:26:31] <geniepro> вапще, если он шёл к риск-архитектуре, то команды у него должны были по такту занимать
[18:26:53] <vаlexey> это не всегда выходит в том числе и у рисков
[18:27:32] <vаlexey> "A second important characteristic is that most instruction takea single clock cycle (25 MHz) for its execution. "
[18:28:02] <geniepro> целочисленное деление в принципе можно сделать так:
конвертируем делимое и делитель в плавающий вид, берём обратное значение 1/делитель, умножаем на делимое, конвертируем обратно в целый вид
[18:28:11] <vаlexey> Собственно в RISC (тех, изначальных, рафинированных и кошерных) решали эту проблему просто - там просто не было операции умножения :-)
[18:28:12] <geniepro> интересно, насколько это тормозно выйдет )
[18:28:41] <vаlexey> Желающие могли реализовать целочисленное деление и умножение ручками, в софте :-)
[18:29:06] <geniepro> это в каким процах так было? мипс? арм? спарк?
[18:29:20] <vаlexey> В некотором роде Oberon (язык) это эдакий RISC среди ЯП :-)
[18:29:40] <vаlexey> не, армы и спарки сильно позже были. они были не кошерными рисками уже :-)
[18:29:50] <vаlexey> "This is an important characteristic of RISC architectures, developed between 1975 and 1985."
[18:30:21] <vаlexey> а, хотя нет. те мипсы и армы как раз таки да. ранние
[18:30:23] <geniepro> оберону быть "риск-языком" мешают расширение записей и сборка мусора
[18:30:35] <vаlexey> "As multiplication is a relatively rare operation – at least in comparison with addition and subtraction – early RISC designs (MIPS, SPARC, ARM) refrained from its full implementation in hardware."
[18:31:20] <vаlexey> сборка мусора - это ж не язык, это рантайм! А в языке просто не определена операция для освобождения памяти. Если тебе нужно - реализуй сам как хочешь :-D
[18:31:26] <vаlexey> Так что в Обероне нет сборки мусора!
[18:32:11] <vаlexey> "Instead, an instruction called multiply step was provided, performing a single add-shift step in one clock cycle."
[18:41:50] <vаlexey> /me качает ISE
[19:17:01] <geniepro> а к этому спартану можно подключать планки памяти типа ddr?
[19:17:45] <geniepro> и кстати, внутренняя память что 1 метр -- работает на той же частоте, что и сам чип? её можно рассматривать как кеш-память?
[19:22:11] <vаlexey> латентность - 10 нс
[19:22:47] <vаlexey> с процессором она работает асинхронно, сколь я помню
[19:23:26] <vаlexey> внешнюю память подключить можно, но лучше не надо :-)
[19:23:40] <vаlexey> это ж FPGA - там все можно.  Только ручками ;-)
[19:25:26] <vаlexey> то есть технически эта память - отдельный чип. это не внутри FPGA-микросхемы
[19:27:12] <geniepro> "A common misunderstanding of the phrase "reduced instruction set computer" is the mistaken idea that instructions are simply eliminated, resulting in a smaller set of instructions. In fact, over the years, RISC instruction sets have grown in size, and today many of them have a larger set of instructions than many CISC CPUs.[19][20] Some RISC processors such as the PowerPC have instruction sets as large as the CISC IBM System/370, for example; conversely, the DEC PDP-8—clearly a CISC CPU because many of its instructions involve multiple memory accesses—has only 8 basic instructions and a few extended instructions." http://en.wikipedia.org/wiki/Reduced_instruction_set_computing
[19:28:41] <geniepro> твой любимый чип вроде как PDP в микросхемке?
[19:28:57] <vаlexey> там разный instruction set как минимум
[19:30:27] <geniepro> блин, когда-то я делал на турбо си 2.0 эмулятор чипа с придуманным мною набором инструкций, он вышел в 20-30 раз медленнее, чем ассемблерная прога (тестировал на сортировке простенькой)
не могу найти исходники...
[19:30:38] <geniepro> де-то на старых дисках наверное
[19:30:43] <vаlexey> блин. выложил бы Вирт верелоговские сырцы что-ли. Ну и общую схему как эти блоки друг с другом стыкуются. То есть весь проект, а не 60 процентов от него.
[19:31:09] <geniepro> да у вирта там наверное всё такое наколеночное, что просто стыдно выкладывать ему )
[19:31:30] <vаlexey> не, наколеночное как раз прямо в книге есть :-)
[19:31:50] <geniepro> значит то что он не выложил -- вообще никому показывать нельзя )))
[19:32:41] <vаlexey> Ну, блин, я до сих пор не понимаю чем clk от clk25 отличается в модуле дисплея
[19:32:51] <vаlexey> и про этот clk25 вообще ни слова
[19:33:33] <geniepro> как и многом в его репорте на язык )
[19:34:01] <geniepro> это его стиль: кто достоин -- сам догадается, кто не догадается -- не достоин )))
[19:36:49] <vаlexey> вот Кроносовцы молодцы - выложили ВСЁ
[19:37:02] <vаlexey> причем вот по исходникам сразу видно, что они проект сделали для двух плат
[19:37:34] <vаlexey> правда там VHDL который я не разумею :-)
[20:45:04] <geniepro> так что, у вирта получается не риск процессор вышел? раз не все его команды выполняются за 1 такт?
[20:47:36] <geniepro> http://ru.wikipedia.org/wiki/Transport_triggered_architecture -- вот они, ленивые вычисления в кремнии:
"Вычисления являются побочным эффектом передачи данных между блоками: запись данных на входной порт (triggering port) функционального устройства приводит к началу их обработки данным устройством."
[20:49:18] <vаlexey> а покажи мне в природе реальный процессор в котором все инструкции за 1 такт :-)
[20:54:26] <geniepro> так вроде были такие, читал когда-то про них
[21:01:15] <vаlexey> в реальности, а не в лабе
[21:01:25] <vаlexey> то есть arm, mips, msp430 не подходят под этот критерий
[21:07:19] <geniepro> http://en.wikipedia.org/wiki/MMIX
[21:07:51] <geniepro> почему Вирт не взял за основу машину Кнтуа, а выдумал свою?
[21:08:01] <geniepro> Кнута*
[21:12:08] <vаlexey> а MMIX в железе вообще есть?
[21:12:16] <vаlexey> или это очередной конструкт для алгоритмистов?
[21:12:36] <vаlexey> и влезет ли оно в Spartan-3? :-)
[21:12:56] <geniepro> хз, в википедии написано, что на 2005 год не было
хотя gcc его поддерживает
[21:13:21] <vаlexey> значит никто не знает сколько там тактов на инструкцию
[21:13:26] <vаlexey> может вообще по 100 :-)
[21:13:52] <geniepro> ну может щас уже есть?
[21:14:00] <geniepro> 8 лет прошло с 2005 года
[21:15:53] <vаlexey> ну попробуй реализовать :-) фигли
[21:16:00] <vаlexey> Verilog в зубы и в бой!
[21:16:36] <geniepro> агащаз )
[21:18:21] <geniepro> вапще у MMIX действительно какая-то переусложнённая архитектура. зачем-то специальные регистры, особенно непонятны зачем нужны "маргинальные" регистры
[22:19:53] <vаlexey> кстати, http://www.nativesystems.inf.ethz.ch/pub/Main/WebHomeResearch/PosterOOCA0.pdf