User Tag List

Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 29 из 29

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

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

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

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

    Lightbulb WYSIWISC - What You See Is What It Should Compute

    Цитата Сообщение от andrews Посмотреть сообщение
    DeepSeek хорошо работает как помощник и интересный инструмент в умелых руках.
    Да, это мой первый опыт тесного взаимодействия с нейросетью (как динозавр, узнал о DeepSeek из выпуска новостей по телевизору).
    Вопрос только в том, что когда Вы ее чему-то новому научите не станет ли это доступно всем?
    Полагаете, идею могут украсть?
    В DeepSeek нету групповых сессий.
    Кстати DeepSeek довольно хорошо умеет писать кросс-ассемблеры и простые консольные симуляторы. Другое я пока не успел попробовать.
    Я пытался на РК синтезатор голоса на уровне гласных реализовать под четыре форманты.

    Да, нейронка здорово помогла ответить на вопросы, которыми мучался лет 25.

    Но вот с WYSIWISC она не справляется. В частности, LLVM backend под WYSIWISC получается слишком сложным из-за множества нюансов.
    Да и контекст постоянно теряет.
    С префиксами и делегатами - вообще всё слишком сложно.

    Конкретно под тему - разработал/отладил узел обработки префиксов.



    P.S.: Вообще, прожект продвигается крайне тяжело.
    Очень много противоречий в нём: Архитектура - 8-битная, адресация - 16-битная или 32-битная с делегатами.
    Например, нейросеть не представляет принцип т.н. разыменования некоторых указателей, что мешает разработке полного эмулятора.
    Электроника КР-03; ZX-Spectrum "Ленинград-48"; Atari-130XE; Поиск-1...

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

  3. #2

    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,870
    Спасибо Благодарностей отдано 
    521
    Спасибо Благодарностей получено 
    251
    Поблагодарили
    225 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alikberov Посмотреть сообщение
    Полагаете, идею могут украсть?
    не проверял, но вот входил сам под разными аккаунтами и во второй раз начинал с результатов, полученных после многих итераций на первом аккаунте и DeepSeek продолжал уже не с "нуля" и довольно быстро пришел к требуемому результату.

    - - - Добавлено - - -

    Цитата Сообщение от Alikberov Посмотреть сообщение
    нейросеть не представляет принцип т.н. разыменования некоторых указателей, что мешает разработке полного эмулятора.
    естественно, если вы предлагаете что-то новое, то он уясняет не сразу, а после нескольких итераций. Иногда, кстати, зацикливается, и надо проявить изобретательность, чтобы заставить его двигаться вперед. На русском языке надо быть предельно точным и однозначным в общении с ним. На английском не пробовал, так как не владею им на том же уровне, что русским.

  4. #3

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

    Lightbulb

    Цитата Сообщение от andrews Посмотреть сообщение
    входил сам под разными аккаунтами и во второй раз начинал с результатов, полученных после многих итераций на первом аккаунте и DeepSeek продолжал уже не с "нуля" и довольно быстро пришел к требуемому результату.
    Может всё дело в т.н. температуре?
    Если в начале сессии указать "максимальную температуру", нейронка будет иметь вольнодумства в процессе мышления.
    Цитата Сообщение от andrews Посмотреть сообщение
    если вы предлагаете что-то новое, то он уясняет не сразу, а после нескольких итераций. Иногда, кстати, зацикливается, и надо проявить изобретательность
    Представлял ей готовые модули на JavaScript и Verilog. Притворяется, что "теперь всё понятно", но всё также допускает грубые ошибки.

    Исходный текст шаблона таков:
    Код:
    Условные сокращения числовых индексов:
    	- "i" - цифра от 0 до 9 для указания индекса регистра-индекса/базы;
    	- "o" - цифра от 0 до 9 для накопительного указания относительного смещения;
    	- "n" - цифра от 0 до 9;
    	- "v" - цифра от 0 до 9;
    	- "m" - число от 00 и выше, количество разрядов не ограничено:
    		- каждая цифра числа последовательно конкатенируется в цепочку однотипных операций.
    	- "w" - число от 00 и выше, количество разрядов не ограничено:
    		- каждая цифра числа последовательно конкатенируется в цепочку однотипных операций.
    
    Условные сокращения регистров и регистровых групп:
    	- Обобщение:
    		- "R" - регистр-приёмник / "Receiver" → R ∈ {"A", "B", "C" или "D"} (0xA-0xD в старшем ниббле);
    		- "T" - регистр-транслятор / "Translator" → T ∈ {"A", "B", "C" или "D"} (0xA-0xD в младшем ниббле).
    	- Особые случаи:
    		- "G" - псевдоним "T", где регистр-источник из группы регистра-приёмника (`ARG R,G`, где G ∈ R):
    			- формальная FOR-пересылка из регистра-транслятора в регистр-приёмник;
    			- служебная команда REG устанавливает индекс регистра-приёмника;
    			- служебные команды REG в непрерывной цепочке - расширяют индекс регистра-приёмника.
    		- "S" - псевдоним "T", где регистр-источник/спасатель не из группы регистра-приёмника (`ARG R,S`, где S ∉ R):
    			- может работать как регистр-источник или регистр-спасатель;
    			- формальное FOR-сохранение регистра-приёмника в регистр-транслятор;
    			- служебная команда REG работает как инструкция MOV;
    			- служебные команды REG в непрерывной цепочке - расширяют индекс регистра-источника.
    		- "P" - набор префиксов и указателей адреса "Pointer":
    			- используются регистры группы "D".
    
    Основное правило:
    	- принцип WYSIWYG:
    		- Семантическое кодирование кода инструкции всегда имеет соответствующую ассоциативную смысловую нагрузку:
    			- Необходимо соблюдать семантику операций, зашифрованную в визуальном представлении кода;
    			- Шестнадцатеричное визуальное представление 8-битного машинного кода влияет на смысл и логику действия инструкции;
    		- Имена регистров кодируются аналогичным кодом в служебных командах:
    			- Две регистровые группы приёмника и транслятора - `RT`:
    				- Служебная команда "ARG R,T", "ARG R,G" или "ARG R,S" управляют контекстом:
    					- Предопределяет операнды всех последующих операций АЛУ;
    					- Предопределяет контекст всех последующих операций АЛУ, REG и MOV;
    					- Последующие команды наследуют контекст до очередного предопределения;
    					- Кодируется нибблами регистровых групп;
    					- Допускается указание "ARG R,R", где регистр-приёмник и регистр транслятор находятся в одной группе.
    				- Служебная команда "ARG Rn/m,T", "ARG Rn/m,G" или "ARG Rn/m,S" управляют контекстом и предопределяет регистр-приёмник Rn или Rm:
    					- Расширенный синтаксис, где после "ARG" следует "REG Rn" или "REG Rm".
    			- Имя регистра-приёмника с цифровым `Rn` или многозначным `Rm+` индексом:
    				- Служебная команда "REG Rn";
    				- Цепочка служебных команд "REG Rm"+ производит последовательную конкатенацию индекса "nm..."+:
    					- Последовательные команды "REG" конкатенируют цифры индекса в порядке их появления - слева направо.
    				- Последующие команды работают с заданным регистром "Rn" или "Rm+";
    				- Кодируется именем самого регистра.
    			- Две регистровые группы индексированного приёмника и транслятора - `RT Rn` или `RT Rm+`:
    				1. Служебная команда "ARG R,T", "ARG R,G" или "ARG R,S";
    				2. Одна служебная команда "REG Rn";
    				3. И цепочка из служебных команд "REG Rm"+ далее, если требуется.
    			- Пересылка в регистр-приёмник из регистров других групп:
    				- Кодируются именами регистров-источников:
    					- Команда "MOV Rn,Sv" → Пересылка из Sv в Rn;
    					- Цепочка команд "MOV Rn,Sw" расширяет индекс источника конкатенацией цифр w в порядке их появления.
    			- Регистры кодируются нибблами, соответствующие их именам.
    		- Тем самым, каждый код следует осмысленно интерпретировать как аббревиатуру из двух нибблов:
    			- Индекс регистра-транслятора (v) и имя операции (U) - код "vU" операции АЛУ (приёмник,источник):
    				- Допустимые базовые операции:
    					- Имя операции - семантическая ассоциативная буква младшего ниббла (U ∈ "A".."E"):
    						- Сложение (A) с переносом и Вычитание (B) с займом:
    							- Для операций сложения и вычитания без займа:
    								- Требуется команда "CLC".
    						- Конъюнкция (C) побитовая и Дизъюнкция (D) побитовая;
    						- Исключающее ИЛИ (E).
    			- Индекс регистра-транслятора (v или w) и младший ниббл `F`:
    				- Старший ниббл (v или w) определяет индекс регистр-источника:
    					- Контекст (G/S) зависит от типа ARG (R,G или R,S).
    				- Форсированная пересылка в контексте "ARG R,T":
    					- MOV Sv,Rn → Пересылка из Rn (R) в Sv (S ∉ R);
    					- MOV Rn,Gv → Пересылка в Rn из Gv (G ∈ R):
    						- Если выбран контекст "R,R";
    						- В активный регистр-приёмник из "Gv" или, конкатенацией, из "Gvw..."+.
    			- Вектор программного прерывания на адрес, старший байт которого является кодом инструкции:
    				- Команда "INT E0..FF" - вызов подпрограммы по адресу E000..FF00;
    				- Команда "HLT" - частный случай прерывания "INT 00" с кодом "00";
    				- Команда "JMP #Di+o" - частный случай "HLT" с префиксами адреса.
    			- Управление флажками PSW:
    				- Бит 0 - флаг "DF" ("Different Flag"), признак "разницы" (аналогичен флагу ZF);
    				- Бит 1 - флаг "CF" ("Carry Flag"), признак "переноса" (аналогичен флагу CF);
    				- Бит 2 - флаг "BF" ("Biggest Flag"), признак "переполнения" (аналогичен флагу OF);
    				- Бит 3 - флаг "AF" ("Absolute Flag"), признак "абсолютного числа" (аналогичен флагу SF).
    				- Имя флага кодируется в код инструкции:
    					- Без префиксов:
    						- "CF": "Carry Flip" - аналогичен "CMC";
    						- "CE": "Carry Erase" - аналогичен "CLC":
    							- Требуется операциям "ADC"/"SBB" для выполнения "ADD"/"SUB".
    					- С префиксами адреса образуются аналогичные инструкции условного ветвления, как "JMP":
    						- "io CF": "Jump if Carry Flipped" - аналогичен "JCF/JC #Di+o";
    						- "io CE": "Jump if Carry Erased" - аналогичен "JCE/JNC #Di+o".
    		- Префикс кодируется двумя цифровыми нибблами "io" и составляет вектор:
    			- Интерпретируется как:
    				- `#Di+[nDj+mDk+...]+o`, где:
    					- `Di` - базовый регистр (первый префикс);
    					- `n`, `m` и т.д. - коэффициенты индексных регистров;
    					- `o` - конкатенация всех цифр "o" из префиксов (ведущие нули отбрасываются);
    					- `#` - маркер регистра базы (всегда коэффициент "1").
    			- Правила:
    				- Лидирующий регистр базы:
    					- Помечается как регистр базы "#Di";
    					- Всегда имеет коэффициент "+1";
    					- Открывает пустой уровень суммы вкладов индексных регистров:
    						- `#Di+(0)+o`.
    				- Повторяющийся регистр базы "Di":
    					- Не может в цепочке далее приращиваться к индексной сумме;
    					- Не изменяет собственного коэффициента;
    					- Рекурсивно масштабирует с коэффициентом 2 все текущие вхождения индексных регистров:
    						- Каждое повторение базового регистра масштабирует текущие коэффициенты индексных регистров на 2. Новые индексы, добавленные после этого, имеют коэффициент 1.
    				- Индексные регистры:
    					- Новые индексы добавляются с коэффициентом "+1".
    					- Первое вхождение регистра:
    						- Делает вклад в сумму с коэффициентом "+1";
    					- Повторное вхождение регистра:
    						- Проверяется коэффициент вклада в индексную сумму:
    							- При чётном коэффициенте:
    								- Инкриминирует его коэффициент на единицу.
    							- При нечётном коэффициенте:
    								- Все текущие коэффициенты индексного ряда рекурсивно масштабируются на 2;
    								- Инкриминирует его коэффициент на единицу.
    				- Цифры "o" относительного смещения:
    					- Последовательным набором разрядов отдельным членом выражения представляют десятичное число поизвольной длины;
    					- Накапливаются последовательным, слева-направо, набором конкатенации в десятичном смещении вектора;
    					- Являются отдельным членом выражения относительного смещения;
    					- Не зависят от комбинаций регистров базы и индексов в цепочке;
    					- Не оказывают влияние на коэффициенты индексных регистров.
    				- Количество префиксов перед любой операцией не ограничивается.
    			- Математическая модель адреса:
    				- Адрес = #Di + Σ(k_j * D_j) + o, где:
    					- k_j = 2^m * (n_j), 
    					- m — количество повторений базового регистра Di,
    					- n_j — количество добавлений Dj с учётом чётности.
    			- Алгоритм кодирования:
    				- Для коэффициента k_j:
    					- Представить k_j в двоичной форме:
    					- Каждое вхождение 1 в младшем разряде соответствует добавлению Dj с масштабированием.
    					- Пример для 18D2:
    						- 18 = 2^4 + 2^1 → цепочка: 20 → 10 → 28 → 10 → 28 → 10 → 28.
    Нейросеть, соответственно, оптимизировала его по токенам и сжала до:
    Код:
    Условные сокращения:
    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
    Я уж думал - победа!
    Но ничего существенно не изменилось.

    Одна из проблем - потеря контекста:
    Код:
    AB A1 B2 → MOV A1,B2
    ;;;;;;;;;;;;;;;;;;;;;;
    AB       → CTX A,B   ; Контекст: Приёмник A, Источник B
       A1    → REG A1    ; Конкретно Регистр A1
          B2 → MOV A1,B2 ; Пересылка (не REG B2, так как Приёмник - группа A).
    И нейросеть постоянно забывает, что если Источник и Приёмник не менялись, атомарную инструкцию CTX указывать не стоит, как и атомарный REG, если индекс Приёмника не меняется.
    Пустячок, правда? Однако, нейросеть жалуется на то, что ни в одной из знакомых ей архитектур действие атомарных инструкций не может распространяться на сотни последующих. Из-за чего она в стратегическом планировании кода путается.
    И это - малая доля сложностей.
    Ещё нейронка говорит, что самому человеку в уме легко держать текущий контекст, так как интуитивнно это очевидно. А нейросети приходится постоянно пересматривать код.
    Последний раз редактировалось Alikberov; 13.06.2025 в 14:39.
    Электроника КР-03; ZX-Spectrum "Ленинград-48"; Atari-130XE; Поиск-1...

  5. #4

    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,870
    Спасибо Благодарностей отдано 
    521
    Спасибо Благодарностей получено 
    251
    Поблагодарили
    225 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Надо разжевывать очевидное. Если начинает циклиться, удалять этот чат, сохранив себе нужные результаты и открывать новый чат. Подозреваю, что таким способом можно уничтожать причины, по которым она "зацикливается".

    Можно попробовать прямо указать ей, чтобы он не рассматривала эти архитектуры при решении вашей задачи. Или дать им негативную оценку. Она никогда не решает проблему глобально, если вы этого не допускаете. Играет каждый раз только и исключительно с вами!
    Последний раз редактировалось andrews; 13.06.2025 в 17:12.

  6. #5

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

    Arrow WYSIWISC - нужно прочувствовать интуитивно

    Цитата Сообщение от andrews Посмотреть сообщение
    Надо разжевывать очевидное. Если начинает циклиться, удалять этот чат, сохранив себе нужные результаты и открывать новый чат. Подозреваю, что таким способом можно уничтожать причины, по которым она "зацикливается".
    Да-да, именно так я и делал.
    У меня было с десяток новых сессий, пока я учился конкретно формулировать запросы, включая туда наиболее удачные моменты.
    Можно попробовать прямо указать ей, чтобы он не рассматривала эти архитектуры при решении вашей задачи. Или дать им негативную оценку. Она никогда не решает проблему глобально, если вы этого не допускаете. Играет каждый раз только и исключительно с вами!
    И это я тоже подчёркивал.
    Последний раз редактировалось Alikberov; 14.06.2025 в 10:51.
    Электроника КР-03; ZX-Spectrum "Ленинград-48"; Atari-130XE; Поиск-1...

  7. #6

    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,870
    Спасибо Благодарностей отдано 
    521
    Спасибо Благодарностей получено 
    251
    Поблагодарили
    225 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я бы опробовал все конструкции русского языка. Например: "почему ты не хочешь понять, что во-первых..." и т.д. Проверял усвоение знаний контрольными вопросами, возможно с выбором вариантов( верный и не верный). "Ты сделала неправильный выбор, потому что..." "Сколько раз тебе говорить, что..." "Даже мне понятно, что..." "Объясни, что непонятного в том, что..." ну и т.д. и т.п. Как будто бы перед Вами туповатый и/или ленивый ученик. И не закрывайте чат, в котором она показала понимание. Мне не известно, переходит ли полученное знание на все открытые чаты в аккаунте или нет.

    Вот только что она пыталась настоять в моем проекте на неработающей версии деления двух целых чисел для z80. Я ее "загнал в угол" вот такой фразой.

    "Меня моя версия вполне устраивает. Она оттестирована и рабочая"
    После чего последовало:
    "Отлично! Если ваша версия процедуры деления работает корректно и прошла тестирование, оставлю её без изменений. Вот полный код zxcc.cpp с вашей рабочей версией деления"
    Последний раз редактировалось andrews; 14.06.2025 в 11:47.

  8. #7

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

    Talking 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-эмулятор с учётом достигнутых соображений.
    А потом - посмотреть, как интерпретировать все эти странные инструкции.
    Электроника КР-03; ZX-Spectrum "Ленинград-48"; Atari-130XE; Поиск-1...

  9. #8

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

    Arrow небольшие уточнения

    Есть одна мысль с вынесением всего архитектурного состояния из ядра во внешнюю память.
    • Считывается из памяти значение Счётчика Команд PC
    • Считывается код команды по адресу PC
    • Считываются из памяти нужные РОН / PSW
    • Выполняется команда
    • Сохраняются в память все изменённые РОН / PSW
    • Сохраняется в память Счётчик Команд PC

    Тем самым, переключая страницы ОЗУ можно легко переключаться между задачами, а также наращивать мультипроцессорную систему.

    Понятное дело, это потребует гигантского количества циклов.
    Опытные схемы в Logisim и модели в Verilog почти работали. Счётчик машинных циклов задавал от двух до десяти циклов, что занимало от 6 до 30 тактов на одну атомарную инструкцию.
    Нажмите на изображение для увеличения. 

