Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Архитектрура системы команд 8-разрядного МК
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
Страницы: 1, 2, 3
vitja
Цитата(vetal @ Jan 19 2009, 14:06) *
1 В первую очередь система команд это интерфейс ядра процессора с внешним миром.
2 Взяли микроядро AVR без декодера и творите какую угодно систему команд.
3 Если бы вы поставили вопрос по другому: что лучше регистровый, стековый, регистровый с плавающим окном, аккумуляторный с одной или несколькими одновременно доступных памятей данных и т.д. то можно было бы судить. А так - все процессоры умеют складывать, вычитать, прыгать, загружать/выгружать данные куда-либо и
4 создать систему команд под незнамо какую зверушку будет очень сложно.

С Pashe не согласен/ Однако и Вы тоже/
1 Мне казалось/ что система команд это интерфейс программиста с процессором/ как я был не прав
2 см M8.zip в вывешенном каталоге/ на AVR это не похоже и на другие тоже
3 Именно я так ставлю вопрос и делаю попытку дать на него ответ/ не слушают
4 Создать систему команд для 8-разрядного МК/ сопрягаемого с транслятором/ удобного для программирования на ассемблере/
достаточно простого в аппаратной реализации
Rst7
Цитата
Только дополнение по поводу клонирования
...
Вобщем содрали архитектуру, надеюсь не испортили, навесили рюшки, фишки и назвали все это RISCом, иначе не модно
И сделали это 26 лет после DEC (в 1996 году)


Ну еще можете сравнить IBM360/370 и MC680x0. Тоже много интересного узнаете о "клонировании"

Цитата
Плохой компилятор ЯВУ угробит любую процессорную архитектуру, а хороший вытянет даже убогий процессор.


Первое - верно, второе - неверно.

Цитата
Трудоемкость разработки компилятора генерирующего высокооптимизированный код на порядки превышает трудоемкость разработки процессорной архитектуры. Для нового самопального процессорного ядра компилятора у вас либо не будет либо он будет неэффективным. Отсутствие или плохое качество компилятора - смерть для процессорной архитектуры.
Именно поэтому разработка новой архитектуры процессора сейчас либо самоубийство либо чистый попил бабла.


Плюс, как сейчас говорят, пицот smile.gif
Mahagam
ага, мусье vitja перебрался сюда с хобота, где его "изыскания" также "неоценили" smile.gif

на зачем тут повторять бред из PC Week предварительно не обдумав цифры? вы там так и не придумали - где оставшиеся 70% рынка?

Примеры ? Ваш и мой ?пень? вырос из 8086-го (1980 год), была даже его 8-разрядная версия (это ближе к теме).
вы знаете, мне очень хочется узнать, что за такая "8-разрядная версия" была у 8086 ? или это вы в порыве графоманства не закусили?

Итого имеем 2.0*0.73*1.0*1.15 = 1.7. Во столько раз с точностью достаточной
для практического применения МК430 уступает 8051.

ооох! ну и забористая трава! эк вы, Маэстро, быстро и точно оценили MSP430. а ничего, что http://mcu.caxapa.ru/benchmarks/ получается с точностью до наоборот? ну неиначе - во всём виноваты компиляторы! smile.gif

да, MSP430 иногда выполняет команду длительностью аж (о боже!) целых 6 (шесть) тактов. но вы так и не удосужились понять, что за этим стоит, для какого случая это получается крайне эффективно, и сколько команд 8051 ядра нужно выполнить, чтобы произвести такое же действие.
но вы просто решили, что MSP430 - это такое неэффективное ядро. аж в 1.7 раза хуже чем 8051, а мысли о том, что все ваши наукообразные рассуждения и вычисления эффективности с точностью до сотых - бред, не приходило?

Насчет одновременной выборки я подумаю/
ещё на хоботе я давал и название этой "технологии" и фирму. но почитать вы так и не удосужились. а это, между прочим, описано даже в переводной литературе.

ну так что, будем учится, или убежим на следующий форум? где, может быть, "оценят" smile.gif
vitja
Цитата(_3m @ Jan 19 2009, 14:36) *
////Ничего концептуально нового в области традиционных процессоров уже не придумать, поэтому мы и пользуемся разработками 80-х или 90-х.

////Важность инструментария
////Именно поэтому разработка новой архитектуры процессора сейчас либо самоубийство либо чистый попил бабла.

///Ваши утверждения о том что MSP430 клон PDP11 смехотворны. PDP11 имеет ортогональную систему команд, а MSP430 - не ортогональную. Отличие концептуальное! MSP430 создан "по мотивам", но он отнюдь не клон.

По первым пунктам вы меня цитируете/ спасибо/
3/// Хорошо/ что к вашему совету не прислушались в ATMELE
Немного истории и ваш прогноз на это
1980 - 8051
конец 80-х - PIC
конец 90-х - AVR
конец 2010-х - ????

4/// Более не говорю о клонировании/// буду говорить /по мотивам PDP11/
По поводу не ортогональности системы команд М430 я посмотрю - это концепция серьезная/
я всегда считал что ортогональность в системе команд это хорошо/ а не ортогональность это плохо
(это из Майерса/ если не ошибаюсь)
_Pasha
Цитата(vitja @ Jan 19 2009, 15:43) *
2 см M8.zip в вывешенном каталоге/ на AVR это не похоже и на другие тоже

Лично я бы заморочился на следующем:
1. Разбить ОЗУ на 256-байтовые банки, в которых живут все нужные регистры, т.е все регистры, в т.ч и РС и указатель стека - отображаемые на память. При этом оставить возможность байтовой адресации всего массива .
2. Оставить один неотображаемый регистр - селектор банка, в системе команд предусмотреть команду безусловного перехода с выбором банка памяти
3. Разрядность команд оставить фиксированной, но время выполнения все равно будет очень варьировать, особенно если пытаться навернуть 32 разрядную арифметику при 8 разрядной ШД. При всей абсурдности затеи с 32-разр арифметикой, получим выигрыш в компактности кода.
vitja
Цитата(Mahagam @ Jan 19 2009, 15:07) *
1///ага, мусье vitja

2/// мне очень хочется узнать, что за такая "8-разрядная версия" была у 8086 ? или это вы в порыве графоманства не закусили?

3///да, MSP430 иногда выполняет команду длительностью аж (о боже!) целых 6 (шесть) тактов.

будем учится

1 Здравствуй дорогой/ Рад снова встретится/хоть и с детства не люблю ябед/ однако на iXBT уже все закончилось
2 Intel 8088
3 AVR с ARMом в придачу выполняет команду за один такт/ Счет 6/1 в чью пользу?
Просьба сохранять толерантность в общении/ задавать вопросы или ответы на них/ от смайликов Вы уже отучились/ Молодец
Mahagam
Цитата(_3m @ Jan 19 2009, 15:36) *
Ваши утверждения о том что MSP430 клон PDP11 смехотворны. PDP11 имеет ортогональную систему команд, а MSP430 - не ортогональную. Отличие концептуальное! MSP430 создан "по мотивам", но он отнюдь не клон.

вообще-то - ортогональная и у MSP430. любая команда работает с любым имеющимся регистром с любым имеющимся методом адресации.
GetSmart
Цитата(vitja @ Jan 19 2009, 18:31) *
3 AVR с ARMом в придачу выполняет команду за один такт/ Счет 6/1 в чью пользу?

Теоретик biggrin.gif
ARM выполняет команду группового сохранения регистров во внутренней раме за 17 тактов максимум, а ту же команду во внешней раме до 100 тактов (а то и более), в зависимости от настроек внешней шины.

8088 - 16 битный проц с внешней 8р шиной. Система команд и архитектура 16-битные.
Mahagam
Цитата(vitja @ Jan 19 2009, 16:31) *
2 Intel 8088

и с каких это пор он стал 8-и разрядным? оттого что у него внешняя шина данных была 8-и разрядная? тогда какой разрядности S3C4530 который может одновременно работать с 8- 16- и 32-х разрядной памятью ???

Цитата(vitja @ Jan 19 2009, 16:31) *
3 AVR с ARMом в придачу выполняет команду за один такт/ Счет 6/1 в чью пользу?

"воспитанный дятлами мальчик задолбал своих приёмных родителей"
подумать, что же делается в течении этих 6 тактов, видимо не судьба. и как вообще формируется время исполнения любой команды MSP430 тоже.
vitja
Цитата(GetSmart @ Jan 19 2009, 15:48) *
Теоретик biggrin.gif
ARM выполняет команду группового сохранения регистров во внутренней раме за 17 тактов максимум, а ту же команду во внешней раме до 100 тактов (а то и более), в зависимости от настроек внешней шины.

8088 - 16 битный проц с внешней 8р шиной. Система команд и архитектура 16-битные.

Кто бы спорил/ Особенно по последнему/
Это приведено как пример того что даже ХХ86 не гнушался 8-разрядности и 8-разрядные МК рановато списывать в утиль

А про команду группового сохранения - это верно - сохранить 16 регистров во внутренней памяти быстрее не получается/плюс такт на команду
Вопрос вот в чем - а нужна ли эта команда?
Для переключения контекста/ Как часто это присутствует в программе простого 8-разрядного МК/
При прерываниях/ Мультизадачность - для МК это экзотика/
Далее задаем долю операций переключения контекста/ 1% мало - берем 2/ В результате мы сэкономили на этой команде в объеме кода 0.32%
В тактах не выиграли ничего/ Зато усложнили аппаратуру/ Ради чего

Вами поднят гораздо более глубокий вопрос - касающийся состава команд и его влияния
на объем программного кода и тактов на его выполнение../Брр
Если уж вводить сложные команды, то какие -
мне кажется это не команды групповой пересылки регистров.
Большую долю операторов ЯВУ составляют условные операторы (16%) и циклы - 18%
(более всего счетные). Проценты в разумных пределах можно поправить.
Из этого следует, что надо объединить в одной команде операцию тестирования операндов
и перехода по условию, надо объединить модификацию счетчика с переходом по условию
в начало цикла. Здесь экономия памяти и тактов посущественнее будет.
Однако в каком МК вы это видели. Скажите.
MrYuran
Цитата(vitja @ Jan 19 2009, 15:31) *
AVR с ARMом в придачу выполняет команду за один такт/ Счет 6/1 в чью пользу?

Шулерство чистой воды.
1) AVR != x51
2) тот же AVR имеет команды по 2, 3 и даже (о ужас!) 4 цикла.

А мне вот в связи с банками и другой посудой вспомнилась такая фишка от Z80:
там были 2 идентичных набора регистров (включая PC, SP, флаги и т.д.), которые переключались одной командой.
То есть можно было реализовать много(двух)задачность, всего лишь выполняя эту команду по таймеру.
Вот над чем бы подумать. Опять же в контексте многозадачных приложений.

Ещё нынче в моде многоголовость.
8bit Dual (Quad) Core Microcontroller - по-моему, звучит!
_Pasha
Цитата(vitja @ Jan 19 2009, 17:12) *
Мультизадачность - для МК это экзотика

Это справедливо только для pic16C54 smile.gif

Если все это позиционируется для SoC, то почему такое отношение к мультизадачности?
Mahagam
Цитата(vitja @ Jan 19 2009, 17:12) *
Это приведено как пример того что даже ХХ86 не гнушался 8-разрядности и 8-разрядные МК рановато списывать в утиль

ну и бред. 8-разрядная внешняя шина позволяла в те годы зверски уменьшить цену конечного изделия на этом процессоре, оставаясь в рамках 16-ти разрядной вычислительной мощности. откуда взялась связь с МК - неясно.

Цитата(vitja @ Jan 19 2009, 17:12) *
А про команду группового сохранения - это верно - сохранить 16 регистров во внутренней памяти быстрее не получается/плюс такт на команду
Вопрос вот в чем - а нужна ли эта команда?

не. разработчики ядра её так просто по приколу вставили. ага. biggrin.gif

Цитата(vitja @ Jan 19 2009, 17:12) *
Мультизадачность - для МК это экзотика/

да-да! и всякие табуны uCOS, eCOS, FreeFTOS, CTL и прочих многозадачных примочек - это всё из области экзотики и фантазии. biggrin.gif
конечно, раз этого не было в книжках двадцатилетней давности, то этого просто не может быть сейчас.


Цитата(vitja @ Jan 19 2009, 17:12) *
Далее задаем долю операций переключения контекста/ 1% мало - берем 2/ В результате мы сэкономили на этой команде в объеме кода 0.32%
В тактах не выиграли ничего/ Зато усложнили аппаратуру/ Ради чего

ой жжошь!
"1% мало - берём 2" а почему не 5 ? почему не 10? а в военное время и до 80 может подскочить!
а подумать, в какий процессорах есть команды такого типа, а в каких нет? и что даёт эта команда? а зачем такую команду ввели 80286 проц? а что она давала там?
vitja
Цитата(MrYuran @ Jan 19 2009, 16:14) *
Шулерство чистой воды. 1) AVR != x51

8bit Dual (Quad) Core Microcontroller - по-моему, звучит!


Не AVR = x51 а объем кода М430 в 1.7 раза больше x51
AVR по моим расчетам уступает в объеме кода 8051 на 38%/ но по производительности опережает последний почти в два раза/
если оценивать такты 8051 не по оригиналу а по более современным моделям
Mahagam
Цитата(vitja @ Jan 19 2009, 17:54) *
Не AVR = x51 а объем кода М430 в 1.7 раза больше x51
AVR по моим расчетам уступает в объеме кода 8051 на 38%/ но по производительности опережает последний почти в два раза/
если оценивать такты 8051 не по оригиналу а по более современным моделям

не. ну какая настойчивость. smile3046.gif смотрим в книгу видим жопу.
третий раз дают тебе ссылку: http://mcu.caxapa.ru/benchmarks/
там, по практическим, а не чисто умозрительным, результатам видно, что объём кода у MSP430 меньше, чем у 8051.
например, в самом ядрёном случае - арифметические операции с 16-ти разрядными матрицами имеем 825/112 - у MSP430 кода получается меньше в 7.3 раза!
но раз факты опровергают теорию - от них надо избавиться? maniac.gif не так ли?

ощущение, что вы там ни разу в жизни не запускали ни один компилятор, ни разу в жизни не видели симулятора МК

"В третей комнате Николай Степанович увидел отдел изучения меча Зигфрида. Самого меча пока не дастали, но отдел занимался изучением воображаемой модели. Воображаемый Нотунг помещали в магнитное поле, травили кислотами и испытывали на разрыв..." (С) М. Успенский, А. Лазарчук, "Посмотри в глаза чудовищ".
vitja
Цитата(Mahagam @ Jan 19 2009, 16:49) *
ну и бред. откуда взялась связь с МК - неясно.

разработчики AТMEL так просто по приколу вставили команду группового сохранения регистров/

жжошь!
а зачем такую команду ввели 80286 проц? а что она давала там?

Только как пример того/ что 16-разрядный процессор 8086 работал на 8-разрядной шине как и современные 8-разрядные МК/

