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

 
 
> Настоящие инструкции AVR и..., не очень.
muravei
сообщение Dec 9 2008, 18:08
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Знаю, часть мнемоник инструкций АВР сделаны из комерческих или иных соображений, и приводят к одному и тому же микрокоду. Нельзя узнать : сколько и какие?
Go to the top of the page
 
+Quote Post
4 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 57)
defunct
сообщение Dec 9 2008, 18:30
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(muravei @ Dec 9 2008, 20:08) *
Знаю, часть мнемоник инструкций АВР сделаны из комерческих или иных соображений, и приводят к одному и тому же микрокоду. Нельзя узнать : сколько и какие?

Из соображений удобства пользования.
lsl r
всяко удобнее и понятнее чем
add r,r

Скачайте документ AVR Instruction Set Reference , и поиском по ключевому тегу "(see" найдите все такие инструкции. Я насчитал всего 5.

CLR
CBR
LSL
ROL
TST
Go to the top of the page
 
+Quote Post
zhevak
сообщение Dec 9 2008, 19:08
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



+ две неудобочитаемых команды работы с флагами
SBI A, b ; установить бит b в адресном пространстве ввода/вывода
CBI A, b ; сбросить бит b в адресном пространстве ввода/вывода
дублируются парами команд
SEC CLS
SEN CLN
SEZ CLZ
SEI CLI
SES CLS
SEV CLV
SET CLT
SEH CLH

Если вы пишите на асме, то намного удобнее использовать команду запрета прерываний CLI, чем корячиться вспоминая адрес (= 0x3F) и бит (= 7) для команды
CBI <вспомни_адрес>, <вспомни_бит>.


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
singlskv
сообщение Dec 9 2008, 19:11
Сообщение #4


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(defunct @ Dec 9 2008, 21:30) *
Я насчитал всего 5.
CLR
CBR
LSL
ROL
TST
ИМХО, их намного больше чем 5, например:
brhc 1111 01kk kkkk k101
brhs 1111 00kk kkkk k101
brid 1111 01kk kkkk k111
brie 1111 00kk kkkk k111
идт...

те... 1111 xxkk kkkk kyyy
где:
xx=01 - if cleared
xx=00 - if set

yyy - номер бита в SREG

kkkkkkk - смещение

то есть, для всех этих команд, можно было бы писать что-нить типа
brc(s) yyy, kkkkkkk
yyy= C, I, H,.....

но по маркетинговым соображениям Атмел решил что команд дб много...
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Dec 9 2008, 19:17
Сообщение #5


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(muravei @ Dec 9 2008, 20:08) *
Знаю, .... сколько и какие?

Не просвятите ли, чем может помочь в работе подобное знание?
Единственное, что приходит в голову, это при разборе листинга знать, что существуют подобные синонимы и адекватно к этому относиться.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Dec 9 2008, 19:57
Сообщение #6


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

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



Цитата(zhevak @ Dec 9 2008, 21:08) *
+ две неудобочитаемых команды работы с флагами

Да ну? Вообще-то CBI и SBI работают только в диапазоне 0...31 и не достают до регистра статуса. Так что это отдельные команды для манипуляции конкретно регистром SREG.

По поводу условных переходов: если мне не изменяет память (документация далеко), то некоторые команды условного перехода - это не просто команды проверки единичных битов в регистре статуса, а команды проверки их комбинаций.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
singlskv
сообщение Dec 9 2008, 20:24
Сообщение #7


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Rst7 @ Dec 9 2008, 22:57) *
По поводу условных переходов: если мне не изменяет память (документация далеко), то некоторые команды условного перехода - это не просто команды проверки единичных битов в регистре статуса, а команды проверки их комбинаций.
Неа, там все однозначно
Код
breq 1111 00kk kkkk k001 Z=001(1)
brge 1111 01kk kkkk k100 V=100(4)
brhc 1111 01kk kkkk k101 H=101(5)
brid  1111 01kk kkkk k111 I=111(7)
brlo  1111 00kk kkkk k000 C=000(0)
brmi  1111 00 kk kkkk k010 N=010(2)
brtc  1111 01 kk kkkk k110 T=110(6)
brvs  1111 00 kk kkkk k011 V=011(3)
итд...
И я очень бы удивился если бы это было не так...
Go to the top of the page
 
+Quote Post
zhevak
сообщение Dec 9 2008, 20:30
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



Цитата(Rst7 @ Dec 10 2008, 00:57) *
Да ну? Вообще-то CBI и SBI работают только в диапазоне 0...31 и не достают до регистра статуса. Так что это отдельные команды для манипуляции конкретно регистром SREG.

