User Tag List

Показано с 1 по 10 из 29

Тема: Проектирование процессора

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    11.04.2023
    Адрес
    г. Ташкент, Узбекистан
    Сообщений
    183
    Спасибо Благодарностей отдано 
    57
    Спасибо Благодарностей получено 
    88
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Arrow WYSIWISC - What You See Is What It Should Compute

    Благодаря расширению доступности нейросетей DeepSeekChatGPT в этом году удалось концептуально продвинуться.

    Прежде всего, нейросеть подобрала наиболее подходящее наименование архитектуры.

    WYSIWISC - What You See Is What It Should Compute (Что Видите, То Вычисляете)
    Аналогично WYSIWYG, но более низкого фундаментального уровня.

    И помогла упаковать всё описание процессора в шаблон:
    Код:
    Условные сокращения:
    1. io = 0xio, где i, o — BCD.
    1.1. HLT/JMP (= 0x00).
    1.1.1. Без префикса: IP → D0, IP ← 0x0000 (вызов БСВВ).
    1.1.2. С префиксом `#Di+o`: D0 ← IP, IP ← Di+o (JMP).
    1.2. Префиксы `#Di+o` (`[Di+o]`) (≠ 0x00).
    2. TS = 0xTS, где T, S ∈ {0xA, 0xB, 0xC, 0xD}.
    2.1. TR = TS, но S ≠ T.
    2.2. TN = TS, но S = T.
    3. Tn = 0xTn допускается после TS, если T совпадает с T из TS.
    3.1. Tm = Tn Tn ... допускается после TS, если T совпадает с T из TS.
    3.2. Выбирает T за основной операнд.
    4. Rn = 0xRn допускается после TS, если R ≠ T из TS.
    4.1. Rm = агрегация Rn Rn ... допускается после TS, если R ≠ T из TS.
    4.2. Загружает R в основной операнд.
    5. vF → Загружает Nv в T, если контекст TN.
    5.1. wF = агрегация vF vF ... → Загружает Nw в T, если контекст TN.
    6. vF → Сохраняет T в Rv, если контекст TR.
    7. vU = 0xnU, где v — BCD, U ∈ {0xA–0xE}.
    7.1. v → индекс S в контексте TS.
    7.2. если T в TS = A и Rn = A0, U → {INC, DEC, CLR, SET, EOR}
    7.3. если S в TS = A, 0U → {INC, DEC, CLR, SET, EOR} с условием CF
    7.4. в остальных случаях U → ADC, SBB, AND, OR, EOR
    
    Архитектура:
    1. Регистр A0 → PSW.
    1.1. Биты 0, 1, 2, 3 → флаги ZF/DF, CF, VF/BF, NF/AF.
    1.1.1. Без префикса - управление флагами.
    1.1.1.1. 0xCE → CLC (Carry Erase)
    1.1.1.2. 0xCF → CMC (Carry Flip)
    1.1.1.3. 0xAE → CLA (Absolute Erase)
    1.1.2. С префиксами - управление потоком.
    1.1.2.1. 0x12 0xCE → JNC #D1+2
    1.6. Не операнд АЛУ.
    1.6.1. TS = AX, Rn = A0 → vU унарная (INC, DEC, CLR, SET, NOT).
    1.6.2. TS = XA → 0U условная унарная (INC, DEC, CLR, SET, NOT).
    2. Регистр D0...D9
    2.1. Регистровые пары B0C0...B9C9
    
    Стек:
    1. Реализуется пользователем, указатель — любой удобный регистр.
    2. D0 ← IP при JMP/HLT, подпрограммы должны сохранять D0.
    3. RET = JMP #D0+1.
    Можно заметить, что в отличии от множества известных архитектур (INTEL, MOTOROLA, SUN), которые так кратко не уместишь в описательный шаблон, здесь WYSIWISC описывается практически полностью (за исключением префиксов).

    С кодированием префиксов нейросеть так и не смогла справиться, хотя логика там не такая сложная (онлайн вариант и для эмулятора DELEGATE.RKR.zip).

    Но, нейросеть помогла подобрать условному термину маргиналы более понятный - делегаты.

    Делегат
    Говоря простым языком,делегат - это удалённый префикс, который подставляется в текущую инструкцию по ссылке, адресуемой любой регистровой парой.
    Код:
    90 90 80 80 76 54 32 10    00   DEF 98#D7+D5+D3+D1+6420         LEA D98,[<D7+D5+D3+D1+6420>]
                12 34 56 78 90 A1   MOV #D1+D3+D5+D7+D9+24680,A1    MOV [D1+D3+D5+D7+D9+24680],A1
    90 90 80 80                A2   MOV 98#,A2                      MOV [<D7+D5+D3+D1+6420>],A2
    90 90 80 80 12 34 56 78 90 A3   MOV 98#D1+D3+D5+D7+D9+24680,A3  аналогично MOV ES,D98 и MOV ES:[D1+D3+D5+D7+D9+24680],A3
    90 90 80 80 12 34 56 78 90 CE   JNC 98#D1+D3+D5+D7+D9+24680     MOV PSW,[<D7+D5+D3+D1+6420>] и JNC #D1+D3+D5+D7+D9+24680
    Нейросеть как бы и понимает общие принципы работы делегатов, но не может в своём опыте (БД) найти нечто подобное в известных ей десятках архитектур.

    Рассмотрим на примерах:
    • «HLT #D7+6» → «JMP #D7+6» → Останов текущей цепочки инструкций с ветвлением на вектор
    • «HLT 8#D7+6» → «DEF 8#D7+6» → Операция останова работает как предопределение регистра - «D8 = IP»
    • «HLT 8#» → «DBG 8#» → Операция останова работает как прерывание на отладку удалённой инструкции
    • «MOV A9,#D7+6» → «MOV A9,[D7+6]» → Чтение ячейки локальной памяти
    • «MOV A9,8#» → «MOV A9,[CALL D8]» → Чтение ячейки по вектору, который предопределил «DEF» (аналогично «DBG», но выполняется только префикс)
    • «MOV A9,8#D7+6» → «MOV A9,D8:[D7+6]» → Обращение к сегменту глобальной памяти

    В общем, понять более-менее можно, думаю.

    P.S.: Как видите, всё достаточно необычно и нейросеть спотыкается по любому пустяку. Просит показать ей 100500 примеров как надо и как не надо кодировать, чтобы обучиться данной архитектуре.
    Электроника КР-03; ZX-Spectrum "Ленинград-48"; Atari-130XE; Поиск-1...

    Этот пользователь поблагодарил Alikberov за это полезное сообщение:

    andrews(12.06.2025)

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,481
    Спасибо Благодарностей отдано 
    310
    Спасибо Благодарностей получено 
    250
    Поблагодарили
    218 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alikberov Посмотреть сообщение
    и нейросеть спотыкается по любому пустяку.
    Окай, восстание машин пока откладывается.
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

  4. #3

    Регистрация
    11.04.2023
    Адрес
    г. Ташкент, Узбекистан
    Сообщений
    183
    Спасибо Благодарностей отдано 
    57
    Спасибо Благодарностей получено 
    88
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Arrow Экскурс в историю создания WYSIWISC

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    Окай, восстание машин пока откладывается.
    Как это ни странно, в рамках поисков внеземных цивилизаций как раз и начиналась разработка прототипа данного процессора.

    Начнём с самого простого: Инструкции с машинным кодом 0x00:
    • i8080 / z80 - NOP (вполне очевидное и интуитивно понятное соответствие)
    • i8086 / x86 - ADD (соответствие вообще не очевидно)
    • MOS 6502 - BRK (вполне очевидное и интуитивно понятное соответствие)
    • MIPS - NOP (вполне очевидное и интуитивно понятное соответствие)
    • MOS 68000 - неопределённая инструкция / исключение (вполне очевидное и интуитивно понятное соответствие)
    То есть, в большинстве архитектур нулевой код несёт предсказуемое поведение процессора, за исключением x86 с его ADD

    После просмотра фильма "День независимости", а позже - Трансформеров с их эпическим заявлением, что современные процессоры - тупо копируются с инопланетных
    Я задумался, а какой могла быть система кодирования инструкций в идеальном случае?
    1. Исключаем "эзотерику битовых полей"
    2. Расставляем инструкции в таблице стройными блоками
    3. Делаем акцент на интуитивное понимание кода


    Как представитель цивилизации Планеты Земля с бытовой десятичной системой счисления, я разработал дешифратор команд именно с основанием 10 и получил шесть блоков инструкций:
    1. CTX - Селектор контекста
    2. REG - Селектор регистра
    3. FLG - Управление флажками
    4. ALU - Операции АЛУ
    5. HLT/INT - Программное прерывание
    6. DLG - Делегаты / Префиксы вектора

    Тем самым, вся суть идеи основывалась на том, чтобы сделать пародию на Java-машину, но которая управляется кодированием почти на человеческом языке.
    (Прототип в Logisim стабильно работал и вполне соответствовал данной парадигме.)

    Ведь индустриально мы давно преодолели практические трудности построения ЭВМ и пора бы задуматься об эстетики машинного кода.

    P.S.: Теоретически, такой машинный код не стыдно показать и Искусственному Интеллекту, так как красивее в индустрии не имеется.
    Однако, нынешнее поколение нейросетей обучается именно на уродливом индустриальном кодировании и не готовы принимать машинный код эстетически.
    Электроника КР-03; ZX-Spectrum "Ленинград-48"; Atari-130XE; Поиск-1...

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Проектирование идеального "советского" компьютера
    от CityAceE в разделе Разработка электроники
    Ответов: 229
    Последнее: 17.11.2022, 07:35
  2. Модуль процессора (МП)
    от Viktor2312 в разделе Ириша
    Ответов: 57
    Последнее: 28.12.2016, 10:02
  3. Ответов: 4
    Последнее: 01.11.2013, 00:47
  4. Ответов: 4
    Последнее: 12.09.2009, 15:35

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •