Архитектура компьютераКоманды инкремента/декремента адреса памяти.

В отпуске, пишу не с рабочего компа, пароля к форуму под рукой нет, поэтому анонимом. Вообще-то это пишет kvas.
Просто подумалось, если принять, что архитектура памяти будет состоять из двухтрайтных слов, а адресация сделана так, что значение последнего трита определяет, адресуется ли старший трайт слова (значение "+1"), младший трайт слова (значение "-1"), или слово целиком (значение "0").

Тогда потребуется специфическая команда инкремента адреса памяти, которая не будет всегда добавлять единицу, а будет в зависимости от значения последнего трита аргумента делать следующее:
"+1" - прибавляет 1,
"-1" - прибавляет 2,
"0" - прибавляет 3,
и парная ей команда декремента адреса памяти, которая не будет всегда вычитать единицу, а будет в зависимости от значения последнего трита аргумента делать следующее:
"-1" - вычитает 1,
"+1" - вычитает 2,
"0" - прибавляет 3.

Это всё можно реализовать и программно, но аппаратная реализация может сэкономить, на мой взгляд, много-много тактов. Уж слишком часто применяться эти команды будут.

kvas,

Мнения

  • 001kvas

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

    • 002Бармалейкин

      Немного напоминает ADDQ и SUBQиз набора команд процессоров Motorola серии MC680x0, они способны увеличивать и уменьшать численное значение регистра на 0...7. Выполняются быстрее чем использование простого сложения и вычитания, в основном потому, что их коды на два байта короче ADDI и SUBI.

      • 003kvas

        Похожи немного, но логика другая, сам понимаешь. У моторолл эти команды - ускоренное добавление/вычитание небольших чисел. Хотя можно их использовать и для работы с адресами памяти. А моё предложение - это специальные команды, которые позволят на специфически устроенной структуре памяти троичных ЭВМ, типа "Сетунь", свободно получать адрес следующего слова или трайта.
        Если таких команд не будет, то получение следующего адреса последовательных ячеек будет требовать либо циклического сдвига, чтобы младший трит стал старшим, и ветвления по знаку, либо ещё более сложной программной реализации.

        • 004rvnick

          На сколько правильно понимаю ситуацию, речь идёт о приспособлении двухтрайтовой памяти (на ооснове 24-битной шины)
          к однотрайтному (12-битов) процессору типа "Сетунь -70". Таблица команд "Сетунь -70" мне к сожалению неизвестна,
          (может кто знает?),знаю что всего 81 команда, и добавить ещё две без изменения размера управляющего слова будет
          проблематично.Может удастся решить проблему "механическим" способом?

          • 005kvas

            Так тип процессора, как я думаю, это только тип, а не все детали реализации 1-в-1.
            И если трайт будет 6-ти тритный, то даже после отведения одного трита под различитель команд на множества общих/пользовательских/системных, управляющему слову остаётся 5 тритов, то есть 243 значения.

            • 006rvnick

              Ну во общем то думалось. что система команд и архитектура процессора крепко связаны.
              Если не клон "Сетунь-70" то наверное команды сложного инкремента/декремента адреса памяти
              будет неплохо. В случае с "Сетунь-70", там дела обстоят жестче. В управляющем трайте-слоге
              два трита отводится под определение слога. Если значения этих тритов равны нулю,
              то слово считается как команда, оставшиеся четыре бита являются кодом команды.
              Значение одного управляющего трита определяет к какой странице памяти, адрес которой хранится в соответствующем
              регистре,происходит обращение чтения-записи. Значение другого трита определяет формат выбираемых или записываемых
              данных в память, одно-,двух- или трёхтрайтовые данные. Более качественно с этим можно ознакомиться
              в http://www.vntb.ru/setun/BrousentsovZhogolevMaslov1.pdf (странно. что этой работы нет
              в разделе "Публикации по троичной информатике и троичным компьютерам" trinary.ru).
              Уже упоминавшиеся четыре трита определяют код 81 комманды.
              Хотя может и не все клеточки заполнены и есть возможность вписать туда новые команды.

              • 007Alexander ObukhovТринари

                Для размещения таких ресурсов требуется разрешение, хотя бы от ВНТБ.