Ах, да, действительно! Фигню полную сморозил. Стыдно, блин...
Спасибо за поравку.


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
Rst7
сообщение Dec 9 2008, 20:42
Сообщение #9


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

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



Цитата(singlskv @ Dec 9 2008, 22:24) *
Неа, там все однозначно
...
Код
brge 1111 01kk kkkk k100 V=100(4)
...
brvs  1111 00 kk kkkk k011 V=011(3)

А почему тут два разных номера (3 и 4), хотя флаг называется V и там, и там?


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Dec 9 2008, 20:52
Сообщение #10


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(singlskv @ Dec 9 2008, 23:24) *
Неа, там все однозначно


В самом деле ?
Цитата
Код
brge 1111 01kk kkkk k100 V=100(4)
И я очень бы удивился если бы это было не так...

Тогда, наверное, _внимательное_ прочтение "AVR Instruction Set" вызовет еще большее удивление... wink.gif
Go to the top of the page
 
+Quote Post
singlskv
сообщение Dec 9 2008, 21:17
Сообщение #11


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Rst7 @ Dec 9 2008, 23:42) *
А почему тут два разных номера (3 и 4), хотя флаг называется V и там, и там?
потому что чисто на автомате ошибся при выборе нужных инструкций...
смотрим инструкции brbc и brbs:
Код
If SREG(s) = 0 then PC <- PC + k + 1, else PC <- PC + 1
Syntax:                 Operands:                     Program Counter:
BRBC s, k               0 ≤ s ≤ 7, -64 ≤ k ≤ +63      PC <- PC + k + 1
PC <- PC + 1, if condition is false
16-bit Opcode:
1111 01kk kkkk ksss

Код
If SREG(s) = 1 then PC ← PC + k + 1, else PC ← PC + 1
Syntax:                  Operands:                          Program Counter:
BRBS s,k                 0 ≤ s ≤ 7, -64 ≤ k ≤ +63           PC <- PC + k + 1
                                                            PC <- PC + 1, if condition is false
16-bit Opcode:
1111 00kk kkkk ksss



Цитата(rx3apf @ Dec 9 2008, 23:52) *
Тогда, наверное, _внимательное_ прочтение "AVR Instruction Set" вызовет еще большее удивление... wink.gif
Чукча не читатель - чукча писатель, хотите поспорить насчет владения
AVR Instruction Set ? предлагайте задачу... тока не очень объемную please...
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Dec 9 2008, 21:25
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(singlskv @ Dec 9 2008, 23:11) *
но по маркетинговым соображениям Атмел решил что команд дб много...


Команд и должно быть много. Это удобнее.

Я не чуть бы не обиделся на Intel, в своё время, если бы вместо знаменитого "XRA A" применял бы всем понятное "CLR A".

И вообще не понимаю причины данного спора. Если вам не нравится мнемоника, то всегда можно программировать в кодах. Мне без разницы сколько реальных команд. Главное чтобы было понятно и удобно их применять.

Кроме того, маркетинг - вещь нужная. Я тоже пытаюсь использовать такие вещи. И мне как-то в голову не лезет, обвинять в этом кого-то ещё.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Dec 9 2008, 21:26
Сообщение #13


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(singlskv @ Dec 10 2008, 00:17) *
чукча писатель,

Самокритично...
Цитата
хотите поспорить насчет владения
AVR Instruction Set ? предлагайте задачу... тока не очень объемную please...

Нет, предлагаю лишь _внимательно_ прочитать :
-----
If Rd ≥ Rr (N ⊕ V = 0) then PC ← PC + k + 1, else PC ← PC + 1
-----
Это не слишком объемная задача ?
Go to the top of the page
 
+Quote Post
singlskv
сообщение Dec 9 2008, 21:36
Сообщение #14


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(rx3apf @ Dec 10 2008, 00:26) *
Самокритично...

Нет, предлагаю лишь _внимательно_ прочитать :
-----
If Rd ≥ Rr (N ⊕ V = 0) then PC ← PC + k + 1, else PC ← PC + 1
-----
Это не слишком объемная задача ?

это для команд brbc brbs ?
если нет, то и темы для обсуждения нет,
я имел в виду только их...
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Dec 9 2008, 22:01
Сообщение #15


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(singlskv @ Dec 10 2008, 00:36) *
это для команд brbc brbs ?
если нет, то и темы для обсуждения нет,
я имел в виду только их...

Вот это уже лучше. Потому как первоначально было:

