реклама на сайте
подробности

 
 
10 страниц V  « < 8 9 10  
Reply to this topicStart new topic
> Архитектрура системы команд 8-разрядного МК, Оценка/Анализ/Архитектура 8-32 разрядного МК
Rst7
сообщение Feb 11 2009, 08:35
Сообщение #136


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



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


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


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Leka
сообщение Feb 11 2009, 10:34
Сообщение #137


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Имхо, выбор есть - в проектах на FPGA во многих случаях хватит автокода. Оптимизация логических выражений уже есть, оптимизировать распределение переменных не обязательно из-за большого регистрового файла в памяти. Остальную оптимизацию можно выделить в отдельную ступень: автокод --> оптимизатор --> автокод.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 11 2009, 11:00
Сообщение #138


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



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


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

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

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

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


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
vitja
сообщение Feb 11 2009, 17:42
Сообщение #139


Участник
*

Группа: Новичок
Сообщений: 61
Регистрация: 3-01-09
Пользователь №: 42 896



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

Сообщение отредактировал IgorKossak - Feb 11 2009, 18:19
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Feb 11 2009, 17:43
Сообщение #140


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



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

Сообщение отредактировал GetSmart - Feb 11 2009, 17:44


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
vitja
сообщение Feb 11 2009, 18:26
Сообщение #141


Участник
*

Группа: Новичок
Сообщений: 61
Регистрация: 3-01-09
Пользователь №: 42 896



Цитата(Leka @ Feb 10 2009, 22:29) *
Код
//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 - Feb 11 2009, 18:29
Go to the top of the page
 
+Quote Post
Leka
сообщение Feb 11 2009, 20:13
Сообщение #142


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



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

=16 байт?

Цитата(Rst7 @ Feb 11 2009, 14:00) *
...компилятор вашего "автокода" тоже добрый дядя напишет?

Сам и напишу.

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

- имеются в виду косвенные загрузки
Go to the top of the page
 
+Quote Post
vitja
сообщение Feb 11 2009, 20:22
Сообщение #143


Участник
*

Группа: Новичок
Сообщений: 61
Регистрация: 3-01-09
Пользователь №: 42 896



Цитата(Leka @ Feb 11 2009, 23:13) *
загрузка индекса 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 - Feb 11 2009, 20:53
Go to the top of the page
 
+Quote Post
Leka
сообщение Feb 11 2009, 21:12
Сообщение #144


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Если нет @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
Go to the top of the page
 
+Quote Post
Mahagam
сообщение Feb 12 2009, 10:24
Сообщение #145


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240



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

получим бесполезные циферки совершенно не учитывающие архитектурных особенностей изучаемых ядер применительно к различным задачам. что и показали даже такие примитивные одноклеточные тесты с сахары.
Go to the top of the page
 
+Quote Post
vitja
сообщение Feb 12 2009, 19:00
Сообщение #146


Участник
*

Группа: Новичок
Сообщений: 61
Регистрация: 3-01-09
Пользователь №: 42 896



Цитата(GetSmart @ Feb 11 2009, 20:43) *
1. Ближе к делу.
2. Вам же десять раз сказали, что новая архитектура ..... не нужна никому.
3. Может лучше сразу "на бережку" осознать бесполезность разработки .
4. ….не обязательно прыгать выше головы.

Огорчили.
1. Описание М8 приведено http://www.moko.ru/mc/
2. Кто сказал, что новая архитектура не нужна никому?
3. Это ваше личное мнение.
4. Промолчу, но прыгну.
Однако. Все это сплошная говорильня, в которой и Вы и я и другие принимаем участие, вместо того, что бы...
Полезность в этом есть, но пользы мало.
Возможно я не смог четко сформулировать свои проблемы и свои их решения. Описание М8 буду править по результатам обсуждения. Но не за день, а за неделю ...две..три..Сейчас написать что либо конкретное уже нет сил, могу только пописывать.

Рекомендую почитать Михаила Козлова из Института высшей нервной деятельности…РАН на близкую тему о «Возможностях универсального кода внутреннего представления программы».....Вот где энергия, настойчивость и сила характера.
http://n-t.ru/tp/ts/uk.htm

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

Сообщение отредактировал vitja - Feb 12 2009, 19:26
Go to the top of the page
 
+Quote Post
Leka
сообщение Feb 12 2009, 19:21
Сообщение #147


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Цитата(Mahagam @ Feb 12 2009, 13:24) *
...компилятор "догадывается" о том, что такое a и b, то есть это не аналог ли такого: ...

Имел в виду динамические массивы(адрес первого элемента - не константа). Для статических массивов код у регистровых архитектур будет короче, конечно.
Go to the top of the page
 
+Quote Post
Mahagam
сообщение Feb 13 2009, 00:22
Сообщение #148


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240



Цитата(vitja @ Feb 12 2009, 23:00) *
2. Кто сказал, что новая архитектура не нужна никому?

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

10 страниц V  « < 8 9 10
Reply to this topicStart new topic
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01464 секунд с 7
ELECTRONIX ©2004-2016