User Tag List

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 29

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

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

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

    Регистрация
    27.11.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    974
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    164 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alikberov Посмотреть сообщение
    А что, если…

    Научить дешифратор команд учитывать предыдущий код?


    То есть, процессор хоть и 8-битный, но количество регистров в нём практически ничем не ограничивается и может достигать сотен, тысяч и миллионов…

    P.S.: Новое слово в концепции «процессорных секций»???
    "Всё украдено до нас" все эти фичи уже придуманы и реализованы в современных процессорах. гугл в "теме"...

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

  3. #2

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

    По умолчанию

    Цитата Сообщение от AlexG Посмотреть сообщение
    "Всё украдено до нас" все эти фичи уже придуманы и реализованы в современных процессорах. гугл в "теме"...
    Да, я, кажется, в курсе: Все эти конвейеры, суперскалярности и пр…
    Речь идёт именно о чистом 8-битном CISC (без суперскалярного RISC-ядра внутри).

    И, теоретически, его на ИМС ТТЛ собрать можно.
    Конечно, он будет побольше схемы того же «Микро-80», но, как можно заметить, архитектура - масштабируема в обе стороны: Можно выполнить и с 4-разрядными РОН на К1533ИР39

  4. #3

    Регистрация
    20.01.2010
    Адрес
    г. Зеленоград
    Сообщений
    600
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    231
    Поблагодарили
    123 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alikberov Посмотреть сообщение
    То есть, процессор хоть и 8-битный, но количество регистров в нём практически ничем не ограничивается и может достигать сотен, тысяч и миллионов…

    P.S.: Новое слово в концепции «процессорных секций»???
    GCC ещё в прошлом веке компилировал для виртуальной машины с 4G регистров, а потом отображал виртуальные регистры на физические, а что не влезло -- на стек. Сейчас в любом ведрофоне Dalvik с той же концепцией. А зачатки -- это ещё доисторический ископаемый SPARC, а точнее -- Berkeley RISC Machine, скоро полвека ей ужё будет.

    Историю надо знать.

  5. #4

    Регистрация
    27.11.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    974
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    164 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    абсолютно НЕ важно какая разрядность и вид команд - от слова СОВСЕМ. к примеру кеш-память применяли как минимум в 70г.

  6. #5

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

    По умолчанию

    Цитата Сообщение от vegapiratradio Посмотреть сообщение
    любопытный процессор получается!
    будет готовая модель на верилог? компилятор для PC?
    Сейчас я над этим и работаю (в зомби-режиме - жарко очень), так как Гугл-Силикон пока ещё принимает заявки…

    А с другой стороны, как бы там ни было, а тема посвящена именно Концептуальному Процессору!

    Т.е. процессор разрабатывается именно как с дружелюбным машинным кодом, в стиле WYSIWYG (что видите - то имеете) жанра "Акына" (что вижу - то и пою)…

    Он, процессор, не задумывался для полёта в космос.
    А задумывался так, чтобы даже домохозяйка могла бы разобраться в нём.
    (Правда, префиксы и маргиналы как-то уж сильно всё подзапутали, но концепцию не нарушают.)

    Только в свете новых открытий (маргиналов и безразмерного регистрового файла) ещё JavaScript-эмулятор подтянуть надо, так как это какой-то «8-битный мэйнфрейм» получается (привет, CRAY!)…

    P.S.: Те, кто «в теме» (дамп-кодирования) - поймут и тему подхватят…
    Код:
    0000 DD D3 08 3F		LEA	D3,TEXT
    0005 F8 18			INT	F818
    0007 00				HLT
    0008 48 45 4C 4C 4F 00	TEXT:	DB "HELLO",0
    А большего и не ожидается…
    Эмулятор на BASH: BashEmu.zip
    (Клавиша F7 - строчный ассемблер)
    Последний раз редактировалось Alikberov; 04.07.2023 в 08:05. Причина: закачал эмулятор на BASH

  7. #6

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

    Post Эмулятор на BASH

    Те, кто «в теме» (дамп-кодирования) - поймут и тему подхватят…
    Код:
    0000 DD D3 08 3F		LEA	D3,TEXT
    0005 F8 18			INT	F818
    0007 00				HLT
    0008 48 45 4C 4C 4F 00	TEXT:	DB "HELLO",0
    Для тех, кто дружит с Raspberry Pi и его богатым периферийным интерфейсом, был написан черновой вариант эмулятора на BASH: BashEmu.zip
    • F1 - Справка
    • F2 - Режим "классический" и "стандартный"
    • F3 - Один шаг эмуляции/отладчика
    • F4 - Редактор дампа ОЗУ (встроенный)
    • Shift+F4 - редактор дампа файла ПЗУ (внешним hexcurse)
    • F5 - Сброс эмуляции
    • F6 - Исполнение кода до команды HLT
    • F7 - Строчный ассемблер с записью кода команды на текущую позицию IP
    Конечно, эмулятор ещё не отлажен и не полный. Но базовые принципы понять позволяет.
    Ограниченно и с глюками поддерживает указатели и маргиналы.

    Но, как понимаете, Bash - не среда для разработки подобных эмуляторов: Следует использовать Python хотя бы.
    Эмулятор писался с целью глубокого изучения самого Bash для большего его освоения.

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

    murgatroid_79(10.07.2023)

  8. #7

    Регистрация
    11.04.2023
    Адрес
    г. Ташкент, Узбекистан
    Сообщений
    180
    Спасибо Благодарностей отдано 
    57
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    39 сообщений
    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)

  9. #8

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

    По умолчанию

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

  10. #9

    Регистрация
    11.04.2023
    Адрес
    г. Ташкент, Узбекистан
    Сообщений
    180
    Спасибо Благодарностей отдано 
    57
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    39 сообщений
    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...

  11. #10

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

    По умолчанию

    DeepSeek хорошо работает как помощник и интересный инструмент в умелых руках. Вопрос только в том, что когда Вы ее чему-то новому научите не станет ли это доступно всем?
    Кстати DeepSeek довольно хорошо умеет писать кросс-ассемблеры и простые консольные симуляторы. Другое я пока не успел попробовать.
    Последний раз редактировалось andrews; 12.06.2025 в 13:18.

Страница 2 из 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

Ваши права

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