---
По поводу условных переходов: если мне не изменяет память (документация далеко), то некоторые команды условного перехода - это не просто команды проверки единичных битов в регистре статуса, а команды проверки их комбинаций.
---
Неа, там все однозначно
---
Go to the top of the page
 
+Quote Post
singlskv
сообщение Dec 9 2008, 22:11
Сообщение #16


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(rx3apf @ Dec 10 2008, 01:01) *
Вот это уже лучше. Потому как первоначально было:

---
По поводу условных переходов: если мне не изменяет память (документация далеко), то некоторые команды условного перехода - это не просто команды проверки единичных битов в регистре статуса, а команды проверки их комбинаций.
---
Неа, там все однозначно
---

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

суть моих высказываний от этого не изменилась...
Go to the top of the page
 
+Quote Post
defunct
сообщение Dec 9 2008, 23:30
Сообщение #17


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(singlskv @ Dec 10 2008, 00:11) *
суть моих высказываний от этого не изменилась...

У Intel'a JZ == JE, и что? ;>
Команды переходов это IMHO особый случай, не думаю, что их стоит приплетать. Это просто правило хорошего тона иметь большой набор мнемоник для удобства пользования.

Когда удобнее сделать переход по результату мат. опреации - берем команды мат. переходов brsh, brlo ...
Когда удобнее флаговый синоним - пользуем флаговый синоним brcc, brcs ....
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Dec 9 2008, 23:33
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



А мне это нравится.

Возьмём к примеру BRCS и BRLO. Понятно, что это одно и тоже.
Но мне удобнее не парить себе голову и при сдвиге и обработке бита использовать BRCS (легко вспомнить C SET), а при сравнениях BRLO(легко вспомнить LOW).

ЗЫ: Обогнали. smile.gif
Go to the top of the page
 
+Quote Post
defunct
сообщение Dec 9 2008, 23:40
Сообщение #19


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(SasaVitebsk @ Dec 10 2008, 01:33) *
А мне это нравится.

Хотя как Игорь верно отметил выше, если вдуг пишем свой дизасм - эти синонимы доставят сложностей - не всегда ясно, что уместней поставить.
Go to the top of the page
 
+Quote Post
domowoj
сообщение Dec 9 2008, 23:49
Сообщение #20


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

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Цитата(muravei @ Dec 10 2008, 00:08) *
и приводят к одному и тому же микрокоду.

Почему к одному и тому же микрокоду-то?
Результату!!!

Сообщение отредактировал domowoj - Dec 9 2008, 23:51


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
ae_
сообщение Dec 10 2008, 06:34
Сообщение #21


Участник
***

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



Цитата(defunct @ Dec 10 2008, 02:30) *
... поиском по ключевому тегу "(see" найдите все такие инструкции. Я насчитал всего 5.
CLR
CBR
LSL
ROL
TST

вот ещё пара:
SER R16 = LDI R16, 0xFF
SBR R16, 0xNN = ORI R16, 0xNN

Цитата
+ две неудобочитаемых команды работы с флагами
SBI A, b ; установить бит b в адресном пространстве ввода/вывода
CBI A, b ; сбросить бит b в адресном пространстве ввода/вывода
дублируются парами команд
SEC CLS
SEN CLN
SEZ CLZ
SEI CLI
SES CLS
SEV CLV
SET CLT
SEH CLH

Возможно имелось ввиду, что для этих инструкций есть синоним BSET s, а не SBI/CBI.
Go to the top of the page
 
+Quote Post
Maik-vs
сообщение Dec 10 2008, 07:29
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101



Цитата(muravei @ Dec 9 2008, 21:08) *
Знаю, часть мнемоник инструкций АВР сделаны из комерческих или иных соображений, и приводят к одному и тому же микрокоду. Нельзя узнать : сколько и какие?

Если только Вам не лень. Напишите "программу", включающую все команды. Их возьмите из даташита на контроллер. Посмотрите в окно дизассемблера. И поймёте.

А чем CBR коммерчески более выгоден, чем ANDI?

Относительно проверки 2-х бит. Написано "If Rd < Rr (N [+] V = 1) then PC <- PC + k + 1, else PC <- PC + 1" Но ещё написано • Bit S: Sign Bit, S = N ⊕ V. Так что переход всё-таки по одному биту, который, правда, (из коммерческих соображений?) есть xor двух других бит того же регистра.

Помните, тут раньше встречался такой дотошный человек (забанили его), который исследовал код операции AVR на предмет оптимального распределения битов по полям(!), чтобы, значить, если сбойнёт бит в коде, так не было бы фатальных последствий.
Go to the top of the page
 