Они приколись по полной - ввели команду группового восстановления регистров/
в 80286 эти команды ввели без приколов/ а по причине необходимости поддержки мультизадачности

Типовой МК работает с таймером (1 обработчик прерывания) плюс интерфейсы (еще 1 или более обработчиков)
В каждом из них сохраняют контекст одной или большим числом команд/ Доля этих команд в общем объеме кода
программы минимальна и даже в военное время не превышает 2%/ Как сделать больше я не знаю / Научите
GetSmart
Цитата(vitja @ Jan 19 2009, 20:38) *
В каждом из них сохраняют контекст одной или большим числом команд/ Доля этих команд в общем объеме кода
программы минимальна и даже в военное время не превышает 2%/ Как сделать больше я не знаю / Научите

В АРМах команды группового сохранения/загрузки регистров используются почти при каждом вызове процедуры даже в однозадачной программе. При этом сохраняюся в стеке 3..5..10 регистров. В ARM7 эта команда гораздо более универсальна в отличие от 80286. При желании этой командой можно максимально быстро копировать одну область памяти в другую, в 2..3 раза быстрее чем другим способом. Вы знаете слишком поверхностно системы команд. Поэтому все приводимые цыфры и большинство данных вами оценок архитектур необъективны. Глупости конкретные. С таким пониманием темы лучше от неё сразу отказаться.
Mahagam
Цитата(vitja @ Jan 19 2009, 18:38) *
Только как пример того/ что 16-разрядный процессор 8086 работал на 8-разрядной шине как и современные 8-разрядные МК/

да вы просто из страны эльфов! откуда вам знать какой разрядности и сколько шин внутрях у МК? это внешняя шина имеет ограничения по разрядности. что там внутрях - известно только производителям. внутрях кристалла к ядру может подходить а) 8-ти разрядная шина команд б) 8-и разрядная шина данных из памяти в) 8-и разрядная шина данных для записи в память. в итоге за 1 такт мы а) читаем команду б) получаем данные из памяти в) пишем результат предыдущих вычислений в память. МК остаётся 8-и разрядным. но эти его 8 разрядов ничего общего с внешними 8-ю разрядами 8086 не имеют. ибо по внешней шине за 1 такт происходит только одна транзакция.

Цитата(vitja @ Jan 19 2009, 18:38) *
Они возможно по приколу/ а в 80286 по причине необходимости поддержки мультизадачности

это вы высосали из пальца. что бы вы не сосали что-нибудь ещё, приведу пример.
пример прост: имеем понятное ограничение - одно обращение к памяти за такт (память - внешняя). имеем задачу - сохранить в стеке 10 регистров
вариант а) 10 раз мы читаем команду PUSH, 10 раз пишем в стек. итого 10 байт кода, 20 обращений к памяти
вариант б) 1 раз прочитали PUSHALL, 10 раз записали в стек. итого - 1 байт кода, 11 обращений к памяти.
эффективно? безусловно. но эта команда становится эффективной по скорости только в случае если данные и команды лежат в одной физической памяти. в случае с МК это уже не так критично.

Цитата(vitja @ Jan 19 2009, 18:38) *
Типовой МК работает с таймером (1 обработчик прерывания) плюс интерфейсы (еще 1 или более обработчиков)
В каждом из них сохраняют контекст одной или большим числом команд/ Доля этих команд в общем объеме кода
программы минимальна и даже в военное время не превышает 2%/ Как сделать больше я не знаю / Научите

а если на процессор валятся 20000 прерываний в секунду? если он из одного прерывания еле успевает переползать в обработчик следущего? есть ли смысл оптимизировать ядро для быстрого сохранения/восстановления контекста?
ARM7 умеет сохранять в стек одной командой произвольные регистры, что не только полезно в обработчике прерываний, но и просто при вызове функций.
vitja
Цитата(Mahagam @ Jan 19 2009, 17:25) *
1 ////ну какая настойчивость. смотрим в книгу видим жопу.
2/// там, по практическим, а не чисто умозрительным, результатам видно, что оарифметические операции с 16-ти разрядными матрицами имеем 825/112 - у MSP430 кода получается меньше в 7.3 раза!

1/ У Чехова в записках станционного смотрителя - написано не так "смотрю в книгу, а вижу фигу"/
Однако это было написано в прошлом веке/ интернета тогда не было/ а книга даже 81 года для Вас это библиографическая редкость
/Вы только Wiki читаете - кладезь Ваших знаний
2/ Сравнение проводилось на не вычислительных задачах обработки 8-разрядных данных поэтому такие результаты//
И вообще сравнение проводилось не ради сравнения/ а ради выявления и оценки влияния архитектурных особенностей
системы команд 8-разрядного МК на затраты кода и тактов на реализацию операторов ЯВУ по весу их употребления в типовых программах

// в конце позволю себе пофантазировать
Сейчас есть мониторы/ 3D графика/ Inet с его анонимностью/
Но вдруг появились теле-мониторы не с графикой а с материальной передачей информации
Сидишь себе за таким теле-монитором (чатишься)/ а тут тебе в ответ не словом/ а /// та так что чатится уже не захочется
Однако я бы бросил перчатку/ а результат - как у Черной речки / это там в 600-стах километрах от Москвы
Mahagam
vitja
давайте вы не будете словоблудить когда по существу темы сказать нечего.
вам не нравится арифметика? смотрим результаты теста по switch/case по восьмиразрядной переменной. и опять у MSP430 выигрыш в 209/178 = 1.17 раза по объёму кода. неужто незаметно, что ваша оценка не то что бы хромает - она вообще в корне не верна! вы вообще сверялись с практическими данными?

что касается библиографических редкостей - у меня на столе лежит "MICROCOMPUTERS/MICROPROCESSORS hardware, software and applications" на русском. издана в 1979. оригинал аж 1976 года. ничего кроме "энтомологического" интереса "а как оно тогда было, когда двухядерников не было" не вызывает.
vitja
Цитата(Mahagam @ Jan 19 2009, 18:00) *
1 пример прост: а) 10 раз мы читаем команду PUSH, 10 раз пишем в стек. итого 10 байт кода, 20 обращений к памяти
вариант б) 1 раз прочитали PUSHALL, 10 раз записали в стек. итого - 1 байт кода, 11 обращений к памяти.

2 ARM7 умеет сохранять в стек одной командой произвольные регистры, что полезно ... при вызове функций.


1. Я тоже иногда ошибаюсь и передергиваю понятия.
Однако при разделенных шинах команд и данных (в МК, как правило, это так)
Мы будем иметь 10 команд PUSH и только 10 тактов на их выполнение, а Вас почему то 11. Неувязочка получилась.

Опа!!!
2. Я так ждал, что кто нибудь это скажет. Вы первый. Поздравляю.
Именно. Я всегда считал, что одной из проблем регистровой архитектуры, несмотря на их шустрость (обработка 2 операндов за такт),
являются накладные расходы на загрузку и выгрузку регистров при вызове процедуры.
Я для расчетов брал цифру 2 (1 - входной операнд и 1 - результат).
По Вашему мнению какая цифра этих затрат будет ближе к действительности.

Однако на этот вопрос ответил заранее GetSmart - поэтому не напрягайтесь, от 3 до 10, ++++
(в среднем можно принять 5 туда и 5 обратно при каждом вызове процедуры доля которых в среднем составляет 18%)
Срочно делаю перерасчет числа тактов для AVR.
Mahagam
Цитата(vitja @ Jan 19 2009, 22:02) *
1. Я тоже иногда ошибаюсь и передергиваю понятия.
Однако при разделенных шинах команд и данных (в МК, как правило, это так)
Мы будем иметь 10 команд PUSH и только 10 тактов на их выполнение, а Вас почему то 11. Неувязочка получилась.

