Перейти к содержанию
    

Архитектрура системы команд 8-разрядного МК

Так и хотел сначала, но потом отказался от этого подхода

 

А что, есть выбор? Кроме гнуся в качестве компилятора яву надеяться не на что, добрый дядя не появится и не подарит оптимизирующий компиллер. Так что - курить до полного просветления маны по гнусю. А иначе это все пустое теоретизирование, которое никогда не принесет никаких плодов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Имхо, выбор есть - в проектах на FPGA во многих случаях хватит автокода. Оптимизация логических выражений уже есть, оптимизировать распределение переменных не обязательно из-за большого регистрового файла в памяти. Остальную оптимизацию можно выделить в отдельную ступень: автокод --> оптимизатор --> автокод.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в проектах на FPGA во многих случаях хватит автокода.

 

Ну до пятисот команд программа без особого напряга пишется на асме. И оптимизируется вручную. А вот больше - тут без яву делать нечего. Конечно, граница "500" - она достаточно условна. Но близка по порядку к объему памяти программ распространенных мелких микроконтроллеров. Как показывает практика, написание программы на яву для таких контроллеров превращается в "написание на Си программы на асме".

 

И еще одно - компилятор вашего "автокода" тоже добрый дядя напишет? А оптимизатор? Или сами, врукопашную, последовательно наступая на весь набор граблей в компиляторостроении, с выдачей на гора "супероптимизирующего компилятора автокода" лет через 10? ;)

 

Вообщем - думайте еще. И крепко.

 

PS Мне кажется, осилить порт гнуся на другую архитектуру (особенно, если есть возможность точить архитектуру под компилятор) не займет более двух месяцев.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

[Флуд, не имеющий отношения к теме]

Изменено пользователем IgorKossak

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ближе к делу, Витя. А то точно тему закроют. Вам же десять раз сказали, что новая архитектура без компилятора с ЯВУ не нужна никому. Что будете делать? Или кто его будет делать? Может лучше сразу "на бережку" осознать бесполезность разработки ?! Если конечно это не курсовая работа. Но для курсовой не обязательно прыгать выше головы.

Изменено пользователем GetSmart

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

//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,ПИК,АВР и пр....

Изменено пользователем vitja

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А не так:

загрузка указателя b //3 байта
загрузка индекса j //3
сложение //1
косвенная загрузка //1
загрузка указателя a //3 
загрузка индекса i //3
сложение //1
косвенная выгрузка //1

=16 байт?

 

...компилятор вашего "автокода" тоже добрый дядя напишет?

Сам и напишу.

 

загрузка указателя ... индекса ...

- имеются в виду косвенные загрузки

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

загрузка индекса 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 байта

К - необязательный префикс константы

Мнемоника приведена условно и форматы команд тоже.

Изменено пользователем vitja

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если нет @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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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,ПИК,АВР и пр....

получим бесполезные циферки совершенно не учитывающие архитектурных особенностей изучаемых ядер применительно к различным задачам. что и показали даже такие примитивные одноклеточные тесты с сахары.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Ближе к делу.

2. Вам же десять раз сказали, что новая архитектура ..... не нужна никому.

3. Может лучше сразу "на бережку" осознать бесполезность разработки .

4. ….не обязательно прыгать выше головы.

Огорчили.

1. Описание М8 приведено http://www.moko.ru/mc/

2. Кто сказал, что новая архитектура не нужна никому?

3. Это ваше личное мнение.

4. Промолчу, но прыгну.

Однако. Все это сплошная говорильня, в которой и Вы и я и другие принимаем участие, вместо того, что бы...

Полезность в этом есть, но пользы мало.

Возможно я не смог четко сформулировать свои проблемы и свои их решения. Описание М8 буду править по результатам обсуждения. Но не за день, а за неделю ...две..три..Сейчас написать что либо конкретное уже нет сил, могу только пописывать.

 

Рекомендую почитать Михаила Козлова из Института высшей нервной деятельности…РАН на близкую тему о «Возможностях универсального кода внутреннего представления программы».....Вот где энергия, настойчивость и сила характера.

http://n-t.ru/tp/ts/uk.htm

 

Проблемы у нас – это дороги, ...... и кризис.

Однако причем все это? Заполнить пустую строку буковками и отправить их Вам. А оно это нужно?

Изменено пользователем vitja

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...компилятор "догадывается" о том, что такое a и b, то есть это не аналог ли такого: ...

Имел в виду динамические массивы(адрес первого элемента - не константа). Для статических массивов код у регистровых архитектур будет короче, конечно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2. Кто сказал, что новая архитектура не нужна никому?

а кому нужна ещё одна ничем не выдающаяся 8-и битная архитектура? что в реё такого действительно необычного заложено, что ею будут активно пользоваться? особо малое количество требуемой памяти для кода? и какой ценой? ценой усложнения самого ядра до умопомрачения? так это сводит на нет всё преимущество от мелкого кода. и тем более такое ядро не будет интересно для FPGA применений. уж скорее Leka своего мутанта доделает и даже продать успеет (результаты то у него интересные получились), чем вы дойдёте хотя бы до стадии HDL-тестирования.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...