+Quote Post
muravei
сообщение Dec 10 2008, 08:30
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(IgorKossak @ Dec 9 2008, 22:17) *
Не просвятите ли, чем может помочь в работе подобное знание?

Ни чем! smile.gif
Простое здоровое не здоровое любопытство. (нужное зачеркнуть) smile.gif
Надеюсь , льзя?
Просто подумал, у ближайших конкурентов Атмела где-то около 30 команд, а у него в 4 раза больше!
Сразу ощущаешь гордость. Но понятно, что есть где-то ПЗУ микрокоманд и оно при большем числе , должно занимать большее место.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 10 2008, 10:25
Сообщение #24


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(muravei @ Dec 10 2008, 10:30) *
Просто подумал, у ближайших конкурентов Атмела где-то около 30 команд, а у него в 4 раза больше!
У MSP430 27 "настоящих" и 24 эмулируемых.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Dec 10 2008, 10:45
Сообщение #25


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(muravei @ Dec 10 2008, 11:30) *
Просто подумал, у ближайших конкурентов Атмела где-то около 30 команд, а у него в 4 раза больше!
Сразу ощущаешь гордость. Но понятно, что есть где-то ПЗУ микрокоманд и оно при большем числе , должно занимать большее место.

А смысл?
А гордость-то за что?
Ладно бы команды какие особенные были - как например у Z80 были автоматические блоковые и цикловые команды - вот это я понимаю.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
muravei
сообщение Dec 10 2008, 11:43
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(MrYuran @ Dec 10 2008, 13:45) *
автоматические блоковые и цикловые команды - вот это я понимаю.

А я нет !
Это "вредные" команды, они по 250 тактов делались, или типа того.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Dec 10 2008, 11:53
Сообщение #27


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(muravei @ Dec 10 2008, 14:43) *
А я нет !
Это "вредные" команды, они по 250 тактов делались, или типа того.

Мой склероз подсказывает, что 13 тактов на итерацию. Правда, это были фактически программные циклы, которые можно было прервать (прерыванием) в любой момент, и затем спокойно продолжить. На каждом цикле заново выбирался код операции и все такое...

Точно, склероз - 21 такт (загрузки или сравнение) на итерацию !

Сообщение отредактировал rx3apf - Dec 10 2008, 12:13
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Dec 10 2008, 16:28
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(muravei @ Dec 10 2008, 12:30) *
Ни чем! smile.gif
Простое здоровое не здоровое любопытство. (нужное зачеркнуть) smile.gif
Надеюсь , льзя?
Просто подумал, у ближайших конкурентов Атмела где-то около 30 команд, а у него в 4 раза больше!
Сразу ощущаешь гордость. Но понятно, что есть где-то ПЗУ микрокоманд и оно при большем числе , должно занимать большее место.


Даже если откинуть бредовые ser и т.п., и зачеркнуть дублированные - всё равно команд больше. И как не ехиднечай все они используются компилятором. movw, adiw, sbiw, ldd и т.д и т.п., что, в целом, делает прогу эффективнее.

Что-то насчёт ПЗУ микрокоманд, вы похоже загнули. Это не пентиум. smile.gif
1 такт на команду. То есть обычный дешифратор команд, скорее всего.
Go to the top of the page
 
+Quote Post
muravei
сообщение Dec 10 2008, 18:06
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(SasaVitebsk @ Dec 10 2008, 19:28) *
Что-то насчёт ПЗУ микрокоманд, вы похоже загнули.

Я бы к словам не предирался, да и Вы , судя по всему "унутрь" не заглядывали.
Go to the top of the page
 
+Quote Post
ARV
сообщение Dec 10 2008, 18:19
Сообщение #30


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

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(rx3apf @ Dec 10 2008, 14:53) *
Мой склероз подсказывает, что 13 тактов на итерацию. Правда, это были фактически программные циклы, которые можно было прервать (прерыванием) в любой момент, и затем спокойно продолжить. На каждом цикле заново выбирался код операции и все такое...

Точно, склероз - 21 такт (загрузки или сравнение) на итерацию !

а REP MOVSB в Intel-ах не забыли? smile.gif за одну команду ассемблера скопировать 64К памяти smile.gif можно и больше smile.gif


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Dec 10 2008, 20:41
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(muravei @ Dec 10 2008, 22:06) *
Я бы к словам не предирался, да и Вы , судя по всему "унутрь" не заглядывали.

Не придираюсь. Не заглядывал. smile.gif
Но микрокоманды предполагают разбиение истинной команды на микрокоманды и выполнение её за несколько внутренних тактов. Так что тут принципиальная неточность. Обычно так реализуется CISC ядро на базе RISC.
Go to the top of the page
 
+Quote Post
muravei
сообщение Dec 11 2008, 08:06
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(SasaVitebsk @ Dec 10 2008, 23:41) *
Не придираюсь. Не заглядывал. smile.gif

Верю. smile.gif
А по поводу внутренних тактов: "их есть у них"
См. ДС на 1200 стр. 9 рис. 12
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Dec 12 2008, 10:29
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(muravei @ Dec 11 2008, 12:06) *
Верю. smile.gif
А по поводу внутренних тактов: "их есть у них"
См. ДС на 1200 стр. 9 рис. 12


Ну и "их нет у них". Чётко видно что все операции выполняются по переднему и заднему фронтам CLK.
Оно и понятно. МК от кнопки работает. то есть на любой частоте. Процы с умножителями - так не умеют.

К тому же видно что сама операция с ALU - одномоментная. Это видно и по системе команд. 2-ух и более тактные - только команды со сложной выборкой.
Go to the top of the page
 
+Quote Post
LordVader
сообщение Dec 12 2008, 12:04
Сообщение #34


Частый гость
**

Группа: Участник
Сообщений: 127
Регистрация: 18-10-06
Пользователь №: 21 418



Цитата(SasaVitebsk @ Dec 12 2008, 13:29) *
Ну и "их нет у них". Чётко видно что все операции выполняются по переднему и заднему фронтам CLK.
Оно и понятно. МК от кнопки работает. то есть на любой частоте. Процы с умножителями - так не умеют.


Забавно, кстати. На заглавной страничке пишут "fully static operation", а дальше "не меняйте внешнюю частоту больше, чем на 2% за раз, а то всё заглючит". А в каком-то чипе так и вообще, после смены коэф. делителя рекомендуют 8 нопов, чтоб, стало быть, не сглючило... Наводит на мысли по отсутствию-наличию умножителя.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Dec 12 2008, 13:05
Сообщение #35


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Код
ld Rx,Y == ldd Rx,Y+0
ld Rx,Z == ldd Rx,Z+0

st Y/Z - аналогично.
Скока ужЕ насчитали? smile.gif
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Dec 12 2008, 16:41
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(_Pasha @ Dec 12 2008, 17:05) *
Код
ld Rx,Y == ldd Rx,Y+0
ld Rx,Z == ldd Rx,Z+0

st Y/Z - аналогично.
Скока ужЕ насчитали? smile.gif


biggrin.gif

Придурки вот сидят в этом Atmel!!! Придумывают инструкции ненужные никому.
Надо было оставить вместо ld Rx,Y -- ldd Rx,Y+0 !!!

Красиво, понятно, логично, лаконичнее, удобно!!!
Особенно для тех кто пишет ассемблеры/ дизасемблеры. Им работы меньше на 0.5%. Их же больше чем тех, которые пишут на ASM.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 12 2008, 16:50
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(SasaVitebsk @ Dec 12 2008, 19:41) *
Надо было оставить вместо ld Rx,Y -- ldd Rx,Y+0 !!!

Тогда ld/st X стали бы каким-то исключением. Все правильно сделали.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Dec 12 2008, 16:59
Сообщение #38


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(SasaVitebsk @ Dec 12 2008, 20:41) *
Придумывают инструкции ненужные никому.

Точно. Вот какой смысл в инструкции adiw r30,0 ? smile.gif
Если серьезно, то это следствие неидеальной ортогональности системы команд. Патамушо уже все укра приду микрочип, короче, красивее по системе команд. В смысле 8-битники
Go to the top of the page
 
+Quote Post
singlskv
сообщение Dec 12 2008, 17:15
Сообщение #39


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(_Pasha @ Dec 12 2008, 19:59) *
Точно. Вот какой смысл в инструкции adiw r30,0 ? smile.gif
В проверке флагов ... smile.gif
для 2 байтового слова между прочим...
Go to the top of the page
 
+Quote Post
klop
сообщение Dec 31 2008, 07:41
Сообщение #40


Местный
***

Группа: Свой
Сообщений: 433
Регистрация: 28-02-06
Пользователь №: 14 788



Цитата(SasaVitebsk @ Dec 12 2008, 13:29) *
Чётко видно что все операции выполняются по переднему и заднему фронтам CLK.


Ну ето Вы загнули. Там внутри ядра все по rising edge выполгяется.
Go to the top of the page
 
+Quote Post
Maik-vs
сообщение Dec 31 2008, 08:44
Сообщение #41


Местный
***

Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101



Цитата(LordVader @ Dec 12 2008, 15:04) *
Забавно, кстати. На заглавной страничке пишут "fully static operation", а дальше "не меняйте внешнюю частоту больше, чем на 2% за раз, а то всё заглючит". А в каком-то чипе так и вообще, после смены коэф. делителя рекомендуют 8 нопов, чтоб, стало быть, не сглючило... Наводит на мысли по отсутствию-наличию умножителя.

"Если кто-то кое-где у нас порой..."

Ссылку на даташит привести не затруднит?
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Dec 31 2008, 11:15
Сообщение #42


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(klop @ Dec 31 2008, 11:41) *
Ну ето Вы загнули. Там внутри ядра все по rising edge выполгяется.

smile.gif
Это исключено. Да и по диаграме видно. Видно и по работе с портами. Короче обсуждалось уже.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Dec 31 2008, 11:54
Сообщение #43


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

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



Цитата
Видно и по работе с портами.


По работе с портами видно исключительно фронт тактового сигнала.

Цитата
Короче обсуждалось уже.


Ссылку на обсуждение не найдете?

Цитата
Да и по диаграме видно.


Если Вы про диаграмму Single Cycle ALU Operation, то та диаграмма значит вот что - по фронту фиксируется дешифрированная команда, а дальше, до результата, готового на write-back все на банальных задержках между элементами. Это же все банальная комбинационная логика, синхросигналов не требует. А по следующему фронту, при необходимости, делается write-back в нужный регистр. При этом, если значение этого регистра нужно в следующем цикле, то оно так-же появится на выходе регистрового файла через некоторое время. Просто картинка нарисованна при максимальной тактовой частоте. Если бы ее нарисовать при малой частоте, то она выглядела бы как фронт синхросигнала, быстренько Register Operands Fetch, ALU Operation Execute, и потом длинный-длинный Result Write Back аж до следующего фронта. Где-то посередине Result Write Back будет и спад тактового сигнала.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Dec 31 2008, 16:14
Сообщение #44


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Пересмотрел документ "Embedded RISC Microcontroller Core AVR".
Готов согласится с вами. В общем то я просто отрицал умножение.

Тем не менее использование обоих фронтов синхросигнала - весьма распротраннённая практика. В том числе и для CPU. Я не вижу принципиальных затруднений для использования такой синхронизации. Это отнюдь не мешает процу быть статическим. Можно проверить отсутствие этого путём тактирования проца предельной частотой с большой скважностью сигнала.
Go to the top of the page
 
+Quote Post
klop
сообщение Dec 31 2008, 22:44
Сообщение #45


Местный
***

Группа: Свой
Сообщений: 433
Регистрация: 28-02-06
Пользователь №: 14 788



О сколько нам открытий чудных.... 07.gif

Цитата(SasaVitebsk @ Dec 31 2008, 19:14) *
Тем не менее использование обоих фронтов синхросигнала - весьма распротраннённая практика.


Простите где ? С тех пор как перестали использовать latch работа по двум фронтам не в почете.
Вникните в разницу межде ARM7TDMI и ARM7TDMI-S например. В нормальной RTL team за работу по двум фронтам (вне специально оговоренных мест которые обычно расположены поближе к ногам чипа) дают по шее(так же кстати как и за latch). Загляните кстати в RMM.

Цитата(SasaVitebsk @ Dec 31 2008, 19:14) *
В том числе и для CPU.


Ответственно заявляю и в AVR и в ARM (который -S) и в MIPS например 4K(лень рыть доки и искать были ли MIPS на latch но по моему не было) используется только rising edge.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jan 1 2009, 01:36
Сообщение #46


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(klop @ Jan 1 2009, 02:44) *
Простите где ?

Например в ОЗУ.

Простите, я не могу с вами спорить. Это спор глухого с немым. Не вы ни я не знаем используется или нет. Просто банально не знаем. Мне, к тому же, никто по шее не даёт.
Знакомых разработчиков процов у меня нет, по этому никто не жаловался.

Может у вас знакомый разработчик AVR ядра? Или вы в доке приведёте мне место, где чётко указано, что нет не единой операции тактируемой задним фронтом?

Пока это чистый выпендрёж. То есть я не утверждаю что он используется. Я за этим просто не слежу (и это по крайней мере честно), но утверждать что либо не берусь, именно по причине отсутствия знаний. В каком-то процессоре я чётко видел инвертирование CLK и использование 2 фаз.

Ещё раз - я, в предыдущем посте, согласился. Но поясните мне, пожалуйста, что случится если я применю два фронта сигнала?
По возможности доступно.
Go to the top of the page
 