никакой неувязочки. в тех МК, в которых шина для внешней памяти наружу не выходит (или выходит редко, или архитектура закрытая) команд множественного сохранения обычно и не наблюдается. (AVR, MSP430, PIC`и всякие), ибо выигрыша по скорости не получается вовсе.
а вот ядра ARM7/9, I80286 и выше обычно рассчитаны на жизнь с внешней памятью. посему минимум 1 такт придётся потратить на выборку этой команды. соответственно и все растактовки приведены для варианта с внешней памятью. и в этом случае эта команда ох как ускоряет работу.


Цитата(vitja @ Jan 19 2009, 22:02) *
Именно. Я всегда считал, что одной из проблем регистровой архитектуры, несмотря на их шустрость (обработка 2 операндов за такт),
являются накладные расходы на загрузку и выгрузку регистров при вызове процедуры.

а тут вуаля - и вылазит такой чмыримый вами MSP430. smile.gif
нааааапример:
нужно в прерывании инкрементировать 16-ти разрядный счётчик
код типа
// Timer A0 interrupt service routine.
void timera_isr(void) __interrupt[TIMERA0_VECTOR]
{
time_counter++;
}

выливается в две команды:

INC &time_counter
RETI.

никаких сохранений в стек, никаких доставаний из стека, никаких запоротых регистров. лепота.
а потом удивляются, как это так - по оценкам он должен уступать древнему 8051, а он, засранец такой, ещё и выигрывает солидно.
vitja
Цитата(Mahagam @ Jan 19 2009, 18:58) *
vitja
1 смотрим результаты теста по switch/case по восьмиразрядной переменной. и опять у MSP430 выигрыш в 209/178 = 1.17 раза по объёму кода. неужто незаметно, что ваша оценка не то что бы хромает - она вообще в корне не верна! вы вообще сверялись с практическими данными?

2 что касается библиографических редкостей - у меня на столе лежит "MICROCOMPUTERS/MICROPROCESSORS hardware, software and applications" на русском. издана в 1979. оригинал аж 1976 года. ничего кроме "энтомологического" интереса "


1. Как только Вы взяли тест для 8-разрядных данных (что ближе к теме), то с 7.3 опустились до 1.17.
Наверное можно найти еще какой-нибудь тест, где будет еще меньше.
Но этого делать не будем по причине того,
а) что единичные тесты не представительны. Выборка для оценки должна быть гораздо больше.
б) что я оцениваю не конкретные М430, 8051 и пр. и никого не хочу обижать.
Я на их примере оцениваю архитектуру системы команд - 0, 1, 2-адресной, переменной или фиксированной длины, регистровой, стековой или с командами память-память, я оцениваю в конечном счете влияние архитектурных особенностей системы команд на эффективность процессора.
Пока все.

2. Об этом я уже писал. Описания, справочники, инструкции к программным системам, наверное, издавались и тогда.
Я говорю о нетленке. Это Дейкстра, Бэкус, Кнут, Вирт, Хоар, Ритчи и др. А свою книгу убери со стола.
Хотя возможно ее можно использовать как подставку или как крышку.
GetSmart
Цитата(Mahagam @ Jan 20 2009, 00:30) *
никаких сохранений в стек, никаких доставаний из стека, никаких запоротых регистров. лепота.
а потом удивляются, как это так - по оценкам он должен уступать древнему 8051, а он, засранец такой, ещё и выигрывает солидно.

С 51-ым незнакомы?! smile.gif У него будет ровно такой же код. Только адрес переменной ограничен 8 битами.
vitja
Цитата(Mahagam @ Jan 19 2009, 21:30) *
в МК, в которых шина для внешней памяти наружу не выходит выигрыша по скорости не получается вовсе.
а вот ядра ARM7/9, I80286 и выше обычно рассчитаны на жизнь с внешней памятью. посему минимум 1 такт придётся потратить.

вылазит MSP430. и выливается в две команды:
INC &time_counter
RETI.


По первому договорились. Ты прав больше. Я имел в виду только МК (с внутренней память), а ты говоришь о более общем случае - использование процессором внешней памяти.

По второму. Мне очень нравится система команд PDP 11 и ее развитие в М430.
Своей концептуальностью, ортогональностью и даже "простотой", нет вывертов и ограничений, как у других.

А пример дополнил бы - выливается в 2 команды, 6 байт и 6 тактов плюс еще такты на само прерывание.
Если на один такт ошибся извини.
Я бы тоже самое мог написать на 8051 (от ATMEL, в нем говорят байтовые команды выполняются за один такт).
Получил бы те же команды, только байтов на 3 меньше, а тактов, наверное столько же.

А может ну их эти байты.
Будем писать все только на Си и закроем глаза на то, какой ущербный машинный код при этом получается.
Mahagam
Цитата(vitja @ Jan 19 2009, 22:54) *
1. Как только Вы взяли тест для 8-разрядных данных (что ближе к теме), то с 7.3 опустились до 1.17.
Наверное можно найти еще какой-нибудь тест, где будет еще меньше.

да какая разница во сколько раз MSP430 выигрывает у 8051, если по вашим "экспертным" оценкам он должен солидно так проиграть.
выводы то какие? а выводы простые: весь ваш труд с вычислениями эффективности МК до сотых долей - ЛАЖА!

Цитата(vitja @ Jan 19 2009, 22:54) *
а) что единичные тесты не представительны. Выборка для оценки должна быть гораздо больше.

угу. в большинстве случаев достаточно оценить камень по жирному тесту drystone/wetstone и понять как он в математике. но это точно не должны быть умозрительные заключения с перемножениями чисел неясного происхождения.

Цитата(vitja @ Jan 19 2009, 22:54) *
Я на их примере оцениваю архитектуру системы команд - 0, 1, 2-адресной, переменной или фиксированной длины, регистровой, стековой или с командами память-память, я оцениваю в конечном счете влияние архитектурных особенностей системы команд на эффективность процессора.

ну а почему оценки нифига не кореллируют с практикой?

Цитата(vitja @ Jan 19 2009, 22:54) *
2. Об этом я уже писал. Описания, справочники, инструкции к программным системам, наверное, издавались и тогда.
Я говорю о нетленке. Это Дейкстра, Бэкус, Кнут, Вирт, Хоар, Ритчи и др. А свою книгу убери со стола.
Хотя возможно ее можно использовать как подставку или как крышку.

что-то вам чтение нетленки не помогает. может наоборот - у меня более правильная книга?

Цитата(GetSmart @ Jan 19 2009, 22:56) *
С 51-ым незнакомы?! smile.gif У него будет ровно такой же код. Только адрес переменной ограничен 8 битами.

о. ну конечно. если добавить волшебное слово "только" - код любого проца будет "ровно такой же". с какой вероятностью интересующая нас переменная попадёт в эти счастливые 256 байт?
с 51-ым знаком крайне поверхностно.


Цитата(vitja @ Jan 19 2009, 23:22) *
По первому договорились. Ты прав больше. Я имел в виду только МК (с внутренней память), а ты говоришь о более общем случае - использование процессором внешней памяти.

дело не только во внешней/внутренней памяти. для начала вкури разницу между гарвардской и фон-Неймановской архитектурой. будет ясно больше.

Цитата(vitja @ Jan 19 2009, 23:22) *
Я бы тоже самое мог написать на 8051 (от ATMEL, в нем говорят байтовые команды выполняются за один такт).
Получил бы те же команды, только байтов на 3 меньше, а тактов, наверное столько же.

ну так напиши - покажи класс. ну так, чтобы переменная не была ограничена какими-либо адресами.


Цитата(vitja @ Jan 19 2009, 23:22) *
А может ну их эти байты.
Будем писать все только на Си и закроем глаза на то, какой ущербный машинный код при этом получается.

а может ну её - эту оценку эффективности: запустили drystone и закрыли глаза на все технические мелочи?
vitja
Цитата(MrYuran @ Jan 19 2009, 13:09) *
о вещи MSP430

В оценке ошибка, виноват. Выигрыш в коде у байтовой системы команд 8051
по сравнению с 16-разрядной составляет 1.22 (раздел 5.2 работы)
Поэтому имеем 1.22*0.73*1.0*1.15=1.02. Т.е они дают приблизительно равный объем кода.
Это подтверждают цифры Maxago..., который приводит данные по тесту switch...
где получено 1.17.
Согласись, что для прогноза 15% является допустимой погрешностью.
Вот так теория проверяется практикой.



Цитата(vitja @ Jan 19 2009, 18:15) *
смотрю в книгу, а вижу ...

Сгораю от стыда.
Написано Чехонте "Жалобная книга", а "Станционный смотритель" написал кто-то другой.
Но ведь никто не поправил...
vitja
Цитата(Mahagam @ Jan 19 2009, 21:30) *
нужно в прерывании инкрементировать 16-ти разрядный счётчик
код типа ///
выливается в две команды:

INC &time_counter
RETI.

Продолжаем работать над ошибками/ своими и чужими
В постановке задачи требуется выполнить инкремент 16-разрядной переменной по прерыванию/
Для обработчика прерывания маловато будет /поэтому в стеке ничего не сохраняем/ контекст не переключаем
Разработчики 8051 допустили ошибку или имели на то определенные соображения -
операция инкремента не является эквивалентом прибавления 1 и не влияет на флаги регистра состояния/
Поэтому код становится длиннее и страннее
mov A,tim0
inc A
jnz M
inc tim1
m: mov tim0,A
reti
Итого 10 байт/ Ничего другого ожидать от 8-разрядной древности нельзя/
Однако для байтового счетчика все таки 3 байта будет (на внутренней памяти)
vitja
Цитата(_Pasha @ Jan 19 2009, 15:11) *
Лично я бы заморочился на следующем:
1. Разбить ОЗУ на 256-байтовые банки, в которых живут все нужные регистры, т.е все регистры, в т.ч и РС и указатель стека - отображаемые на память. При этом оставить возможность байтовой адресации всего массива .
2. Оставить один неотображаемый регистр - селектор банка, в системе команд предусмотреть команду безусловного перехода с выбором банка памяти
3. Разрядность команд оставить фиксированной, но время выполнения все равно будет очень варьировать, особенно если пытаться навернуть 32 разрядную арифметику при 8 разрядной ШД. При всей абсурдности затеи с 32-разр арифметикой, получим выигрыш в компактности кода.

Вчера весь день потерял на ненужные препирательства, достали.
Поэтому пропустил Ваши предложения.
По ним видно, что Вы единственный, кто ознакомился с M8.ZIP и
отметил непохожесть предлагаемой системы команд по сравнению с известными серийными 8-разрядными МК.
Из предложений остановлюсь, пока, на последнем.
Каждое принимаемое решение определяется ожидаемым результатом с учетом последствий принятого решения.
Я хотел добиться компактного кода – поэтому выбрал байтовую систему команд, 16-разрядная увеличивает объем кода по моим прикидкам в 1.22 раза (это один из результатов анализа rating.doc и писался он для целей оценки не конкретных моделей МК – заблуждение, а для оценки влияния архитектурных решений в системе команд МК и выбора наиболее оптимальных, а для этого нужны количественные, а не качественные оценки, пусть такие какие получились).
Далее, если выбрана байтовая система команд, то одноадресная как в 8051 Или другая.
Я выбрал стековую. Однако в нее ввел префиксную команду задания операнда, что позволило в рамках стековой архитектуры реализовать двух-адресные команды обработки данных (пересылка, унарные операции и модификация данных) и тем самым обеспечить сокращение числа команд до 0.73 по сравнению с 8051 (по моим прикидкам).
Выбор стековой архитектуры обусловлен еще и тем, что она хорошо сопрягается с трансляторами ЯВУ. Вспомним промежуточный P-код или Java байт-код, на который я ориентировался.
Переход на фиксированную длину 16-разрядов – это путь повторения AVR, его можно Чуть-чуть улучшить, но не радикально.
Форум не позволяет изъяснится подробно и доходчиво. Но, если есть понимание, то много слов не надо.
А 32-разрядность введена/ что бы посягнуть 8-разрядным ядром в область применения 32-разрядных МК/ а также иметь в системе команд возможность дальнейшего развития/
Пока. Об остальном подумаю.
Leka
Это смотрели? http://www.ultratechnology.com/chips.htm
_Pasha
Цитата(vitja @ Jan 20 2009, 11:29) *
Выбор стековой архитектуры обусловлен еще и тем, что она хорошо сопрягается с трансляторами ЯВУ. Вспомним промежуточный P-код или Java байт-код, на который я ориентировался.


Я бы сказал, эффективность работы трансляторов ЯВУ максимальна на архитектуре с небольшим количеством регистров, вернее, с небольшим объемом сохранения контекста процесса. А уж за счет чего это можно сделать - операций память-память, регистровых файлов -  это другой вопрос.

На примере того же АВР и Си видим, что до сих пор идет бурное развитие средств оптимизации, потому что эта регистровая модель немного не вписывается в сложившиеся технологии генерации кода.

Цитата
Переход на фиксированную длину 16-разрядов – это путь повторения AVR

Имхо, проще и дешевле. Думается, что при введении команд (не псевдокоманд!), "каскадирующих" арифметику до 16/32 разрядов, может этот Ваш коэффициент 1,22  опять опустить ниже плинтуса smile.gif Но это так - пальцем в небо.

И еще, можно АВР допилить до нужной кондиции так : разрешить операндам [Y+d] [Z+d] участвовать не только в операциях Load/Store. 

>>поток сознания иссяк smile.gif
Mahagam
Цитата(vitja @ Jan 20 2009, 06:37) *
В оценке ошибка, виноват. Выигрыш в коде у байтовой системы команд 8051
по сравнению с 16-разрядной составляет 1.22 (раздел 5.2 работы)
Поэтому имеем 1.22*0.73*1.0*1.15=1.02. Т.е они дают приблизительно равный объем кода.
Это подтверждают цифры Maxago..., который приводит данные по тесту switch...
где получено 1.17.
Согласись, что для прогноза 15% является допустимой погрешностью.
Вот так теория проверяется практикой.

теорию потиху подгоняем. под некие сферические задачи в вакууме. а практика иногда показывает и 7 кратную разницу...

кстати, если ник правильно написать не можете сами - есть удивительная технология: Copy-Paste называется. попробуйте.

Цитата(vitja)
Я хотел добиться компактного кода – поэтому выбрал байтовую систему команд, 16-разрядная увеличивает объем кода по моим прикидкам в 1.22 раза

фигасе. ну вроде уже и теорию начали перекраивать, а всё туда же. http://www.atmel.com/dyn/resources/prod_do...nts/DOC1292.PDF тут атмел рвёт всех по размеру кода, хотя у них код нифига не 8-и разрядный.
неужто по предыдущей ссылке не сходили? неужто не увидели, что нет нет никакого увеличения в 1.22 раза!

ну и вопрос на засыпку: вот описали вы архитектуру, полностью определились со всеми разрядностями, количеством регистров, набором команд, расписали какие команды как и когда меняют флаги. и прочее прочее прочее. а что дальше?
vitja
Цитата(Leka @ Jan 20 2009, 12:39) *

Здравствуй LEKA/ Наконец-то пересеклись/ но с бабочками/ есть такие красивые яркие на М называются

К своему большому "сожалению" смотрел и автора Форта Charles Мура знаю/ но не лично
Поэтому стал сторонником стековой архитектуры в его интерпретации/ вывешено M8.zip
Что до судьбы перечисленных там проектов/ может тогда их время еще не пришло/ см выше об истории 8-разрядных МК

Цитата(_Pasha @ Jan 20 2009, 12:50) *
1///На примере того же АВР и Си видим, что до сих пор идет бурное развитие средств оптимизации, потому что эта регистровая модель немного не вписывается в сложившиеся технологии генерации кода.

2///введении команд (не псевдокоманд!), "каскадирующих" арифметику до 16/32 разрядов, может этот Ваш коэффициент 1,22 опять опустить ниже плинтуса smile.gif Но это так - пальцем в небо.

3///И еще, можно АВР допилить до нужной кондиции так : разрешить операндам [Y+d] [Z+d] участвовать не только в операциях Load/Store.

>>поток сознания иссяк smile.gif

Форум не то место для основательного разговора/ Это не мозговой штурм/ не диспут - это ЧАТ
Если я имею свое мнение/ то изменить его могу только /// как и ты/ уже перешли
1/ Твои слова подтверждают мой тезис/ что любая архитектура / кроме подчеркнуто стековой/
требует специальной оптимизации/ которая решается в компилятор LCC GNU и иже с ними плохо
Возможно фирменные трансляторы для ххх86 обеспечивают большую эффективность
Однако открываю книгу "Использование ассемблера для оптимизации программ на Си" 2004 г
И читаю в предисловии "большинство серьезных приложений пишутся на /// и вызвано это тем/
что ни одно инструментальное средство программирования на ЯВУ не может дать максимального выигрыша///

Посмотри Глава 4 Там приведена реализация основных операторов ЯВУ в машинных кодах Как будто у меня списано

2/ Я предложил ввести //потактную// обработку данных до 32-разрядов на 8-разрядном ядре/
С одной стороны на будущее/ как возможность расширения//
С другой это дает многократный выигрыш в объеме кода по сравнению с серийными 8-битниками
а в производительности нет
Это плохо/ как решить пока не знаю
vitja
Цитата(lepert @ Jan 18 2009, 22:39) *
По поводу симулятора, этим уже занимался Кнут, все примеры в книге на его собственной виртуальной машине. Там же он пишет кое что о математической составляющей процессоров. Может его почитаете. Книжка конечно высший пилотаж, я застрял на 50й странице. Но уверен,
если пройти все его три тома, наступит 3й дан просветления.

По вашей рекомендации обратился к Кнуту (том первый страница далековатая но нашел///159я)
«МИХ автокод очень похож на машинный код существующих машин, но
Изящнее. Он выбран достаточно мощным для реализации алгоритмов программ на ЯВУ,
Но и достаточно простым …
Читатель должен изучить его с особым вниманием…»
И я о том же говорю. Присоединяюсь к просьбе классика, читайте внимательно http://moko.ru/mc/ M8.zip
reting.pdf для просветленных
А по МИХ коду с Кнутом не согласен. Аккумулятор/ индексные регистры//// маловато будет для изящности
МИХ код (не машинный код) должен быть как минимум 2-3-адресным/ с возможностью задания операторов в памяти/ и еще более чего///
vitja
Цитата(Mahagam @ Jan 20 2009, 12:57) *
1/// Copy-Paste называется. попробуйте.

2//фигасе. ну вроде уже и теорию начали перекраивать,

3//ну и вопрос на засыпку: вот описали вы архитектуру, полностью определились со всеми разрядностями, количеством регистров, набором команд, расписали какие команды как и когда меняют флаги. и прочее прочее прочее. а что дальше?

1. Как читается так и пишется За кнопочки спасибо, но я привык больше ручками

2. Я исправил ошибку, а не результаты своей работы.
Вы можете признаться в своей ошибке. См выше. Ищите. Не найдете - никому не скажу.

3. Дальше надо читать М8.zip. Специально упакованный, что бы не лазали ламеры.
Однако. Почему нет. Смотрите здесь. (или поднять выше?)
На основе ... предлагается ... для тех, кому лениво вникать в 12 листов текста того, что указано
реферат - аннотация - тезисы, т.е. очень кратко:
- Универсальное процессорное ядро для 8-32 разрядных микроконтроллеров
- Система команд – стековая (патентно чистая)
- Объем ПЗУ до 64 К с возможностью расширения
- Объем ОЗУ до 64 К с возможностью расширения
- Производительность – 1 такт на байт команды (данного)
- Тактовая частота процессора до 500 МГц
- Площадь кристалла – при технологии 0.13 мк – точка на кристалле
- Потребление – в четыре раза меньше
- Имеется встроенный отладчик (трассировщик), 2-х канальный DMA

Обеспечивает сокращение программного кода по сравнению
с 32-разрядным ARM Thumb в два раза при равной с ним производительности,
превышет эффективность 8-разрядных серийных МК в 2-3 раза.

Все, lдальше будет позже, выдохся.
GetSmart
Цитата(vitja @ Jan 20 2009, 22:43) *
Обеспечивает сокращение программного кода по сравнению
с 32-разрядным ARM Thumb в два раза при равной с ним производительности,
превышет эффективность 8-разрядных серийных МК в 2-3 раза.

Товарищ размечтался. Причём он даже не знает ни одной фичи ARM7. Скорее всего никогда не видел листинги всех обсуждаемых им процессоров. А судит только поверхностно по системе команд. Бред.

А вообще, похоже на то, что он действительно учавствует в распиле бабла (российского?). Вот такие значит товарищи пилят наше бабло biggrin.gif
Mahagam
Цитата(vitja @ Jan 20 2009, 20:43) *
Как читается так и пишется За кнопочки спасибо, но я привык больше ручками

что-то мой ник вы, Витья, ручками правильно через раз пишете. ручки не оттуда растут?

Цитата(vitja @ Jan 20 2009, 20:43) *
2. Я исправил ошибку, а не результаты своей работы.

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

Цитата(vitja @ Jan 20 2009, 20:43) *
Однако. Почему нет. Смотрите здесь. (или поднять выше?)
На основе ... предлагается ... для тех, кому лениво вникать в 12 листов текста того, что указано

читал. ПРОНИКСЯ! smile.gif

Цитата(vitja @ Jan 20 2009, 20:43) *
- Универсальное процессорное ядро для 8-32 разрядных микроконтроллеров
- Система команд – стековая (патентно чистая)
- Объем ПЗУ до 64 К с возможностью расширения
- Объем ОЗУ до 64 К с возможностью расширения

верю.

Цитата(vitja @ Jan 20 2009, 20:43) *
- Производительность – 1 такт на байт команды (данного)

новая единица измерения производительности? такт на байт? и какую производительность имеют иные процессоры в этих единицах? а хватит ли такой производительности для декодирования mp3 на лету?

Цитата(vitja @ Jan 20 2009, 20:43) *
- Тактовая частота процессора до 500 МГц
- Площадь кристалла – при технологии 0.13 мк – точка на кристалле

есть какие-нибудь доказательства этих цифр? особенно про 500 МГц интересно - на основе каких сведений получено это число? или опять - палец пососали? сколько триггеров получилось в нет-листе?

Цитата(vitja @ Jan 20 2009, 20:43) *
- Потребление – в четыре раза меньше

в четыре раза меньше ЧЕГО?????? кипятильника?

Цитата(vitja @ Jan 20 2009, 20:43) *
- Имеется встроенный отладчик (трассировщик), 2-х канальный DMA

пока что имеются только высосанные из чего-то непонятного фантазии. чтобы говорить, что что-то там есть - как МИНИМУМ нужно построить HDL-модель нужного модуля/устройства. и только на основе результатов моделирования HDL-описания можно называть (с оговорками) и частоту, и площадь, и потребление.

Цитата(vitja @ Jan 20 2009, 20:43) *
Обеспечивает сокращение программного кода по сравнению
с 32-разрядным ARM Thumb в два раза при равной с ним производительности,
превышет эффективность 8-разрядных серийных МК в 2-3 раза.

какие-нибудь доказательства этого есть? или это всё на основе тех же оценок, несовместимых с практикой.
Leka
Зачем ходить по чужим граблям? Пример(Кнут): MIX --> MMIX --> ??? и где идеал? Лучше учиться прятать низкоуровневые детали конкретных архитектур от программистов - чтобы низкоуровневые ЯВУ(например Си) - могли, наконец, уйти на заслуженный отдых.
en1gma
не уж то тоже присоединиться
на хоботе не вышло, так сюда придем
если что - есть ещё http://telesys.ru/ с их конференцией..

со стороны это смотрицца так, что некто пытается написать Талмуд (на диссер не тянет) о МК, рассматривая только МП в них, причём с до сих пор непонятной целью

а так бред, так как нету базы для оценки.. код для оценки высосан из пальца..
выбор МК для разработки на том же хоботе я вам тоже описал
и все дружно объясняли зачем никто не оптимизирует 8битники
Leka
Кнут: "Тем не менее, нужно признать, что в настоящее время MIX полностью устарел. Поэтому в последующих изданиях данной книги он будет заменен новым компьютером под названием MMIX (номер 2009)...
...Полный и повсеместный переход в данной книге от MIX к MMIX отнимет много времени, поэтому огромная просьба к добровольцам - окажите посильную помощь в этом деле. Между тем, автор надеется, что читатели согласятся подождать еще несколько лет и пока удовлетворятся устаревшей архитектурой MIX, которая все еще заслуживает внимания, поскольку обеспечивает среду для дальнейших разработок."

Пример альтернативного подхода - Эльбрус с Эль-76.
vitja
Цитата(' date='Jan 20 2009, 21:11) *
искажение ников на большинстве форумов считается

О никах - ник - это псевдоним, иначе прозвище или кличка. Это не из Ожегова, а по русски.
Бабочка называется махаоном, только почему Вы это приняли на свой счет, не понимаю. Пусть себе бабочка летает.
Mahagam
Цитата(vitja @ Jan 20 2009, 22:48) *
О никах - ник - это псевдоним, иначе прозвище или кличка. Это не из Ожегова, а по русски.
Бабочка называется махаоном, только почему Вы это приняли на свой счет, не понимаю. Пусть себе бабочка летает.

пусть летает, только вы закусывайте, а то вам не только бабочка, но и белочка явится. beer.gif


и давайте таки вернёмся к обсуждению проекта по распилу бабла Процессора М8.
таки интересуют кучи вопросов, заданных немного ранее, но вместо ответа на которые я получил какую-то пургу про бабочек.
особенно докучают вопросы про частоту, и наличие синтезируемой HDL-модели.
vitja
Цитата(Mahagam @ Jan 20 2009, 22:00) *
HDL-модели.

VHDL – правильно, Verilog – тоже.
1. Про закуску – образованные люди закусывают горячим (первый совет профессора Преображенского).
2 Образованные люди начинают проект с ТЗ и разработки спецификаций. Только затем приступают к разработке, а не наоборот.

"...разруха в голове...почистите все" (второй совет профессора).
Когда почистите, тогда давайте конкретные вопросы или предложения по М8.зип (это предварительная спецификация).
А пока. Увольте.
vitja
Цитата(Leka @ Jan 20 2009, 21:29) *
Эльбрус с Эль-76.

Кнут ранний, 199Х г. Издания – я ему тоже предложил МХХ поправить, о чем указано. Зачем// попытаюсь сказать позже
если есть интерес

Эльбрус, честно признаюсь, еще не знаю. Бабаяна знаю, теперь он где-то в SAN ///
Для ознакомления с Эльбрусом, должны быть мотивы.
Чем в системе команд он отличается от других?
Позитивно или просто оригинально?
И главное - это суперкомпьютер// как его приложить к 8-разрядному МК// Какие его решения могли бы пригодиться

Цитата(Leka @ Jan 20 2009, 20:31) *
где идеал? Лучше учиться прятать низкоуровневые детали конкретных архитектур от программистов - чтобы низкоуровневые ЯВУ(например Си) - могли, наконец, уйти на заслуженный отдых.

Спасибо// вы подсказали мне
долой ПИКИ АВР и прочие 51-е /// даешь "Идеальную систему команд для 8-разрядного МК"
Такая система команд должна отвечать 3 требованиям//
1 Без потери эффективности сопрягаться с ЯВУ
2 Обеспечивать компактный и быстрый машинный код
3 Быть простой и эффективной в аппаратной реализации
Вы предлагаете решение по п/1 имея в виду даже языки высочайшего уровня/
Навскидку я помню Майерса/ с его объектно-ориентированной архитектурой// Интел 486//
Были наверняка и другие

Они не востребовались или обогнали свое время//
Они не выполнили пп 2 и 3// Поэтому сейчас имеем то/ что имеем
Mahagam
Цитата(vitja @ Jan 21 2009, 07:59) *
VHDL – правильно, Verilog – тоже.

http://en.wikipedia.org/wiki/Hardware_description_language
HDL-модель - правильно. это самостоятельный устоявшийся термин.

Цитата(vitja @ Jan 21 2009, 07:59) *
Образованные люди начинают проект с ТЗ и разработки спецификаций. Только затем приступают к разработке, а не наоборот.

когда я вижу по вашим спецификациям фантасмагорические требования типа "500 МГц на двухстадийном конвейере", встречаю высокохудожественные высказывания: "размер - точка на кристалле", мне совершенно не верится, что это писали образованные люди.
которые, к тому же, совершенно не владеют пунктуацией русского языка, повсеместно ставя непонятные наклонные чёрточки.

все оценки производительности, площади и частоты получаются минимум после этапа эскизного проектирования. где он? этот этап.


Цитата(vitja @ Jan 21 2009, 07:59) *
Когда почистите, тогда давайте конкретные вопросы или предложения по М8.зип (это предварительная спецификация).

абсолютно конкретные вопросы:
1. как получена оценка в 500 МГц тактовой?
2. как получена оценка площади?
3. потребление в 4 раза меньше ЧЕГО?
4. как получена оценка потребления?
5. на каком классе тестов получено сокращение объёма кода в 2 раза относительно ARM Thumb?
6. как получен результат по вопросу 5 ?
vitja
Цитата(GetSmart @ Jan 20 2009, 20:05) *
российское бабло и ///ARM7//

Ваши у/е и мои рубли за АРМ АВР и пр идут в Россию/// //Для меня это новость/ Атмел работает в России
Как диллер/делящий наше бабло/ вы знаете куда они идут///
Про ябед и анонимов см//выше//
Продолжайте чатится// Я не буду
Однако это ответ не GetSmart//извини ради //не туда кнопку нажал
Это написано диллеру

Цитата( @ Jan 20 2009, 21:22) *
никто не оптимизирует 8битники

О 8-битниках - Интел в 1980г сделал 8051 потом продал лицензию
После этого все остановилось////
И Вы' /en1gma'/ утверждаете// что Филлипс Даллас Атмел не оптимизирует 8-битники
Тогда с чем Вы работаете?

Цитата(Mahagam @ Jan 19 2009, 15:57) *
подумать, что же делается в течении этих 6 тактов, видимо не судьба. и как вообще формируется время исполнения любой команды MSP430 тоже.

Действительно/ 6 тактов - это не 11 мгновений и сделать можно очень много// например
1/выбрать команду/
2/декодировать ее
3/выбрать один операнд
4/выбрать второй операнд
5/выполнить операцию
6/сохранить результат
Так каждый может/// А сделай это за такт//Слабо// тогда хотя бы за два// Только не надо говорить про АВР
При работе с памятью //см/ мой талмуд// он больше тактов тратит//
А про вызов процедур я даже не говорю// от 5 до 10 тактов только на сохранение контекста//
который потом еще и восстанавливать надо/ или я не прав//

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

Цитата(vitja @ Jan 16 2009, 14:15) *
ARM7

Книга «Микроконтроллеры ARM 7. Семейство LPC2000» есть в наличии
В ней содержится полное описание системы команд, регистровой структуры, а также рекомендации производителей по программированию и применению. Предназначена для /// радиолюбителей и студентов технических вузов.

Мы видимо говорим о разном// Вы об АРМе / Я об эффективной системе команд 8-разрядного процессора//
Назвать систему команд младшего брата 32-разрядного АРМ -
8-разрядного процессора АВР эффективной// я не могу //По многим причинам//и разным

Продолжаю чиститься// Отвечаю на вопрос
Про отношение частоты ПРЦ и ФЛЭШа/ Соотношение //как я и вы согласились составляет 5 к 1/
Есть только два решения
1 Хранить программу в ОЗУ// которая быстрее
2 переходить на суперскалярность - выбирать из ПЗУ одну длинную команду или несколько коротких
и за счет параллельной работы нескольких вычислительных блоков выполнять все// что выбрано
Это реализовано в некоторых DSP и VLIMS архитектруре//
Как это реализовать в системе команд 8-разрядного ПРЦ? Пока не знаю
PS Есть еще третий "лобовой путь" - выполнять выбранные команды потактно// Однако все наши пути неисповедимы
Куда я попал?
Mahagam
Цитата(vitja @ Jan 21 2009, 16:14) *
Ваши у/е и мои рубли за АРМ АВР и пр идут в Россию/// //Для меня это новость/ Атмел работает в России
Как диллер/делящий наше бабло/ вы знаете куда они идут///
Про ябед и анонимов см//выше//
Продолжайте чатится// Я не буду
Однако это ответ не GetSmart//извини ради //не туда кнопку нажал

основной язык общения в данной конференции - русский. минимальный набор правил можно посмотреть здесь (раздел "О великом и могучем"): http://caxapa.ru/rules.html
постарайтесь больше не нести подобную тарабарщину. уважайте других.

Цитата(vitja @ Jan 21 2009, 16:14) *
Так каждый может/// А сделай это за такт//Слабо// тогда хотя бы за два// Только не надо говорить про АВР
При работе с памятью //см/ мой талмуд// он больше тактов тратит//
А про вызов процедур я даже не говорю// от 5 до 10 тактов только на сохранение контекста//
который потом еще и восстанавливать надо/ или я не прав//

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

хотелось подвести вас к мысли, что MSP430 исполняет команду столько тактов, сколько для этого потребуется обращений к памяти. исключений всего 2 - это любые переходы и команда MOV с записью в память. причина такого расклада - фон-Неймановская архитектура, с единственной шиной. гарвардская архитектура позволяет АВР-ядру одновременно выбирать команду и производить транзакцию с памятью.
данную операцию за два такта могут произвести DSP, поинтересуйтесь на досуге, сколько шин и какой разрядности подходит к ядру BlackFin

Цитата(vitja @ Jan 21 2009, 16:14) *
Продолжаю чиститься// Отвечаю на вопрос
Про отношение частоты ПРЦ и ФЛЭШа/ Соотношение //как я и вы согласились составляет 5 к 1/

простите, никто вас про соотношение частот не спрашивал. вопрос был только про саму частоту.
GetSmart
Цитата(vitja @ Jan 21 2009, 19:14) *
Продолжаю чиститься// Отвечаю на вопрос
Про отношение частоты ПРЦ и ФЛЭШа/ Соотношение //как я и вы согласились составляет 5 к 1/
Есть только два решения
1 Хранить программу в ОЗУ// которая быстрее
2 переходить на суперскалярность - выбирать из ПЗУ одну длинную команду или несколько коротких
и за счет параллельной работы нескольких вычислительных блоков выполнять все// что выбрано
Это реализовано в некоторых DSP и VLIMS архитектруре//
Как это реализовать в системе команд 8-разрядного ПРЦ? Пока не знаю
PS Есть еще третий "лобовой путь" - выполнять выбранные команды потактно// Однако все наши пути неисповедимы
Куда я попал?

Правильный вопрос: откуда вы явились?!

Интересно, с частотой ядра 500 МГц и частотой флэш 20 МГц какая будет скорость процессора оп/сек ? Если программа занимает 64К, то будете дополнительные 64К ОЗУ выделять для хранения программы? Вы в курсе, что площать на кристалле, занимаемая ОЗУ обычно в 2-4 раза больше флэша равного объёма? Зачем тогда ядро на 500 МГц ? Или выделите 10 КБ ОЗУ на часть программы, а остальная, бОльшая часть программы будет выполняться в 25 раз медленнее?
zltigo
Цитата(Mahagam @ Jan 21 2009, 16:04) *
основной язык общения в данной конференции - русский.



Moderator:

Поддерживаю.

To:vitja приведите свой "стиль" к человеческому. Считайте это устным замечанием. 
vitja
Цитата(_Pasha @ Jan 20 2009, 12:50) *
можно АВР допилить до нужной кондиции так : разрешить операндам [Y+d] [Z+d] участвовать не только в операциях Load/Store. 
>>поток сознания иссяк smile.gif

Чищусь дальше (отвечаю на пропущенное)
1. В АВР нельзя. Они называют себя РИСКом, где по определению "команды обработки данных и комады загрузки/выгрузки регистров
разделены". Остальное - это конвейер и разделение шин доступа к командам и данным. Однако об этом лучше не писать мне, а прочитать.

Да не иссякнет поток сознания. Успехов



Цитата(zltigo @ Jan 21 2009, 17:36) *
Moderator:
Поддерживаю.
To:vitja приведите свой "стиль" к человеческому. Считайте это устным замечанием. 

Сперва початимся.
"Все страннее и страннее" сказала Алиса. Я добавлю от себя - в обсуждении технических вопросов.
1. О русском языке
Транзакция - умное слово, означает обмен данными, включая чтение данных из памяти и запись данных в память ЭВМ
Бабло - деньги. Произошло из блатного жаргона, употребляют неформалы, маргиналы...
На конференции употреблено впервые 20.01.2009 в 22.00
Я это слово, только процитировал без указания автора. Вы еще Ж... пропустили у некоторых.
Поэтому какие замечания... Только к знакам пунктуации.
Да. Иногда приходится писать из под УБУНТУ, где все кнопки перепутаны.
2 Из жизни - Рецензент обязан написать - "есть отдельные стилистические неточности".

3. О человеческом языке - эсперанто я не знаю, поэтому говорю на русском (опять занесло - больше не буду)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.