Название:	MachineCounter.jpg 
Просмотров:	25 
Размер:	77.2 Кб 
ID:	82404
    Нейросеть заявляет, что пдобных архитектур в чистом виде не знает, хотя чем-то похоже на SPARC.

    P.S.: Нейросеть рекомендует инструкцию HLT переименовать в BRK, что отсылает уже к прототипу 2019 года, когда я мнемонически думал назвать код 00 вообще END.
    Но, всё это - косметика, так как не меняет ни сути, ни логики. Лишь облегчает визуальное ассоциативное восприятие.
    Последний раз редактировалось Alikberov; 20.06.2025 в 20:05.
    Электроника КР-03; ZX-Spectrum "Ленинград-48"; Atari-130XE; Поиск-1...

  10. #9

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

    Arrow Дешифратор команд - минимальная схема

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

Название:	Decoder.jpg 
Просмотров:	31 
Размер:	63.5 Кб 
ID:	82408
    Здесь сигнал HLT_OP отсутствует и предполагает обработку через PTR_OP, так как разбор префиксов - довольно сложное дело и можно переложить HLT/BRK на него как частный случай.
    Последний раз редактировалось Alikberov; 21.06.2025 в 16:03.
    Электроника КР-03; ZX-Spectrum "Ленинград-48"; Atari-130XE; Поиск-1...

Страница 3 из 3 ПерваяПервая 123

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

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

Эту тему просматривают: 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

Ваши права

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