WYSIWISC - нужно прочувствовать интуитивно
Цитата:
Сообщение от
andrews
Надо разжевывать очевидное. Если начинает циклиться, удалять этот чат, сохранив себе нужные результаты и открывать новый чат. Подозреваю, что таким способом можно уничтожать причины, по которым она "зацикливается".
Да-да, именно так я и делал.
У меня было с десяток новых сессий, пока я учился конкретно формулировать запросы, включая туда наиболее удачные моменты.
Цитата:
Можно попробовать прямо указать ей, чтобы он не рассматривала эти архитектуры при решении вашей задачи. Или дать им негативную оценку. Она никогда не решает проблему глобально, если вы этого не допускаете. Играет каждый раз только и исключительно с вами!
И это я тоже подчёркивал.
WYSIWISC - нужно прочувствовать интуитивно
Цитата:
Сообщение от
andrews
Я бы опробовал все конструкции русского языка
В конце-концов я лишний раз убедился, что нейронка может помочь лишь в подборе корректных терминологий (делегаты точнее отражают суть, чем маргиналы) и обратить внимание на то, что годами не привлекало внимания (ссылки, где делегат и база - один регистр: Примерно как «MOV AX,BX:[BX]»).
Общее представление о делегатах
Для ясности, в качестве примера возьмём самую популярную архитектуру - Intel x86.
Так как сегментные регистры CS: DS: ES: FS: GS: SS: не являются ортогональными РОН, для упрощения буду успользовать вольную адресацию.
Например, здесь «MOV AL,DX:[BX+1]» - регистр DX работает в качестве сегментного.
Однако, нейронка спросила, как интерпретировать инструкцию «MOV AL,BX:[BX+1]», где регистр BX - и сегмент, и база?
И вот эта ситуация поставила меня в тупик.
В классике жанра, нейросеть предложила просто вырабатывать исключение в таких случаях. Однако, это - не мой метод, так как дешифратор команд имеет сложную эвристику, чтобы избежать исключений.
Например, аналогичное «ADD AX,FX» - это просто «INC AX», так как регистр признаков FX игнорируется и отбрасывается.
Аналогично как и «ADD FX,AX», где нельзя с флагами проводить непосредственные операции АЛУ: Это «CINC AX» - условный INC по признаку CF. То есть, «ADD AX,CF».
Таким образом, инструкция «MOV DX:[DX+CX*12+3],BX» должна тоже что-то полезное выполнять, а не генерировать исключение по пустякам.
Адресация делегатами
Если в x86 вектор «ES:[BX]» формирует -20-битный адрес ((ES<<4)+BX), у меня шина адреса - 16-битная.
Но, регистр сегмента выдаётся как адрес отдельным сигналом (BX по сигналу ALE, ES по сигналу делегирования DEL).
То есть, если аппаратно система работает только с ALE, инструкции с делегированием адресного пространства не будут работать с 4 Гб памяти внешней периферии.
А если DEL учитывается, то по DEL формируется индекс УВВ (65536 УВВ страницами по 65536 ячеек - 4 Гб), что позволяет в 8-битной среде с 16-битной адресацией через регистровые пары формировать 32-разрядный адрес.
Согласитесь: Это довольно необычно.
Это всё в комплексе и срывает башню нейросети.
Она не предлагает подходящие решения, а засыпает меня десятком шаблонных решений: Разыменование указателей, генерация исключений и т.п.
P.S.: Просто нужно сесть и попытаться написать очередной WYSIWISC-эмулятор с учётом достигнутых соображений.
А потом - посмотреть, как интерпретировать все эти странные инструкции.
Экскурс в историю создания WYSIWISC
Цитата:
Сообщение от
CodeMaster
Окай, восстание машин пока откладывается.
Как это ни странно, в рамках поисков внеземных цивилизаций как раз и начиналась разработка прототипа данного процессора.
Начнём с самого простого: Инструкции с машинным кодом 0x00:- i8080 / z80 - NOP (вполне очевидное и интуитивно понятное соответствие)
- i8086 / x86 - ADD (соответствие вообще не очевидно)
- MOS 6502 - BRK (вполне очевидное и интуитивно понятное соответствие)
- MIPS - NOP (вполне очевидное и интуитивно понятное соответствие)
- MOS 68000 - неопределённая инструкция / исключение (вполне очевидное и интуитивно понятное соответствие)
То есть, в большинстве архитектур нулевой код несёт предсказуемое поведение процессора, за исключением x86 с его ADD:v2_dizzy_facepalm:
После просмотра фильма "День независимости", а позже - Трансформеров с их эпическим заявлением, что современные процессоры - тупо копируются с инопланетных:v2_dizzy_facepalm::v2_diz zy_facepalm::v2_dizzy_facepalm:
Я задумался, а какой могла быть система кодирования инструкций в идеальном случае?
- Исключаем "эзотерику битовых полей"
- Расставляем инструкции в таблице стройными блоками
- Делаем акцент на интуитивное понимание кода
Как представитель цивилизации Планеты Земля с бытовой десятичной системой счисления, я разработал дешифратор команд именно с основанием 10 и получил шесть блоков инструкций:- CTX - Селектор контекста
- REG - Селектор регистра
- FLG - Управление флажками
- ALU - Операции АЛУ
- HLT/INT - Программное прерывание
- DLG - Делегаты / Префиксы вектора
Тем самым, вся суть идеи основывалась на том, чтобы сделать пародию на Java-машину, но которая управляется кодированием почти на человеческом языке.
(Прототип в Logisim стабильно работал и вполне соответствовал данной парадигме.)
Ведь индустриально мы давно преодолели практические трудности построения ЭВМ и пора бы задуматься об эстетики машинного кода.:v2_dizzy_punk:
P.S.: Теоретически, такой машинный код не стыдно показать и Искусственному Интеллекту, так как красивее в индустрии не имеется.
Однако, нынешнее поколение нейросетей обучается именно на уродливом индустриальном кодировании и не готовы принимать машинный код эстетически.
Вложений: 1
Дешифратор команд - минимальная схема
Перепроектировал схему дешифратора команд.
Минимум вентилей - не более трёх на цепочку "бинарный код - операция".
Вложение 82408
Здесь сигнал HLT_OP отсутствует и предполагает обработку через PTR_OP, так как разбор префиксов - довольно сложное дело и можно переложить HLT/BRK на него как частный случай.