+Quote Post
klop
сообщение Jan 1 2009, 23:35
Сообщение #47


Местный
***

Группа: Свой
Сообщений: 433
Регистрация: 28-02-06
Пользователь №: 14 788



Цитата(SasaVitebsk @ Jan 1 2009, 04:36) *
Может у вас знакомый разработчик AVR ядра?


Вы удивитесь но ето так. И самопальные AVR у меня в столе лежат уже года 4. В их ядре falling edge не используктся и количество тактов на иструкцию полностью совпадает с оригиналом. Но вас же это все равно не убедит crying.gif

Впрочем-
Any register in the core will update its contents only on the positive edge of cp2.
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  doc0890.pdf ( 969.52 килобайт ) Кол-во скачиваний: 47
 
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jan 2 2009, 21:17
Сообщение #48


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(klop @ Jan 2 2009, 03:35) *
Но вас же это все равно не убедит crying.gif

Ну почему же.
Перечитайте внимательно мой пост 44. Обратите внимание на наименование документа, на который я ссылаюсь.

Мне просто не нравится вот это ...
Цитата
Ответственно заявляю и в AVR и в ARM (который -S) и в MIPS например 4K...
. Почему? Да потому, что вы никто чтобы что-то ответственно заявлять. Я тоже. Но я и не заявляю. Я могу предполагать и ошибаться. И вы тоже, хотя пока, по видимому, ещё об этом не знаете.

PS: Возьмите даташит на 1200. Выберите раздел "Parallel programming". Рис. 33. Рассмотрите её. Обратите внимание на сигнал tXLWL. С такой вот расшифровкой: XTAL1 Low to WR Low. Вот кто его знает? Может всётаки где-то данный сигнал и применяется? Согласно документа, который привели выи на который ссылался я, задний фронт не применяется для работы с памятью и, соответственно, при работе с портами I/O так как они отображаются на память.
Go to the top of the page
 
+Quote Post
klop
сообщение Jan 2 2009, 22:20
Сообщение #49


Местный
***

Группа: Свой
Сообщений: 433
Регистрация: 28-02-06
Пользователь №: 14 788



Цитата(SasaVitebsk @ Jan 3 2009, 00:17) *
Почему? Да потому, что вы никто чтобы что-то ответственно заявлять.


Улыбнуло. lol.gif
Извините у меня род деятельности такой - проверять(прототипировать) проекты на FPGA перед тем как они на фаб уйдут и поправить уже будет ничего нельзя. Соответственно и RTL различных ядер у меня перед глазами постоянно. Впрочем я уже понял что доказать вам что либо нереально. biggrin.gif


P.S.

Цитата(SasaVitebsk @ Jan 3 2009, 00:17) *
Согласно документа, который привели выи на который ссылался я, задний фронт не применяется для работы с памятью и, соответственно, при работе с портами I/O так как они отображаются на память.


В моем документе написано английским по белому что все регистры работают по фронту. Page 3 Table 1.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jan 3 2009, 20:05
Сообщение #50


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(klop @ Jan 3 2009, 02:20) *
Впрочем я уже понял что доказать вам что либо нереально. biggrin.gif


Да нет. Я признал свою ошибку в посте 44 сразу после поста Rst7. Причём ваших усилий не понадобилось. Я просто сам посмотрел документ, который вы привели 5 постами позже.
Я как раз человек сомневающийся в своей правоте. Поэтому стараюсь избегать категоричных заявлений.

А вот таким как вы, людей обладающих абсолютным знанием, доказать что-либо действительно нереально. Более того, даже посеять сомнение в вашей голове - нереально. И таких знатоков от бога, много во всех областях. Выделяют их всегда категоричные заявления и обширные знания. Аргументы другой стороны они не замечают. Нафига снисходить до конкретных пунктов? Можно просто снисходительно, свысока своих знаний посмеяться, а вопросы оставить без ответов.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jan 3 2009, 20:53
Сообщение #51


.
******

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



SasaVitebsk, смените у себя в профиле "профессионал" на "нытик" или "зануда" smile.gif
klop дело говорит.

2 klop
Случайно не знаете, почему АВРовцы не делают более быстрые AVR по принципу как в LPC (расширение разрядности внутреннего флэша) ? Ведь так легко можно сделать AVR и в 2 и в 4 раза быстрее. Раз у Вас в их конторе свой чел, то может он в курсе дела.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
defunct
сообщение Jan 4 2009, 01:56
Сообщение #52


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(GetSmart @ Jan 3 2009, 22:53) *
2 klop
Случайно не знаете, почему АВРовцы не делают более быстрые AVR по принципу как в LPC (расширение разрядности внутреннего флэша) ?

