Rst7 5 11 февраля, 2009 Опубликовано 11 февраля, 2009 · Жалоба Так и хотел сначала, но потом отказался от этого подхода А что, есть выбор? Кроме гнуся в качестве компилятора яву надеяться не на что, добрый дядя не появится и не подарит оптимизирующий компиллер. Так что - курить до полного просветления маны по гнусю. А иначе это все пустое теоретизирование, которое никогда не принесет никаких плодов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 11 февраля, 2009 Опубликовано 11 февраля, 2009 · Жалоба Имхо, выбор есть - в проектах на FPGA во многих случаях хватит автокода. Оптимизация логических выражений уже есть, оптимизировать распределение переменных не обязательно из-за большого регистрового файла в памяти. Остальную оптимизацию можно выделить в отдельную ступень: автокод --> оптимизатор --> автокод. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 11 февраля, 2009 Опубликовано 11 февраля, 2009 · Жалоба в проектах на FPGA во многих случаях хватит автокода. Ну до пятисот команд программа без особого напряга пишется на асме. И оптимизируется вручную. А вот больше - тут без яву делать нечего. Конечно, граница "500" - она достаточно условна. Но близка по порядку к объему памяти программ распространенных мелких микроконтроллеров. Как показывает практика, написание программы на яву для таких контроллеров превращается в "написание на Си программы на асме". И еще одно - компилятор вашего "автокода" тоже добрый дядя напишет? А оптимизатор? Или сами, врукопашную, последовательно наступая на весь набор граблей в компиляторостроении, с выдачей на гора "супероптимизирующего компилятора автокода" лет через 10? ;) Вообщем - думайте еще. И крепко. PS Мне кажется, осилить порт гнуся на другую архитектуру (особенно, если есть возможность точить архитектуру под компилятор) не займет более двух месяцев. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vitja 0 11 февраля, 2009 Опубликовано 11 февраля, 2009 (изменено) · Жалоба [Флуд, не имеющий отношения к теме] Изменено 11 февраля, 2009 пользователем IgorKossak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 11 февраля, 2009 Опубликовано 11 февраля, 2009 (изменено) · Жалоба Ближе к делу, Витя. А то точно тему закроют. Вам же десять раз сказали, что новая архитектура без компилятора с ЯВУ не нужна никому. Что будете делать? Или кто его будет делать? Может лучше сразу "на бережку" осознать бесполезность разработки ?! Если конечно это не курсовая работа. Но для курсовой не обязательно прыгать выше головы. Изменено 11 февраля, 2009 пользователем GetSmart Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vitja 0 11 февраля, 2009 Опубликовано 11 февраля, 2009 (изменено) · Жалоба //a[i] = b[j], a, b - указатели в памяти, i,j - индексы в памяти. //Пример: адресация, как у PDP-11, 16-разрядные команды/слова: //18байт, 15тактов. Поправьте, если напутал. //"безрегистровая" 3х-операндная, 36-разрядные команды(для FPGA) buf=b[j] //1слово,3такта - для двухпортовой блочной памяти a[i]=buf //1,3 //Добавляйте другие архитектуры... на твой код выставляю свой в 12 байт для 8-разрядного процессора М8 (данные в примере 16-разрядные). ldw# B Ildw adw @ld ;6 байт ldw# A Jldw adw @st ;6 байт Запись типа Форта. Однако приводя свой пример А(I)=B(J) ты забыл о других операторах присваивания типа- А=0 А=1234... А=В А=un(B ) A=bin(B,C).... А есть еще условные операторы, циклы, вызовы процедур.... Расставь проценты их использования в типовых программах МК. Раскрой их машинную реализацию в кодах и байтах для своего процессора, как это сделал я для 8-разрядных МК. Умножь их на проценты. И ты получишь рейтинги, которые получил я для МК8051,ПИК,АВР и пр.... Изменено 11 февраля, 2009 пользователем vitja Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 11 февраля, 2009 Опубликовано 11 февраля, 2009 · Жалоба А не так: загрузка указателя b //3 байта загрузка индекса j //3 сложение //1 косвенная загрузка //1 загрузка указателя a //3 загрузка индекса i //3 сложение //1 косвенная выгрузка //1 =16 байт? ...компилятор вашего "автокода" тоже добрый дядя напишет? Сам и напишу. загрузка указателя ... индекса ... - имеются в виду косвенные загрузки Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vitja 0 11 февраля, 2009 Опубликовано 11 февраля, 2009 (изменено) · Жалоба загрузка индекса j //3 В системе команд процессора М8 команда загрузки имеет длину 1 байт (поэтому 16-4=12). Вы внимательны, в отличие от других. Команда загрузки в М8 имеет следующие форматы: (K) Pildw - текущая страница ОЗУ (K) PPildw -предыдущая страница ОЗУ (K) @ldw - косвенная адресация через стек вычислений (K) Rldw - стек возвратов (K) @Rldw -косвенная адресация через стек возвратов (K) @R+ldw -косвенная адресация ПЗУ через стек возвратов ldw# xxx - загрузка константы где w - длина данного 1, 2, 4 байта К - необязательный префикс константы Мнемоника приведена условно и форматы команд тоже. Изменено 11 февраля, 2009 пользователем vitja Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 11 февраля, 2009 Опубликовано 11 февраля, 2009 · Жалоба Если нет @ldw#, тогда 20 байт получим: ldw# b //3 @ldw //1 ldw# j //3 @ldw //1 adw //1 @ld //1 ldw# a //3 @ldw //1 ldw# i //3 @ldw //1 adw //1 @st //1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mahagam 0 12 февраля, 2009 Опубликовано 12 февраля, 2009 · Жалоба MSP430 1F420802 MOV.W &_a, R15 1F520402 ADD.W &_i, R15 1E420602 MOV.W &_b, R14 1E520202 ADD.W &_j, R14 AF4E0000 MOV.W @R14, 0(R15) 20 байт / 12 тактов однако, как мне кажется тут //"безрегистровая" 3х-операндная, 36-разрядные команды(для FPGA) buf=b[j] //1слово,3такта - для двухпортовой блочной памяти a[i]=buf //1,3 компилятор "догадывается" о том, что такое a и b, то есть это не аналог ли такого: 1F420402 MOV.W &_i, R15 1E420202 MOV.W &_j, R14 DF4E06022602 MOV.B _b(R14), _a(R15) 14 байт/9 тактов ? Расставь проценты их использования в типовых программах МК. Раскрой их машинную реализацию в кодах и байтах для своего процессора, как это сделал я для 8-разрядных МК. Умножь их на проценты. И ты получишь рейтинги, которые получил я для МК8051,ПИК,АВР и пр.... получим бесполезные циферки совершенно не учитывающие архитектурных особенностей изучаемых ядер применительно к различным задачам. что и показали даже такие примитивные одноклеточные тесты с сахары. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vitja 0 12 февраля, 2009 Опубликовано 12 февраля, 2009 (изменено) · Жалоба 1. Ближе к делу. 2. Вам же десять раз сказали, что новая архитектура ..... не нужна никому. 3. Может лучше сразу "на бережку" осознать бесполезность разработки . 4. ….не обязательно прыгать выше головы. Огорчили. 1. Описание М8 приведено http://www.moko.ru/mc/ 2. Кто сказал, что новая архитектура не нужна никому? 3. Это ваше личное мнение. 4. Промолчу, но прыгну. Однако. Все это сплошная говорильня, в которой и Вы и я и другие принимаем участие, вместо того, что бы... Полезность в этом есть, но пользы мало. Возможно я не смог четко сформулировать свои проблемы и свои их решения. Описание М8 буду править по результатам обсуждения. Но не за день, а за неделю ...две..три..Сейчас написать что либо конкретное уже нет сил, могу только пописывать. Рекомендую почитать Михаила Козлова из Института высшей нервной деятельности…РАН на близкую тему о «Возможностях универсального кода внутреннего представления программы».....Вот где энергия, настойчивость и сила характера. http://n-t.ru/tp/ts/uk.htm Проблемы у нас – это дороги, ...... и кризис. Однако причем все это? Заполнить пустую строку буковками и отправить их Вам. А оно это нужно? Изменено 12 февраля, 2009 пользователем vitja Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 12 февраля, 2009 Опубликовано 12 февраля, 2009 · Жалоба ...компилятор "догадывается" о том, что такое a и b, то есть это не аналог ли такого: ... Имел в виду динамические массивы(адрес первого элемента - не константа). Для статических массивов код у регистровых архитектур будет короче, конечно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mahagam 0 13 февраля, 2009 Опубликовано 13 февраля, 2009 · Жалоба 2. Кто сказал, что новая архитектура не нужна никому? а кому нужна ещё одна ничем не выдающаяся 8-и битная архитектура? что в реё такого действительно необычного заложено, что ею будут активно пользоваться? особо малое количество требуемой памяти для кода? и какой ценой? ценой усложнения самого ядра до умопомрачения? так это сводит на нет всё преимущество от мелкого кода. и тем более такое ядро не будет интересно для FPGA применений. уж скорее Leka своего мутанта доделает и даже продать успеет (результаты то у него интересные получились), чем вы дойдёте хотя бы до стадии HDL-тестирования. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться