|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Давайте думать над железкой (TRIADOR)
Author |
Message |
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
Ничего не понял. Как мне кажется, устанавливать флаги нужно при арифметических операциях (инкремент и сложение). А вот как делать ветвление всё же неясно. Shaos предлагал пропуск одной операции делать. Это пропустить-одну-команду-если-нулевой флаг? Если да, то какой именно флаг? Знака или переполнения?
|
03 Oct 2017 13:59 |
|
|
jdigreze
God
Joined: 02 Jan 2006 02:28 Posts: 1390 Location: Abakan
|
Условные пропуски - это из RISC. Позволяет иметь всего одну операндную команду безусловного перехода и несколько безоперандных команд пропуска, либо одну операндную команду безусловного перехода и одну операндную команду пропуска.
Как программист: для циклов удобно иметь флаг zero, т.е. досчитали до нуля - вывалились из цикла. Этот же флаг удобен для сравнения двух чисел, если A-B=0, то числа равны.
|
03 Oct 2017 18:10 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Спорно. Я по жизни предпочитаю флаг С в циклах - "вывалиться за ноль с заёмом или переносом". В жизни встречались ситуации когда в силу стечения непредвиденных факторов программа пропускает флаг Z - тогда она уйдёт на второй цикл - совершенно не нужный, а по флагу С - этого не случится. Смешно, но это сработало в совершенно дикой ситуации - когда мы тестировали ранние dll-модели разработанного на форуме процессора для Proteus. У меня циклы были по флагу С - поэтому работало всё четко - а тут выяснилось, что в модели флаг Z выставляется не всегда правильно.
_________________ iLavr
|
04 Oct 2017 03:06 |
|
|
jdigreze
God
Joined: 02 Jan 2006 02:28 Posts: 1390 Location: Abakan
|
Да, такое возможно, но и без флага Z проблематично работать.
|
04 Oct 2017 03:44 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А вот пробабушка всея микропроцессоров - PDP-8 - без него как-то обходилась!
_________________ iLavr
|
04 Oct 2017 04:00 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Вот это - годная мысль! В троичном компьютере надо мыслить троично!
_________________ iLavr
|
04 Oct 2017 04:08 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Но тем не менее, объединить C и Z в один троичный флаг вполне можно.
_________________ iLavr
|
04 Oct 2017 04:30 |
|
|
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
А смысл? По знаку можно иметь три разных джампа - jump zero, jump positive, jump negative...
|
04 Oct 2017 04:32 |
|
|
jdigreze
God
Joined: 02 Jan 2006 02:28 Posts: 1390 Location: Abakan
|
Да, действительно - здравая мысль! Джамп - не джамп, "пропуск" - "не пропуск", но если сделать "пропуск" с операндом, то, имхо, будет очень даже юзабельно. Этакий branch с операндом по выбранным позициям флагов.
|
04 Oct 2017 06:14 |
|
|
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
Граждане, предлагайте, пожалуйста, конкретную реализации в рамках архитектуры Расширенная команда операнда не предполагает, но можно его взять из аккумулятора. Как может выглядеть такой бранч?
|
04 Oct 2017 06:16 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Я не готов это детально прокомментировать сейчас, но мне казалось, в троичной системе должен быть один условный джамп на три условия. По крайней мере, к этому нас сподвигала пресловутая "задача о весах"... Ну, то есть, в зависимость от флага positive, zero, negative джамп "джампает" на два разных адреса или не "джампает". Вы не обижайтесь, если мы что-то пишем не то, но я по собственному опыту так понимаю, что мы втроем несколько по-разному представляем структуру того, что Вы сейчас делаете. У Вас "железки" на руках, и Вы себе цель представляете лучше всех, причем не только цель, но и возможность её реализации в реальных железках. А мы, порой, выглядим как "советы постороннего"...
_________________ iLavr
|
04 Oct 2017 07:10 |
|
|
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
А что это за задача о весах? Я совсем не обижаюсь, зачем мне это, вовсе даже наоборот, учусь. Просто мне не все предложения понятны, вот и пытаюсь понять. Спасибо за предложения!
В рамках предложенной архитектуры настоящий условный переход мне кажется слишком громоздким, поэтому есть два варианта:
1) Сделать просто пропуск одной команды если флаг ненулевой, и не пропускать ничего, если нулевой. В пропущенную команду запрятать безусловный переход. Этих же команд можно сделать три разные версии (не только для нуля, но и для N и P)
2) Сделать пропуск двух, одной и ни одной команды в зависимости от троичного значения флага. В пропущенные команды запрятать безусловные переходы. Таким образом делается настоящий троичный условный переход, но меньшей кровью.
Оба этих варианта хороши тем, что у них нет операнда (в расширенных командах этой архитектуры операнда не предусматривается). Вопрос, перпендикулярный выбору типа перехода, сколько флагов нужно и переход по каким флагам нужен. Насколько я понимаю, хорошо бы сделать переход по знаку и по переполнению в арифметических операциях, так?
|
04 Oct 2017 07:23 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Задачей о весах обычно иллюстрируют преимущество троичной системы над двоичной. В том плане, то, что двоичная система проверяет в два условия, троичная система может проверить в одно. Честно говоря, меня давно интересует, как мы это сделаем, поэтому и флаг я предлагаю один троичный с троичным джампом. Мне кажется, Shaos, где-то здесь отвечал на мой вопрос о троичном условном джампе, но то ли мне не понравилось тогда, то ли я его не до конца понял. А "задача о весах" - в частности, в нужном ракурсе упоминается здесь: http://www.computer-museum.ru/articles/precomp/1375/
_________________ iLavr
|
04 Oct 2017 08:22 |
|
|
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
Нет, безусловный переход входит в набор базовых команд, и имеет прямой аргумент в опкоде. Доп. регистры не нужны.
|
04 Oct 2017 12:27 |
|
|
jdigreze
God
Joined: 02 Jan 2006 02:28 Posts: 1390 Location: Abakan
|
Да, так, наверно, будет наиболее удачно.
|
04 Oct 2017 17:56 |
|
|
Who is online |
Users browsing this forum: No registered users and 43 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|