Еще в ту же степь - разбили бы память программ на 2 банка, RAM и FLASH. NRWW - Flash, RWW - RAM smile.gif
Вектора подменять на "лету" и программ грузить из dataflash сколько хочешь smile.gif
Go to the top of the page
 
+Quote Post
mse
сообщение Jan 4 2009, 08:52
Сообщение #53


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



Цитата(GetSmart @ Jan 3 2009, 23:53) *
Случайно не знаете, почему АВРовцы не делают более быстрые AVR по принципу как в LPC (расширение разрядности внутреннего флэша) ? Ведь так легко можно сделать AVR и в 2 и в 4 раза быстрее.

Скорее всего - какие-нить патентные заморочки. И рады бы, да дорого или просто не продают. А может быть, чтобы не было внутрифирменной конкуренции продуктов.
Их, блин, не поймёш. Эт только после 10 лет в Гарварде... ;О)
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jan 4 2009, 11:38
Сообщение #54


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(defunct @ Jan 4 2009, 04:56) *
Еще в ту же степь - разбили бы память программ на 2 банка, RAM и FLASH. NRWW - Flash, RWW - RAM smile.gif
Вектора подменять на "лету" и программ грузить из dataflash сколько хочешь smile.gif

Вот так и было сделано в старых (теперь уже) мобильниках от Ericsson (T39, R520 и аналогичных). Только процессор там стоял заказной, периферия была своя и лежала кучкой существенно выше. А ядро - то самое, AVR. А, ну и флешак был параллельный...
Go to the top of the page
 
+Quote Post
LordVader
сообщение Jan 4 2009, 13:19
Сообщение #55


Частый гость
**

Группа: Участник
Сообщений: 127
Регистрация: 18-10-06
Пользователь №: 21 418



Цитата(Maik-vs @ Dec 31 2008, 11:44) *
"Если кто-то кое-где у нас порой..."

Ссылку на даташит привести не затруднит?


Пожалуйста. atmega128, страница 371:
===
3. Stabilizing time needed when changing XDIV Register
After increasing the source clock frequency more than 2% with settings in the XDIV register,
the device may execute some of the subsequent instructions incorrectly.
===

ещё, страница 43 там же
===
When applying an external clock, it is required to avoid sudden changes in the applied clock fre-
quency to ensure stable operation of the MCU. A variation in frequency of more than 2% from
one clock cycle to the next can lead to unpredictable behavior. It is required to ensure that the
MCU is kept in Reset during such changes in the clock frequency.
===


attiny25, страница 31
===
Avoid changing the calibration value in large steps when calibrating the calibrated internal RC
Oscillator to ensure stable operation of the MCU. A variation in frequency of more than 2% from
one cycle to the next can lead to unpredicatble behavior. Changes in OSCCAL should not
exceed 0x20 for each calibration. It is required to ensure that the MCU is kept in Reset during
such changes in the clock frequency
===

Сообщение отредактировал LordVader - Jan 4 2009, 13:21
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jan 4 2009, 14:06
Сообщение #56


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



А вот пусть klop прокоментирует. Он же ядро знает.
Go to the top of the page
 
+Quote Post
Maik-vs
сообщение Jan 5 2009, 11:58
Сообщение #57


Местный
***

Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101



Цитата(LordVader @ Jan 4 2009, 16:19) *
Пожалуйста.
... A variation in frequency of more than 2% from
one clock cycle to the next can lead to unpredictable behavior. ...

Спасибо. Действительно, везде, где задаётся частота, воткнута эта фраза.
Тактовая частота указана min 0 MHz max 20 MHz. Конкретно частота упомянута "To use a 32.768 kHz watch crystal as the clock source for the device, the low-frequency crystal oscillator must be selected by setting CKSEL..."; аж даже зачесались руки потактировать её от кнопки smile.gif. Получается, тактовая может меняться на 3 порядка без малого, а ещё есть System Clock Prescaler с делением до 1:256 значит, тактовая ядра меняется на 5 порядков, но не более чем 2% за такт?

Действительно, пусть klop объяснит.

Сообщение отредактировал Maik-vs - Jan 5 2009, 12:18
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jan 5 2009, 17:19
Сообщение #58


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Похоже, конструктивного продолжения темы не предвидется.
Пока не пришлось выносить предупреждения, закрываю тему.
Go to the top of the page
 
+Quote Post

4 страниц V   1 2 3 > » 
Closed TopicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


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


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