Важная информация

User Tag List

Страница 1 из 5 12345 ПоследняяПоследняя
Показано с 1 по 10 из 43

Тема: x80 - RISC-ядро с интуитивной системой команд для x80-CISC

  1. #1
    Member Аватар для Радио-86РК
    Регистрация
    05.03.2010
    Адрес
    Ташкент
    Сообщений
    160
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb x80 - RISC-ядро с интуитивной системой команд для x80-CISC

    Eсли x80 мною разрабатывается долго и нудно как CISC с системой команд интуитивного кодирования, то данный здесь процессор представляется RISC-архитектурой со «сквозным интуитивным» набором команд.

    Процессор выполнен в русле акына - «что вижу, то имею» - WYSYWYG на уровне байт-кода. Тем самым, для программирования на нём не нужен никакой транслятор.

    Система команд
    • 0x00 означает HLT (как и в x80)
    • 0x01…0x09, 0x10…0x19, 0x20…0x29, 0x30…0x39, 0x40…0x49, 0x50…0x59, 0x60…0x69, 0x70…0x79, 0x80…0x89, 0x90…0x99 - непосредственный двоично-десятичный операнд 1…99, заносимый в текущий аккумулятор двоичной величиной 0x01…0x63
    • 0x0A - ADD; 0x0B - SUB; 0x0E - EOR
    • 0x0C - AND (Conjunction)
    • 0x0D - OR (Disjunction)
    • 0x0F - CMP (Flags)
    • 0xA1…0xA9 - выбор индекса регистра A (A₁…A₉)
    • 0xB1…0xB9 - выбор индекса регистра B (B₁…B₉)
    • 0xC1…0xC9 - выбор индекса регистра C (C₁…C₉)
    • 0xAA / 0xAB / 0xAC - выбор группы операндов: A,A; A,B; A,C
    • 0xBA / 0xBB / 0xBC - выбор группы операндов: B,A; B,B; B,C
    • 0xCA / 0xCB / 0xCC - выбор группы операндов: C,A; C,B; C,C
    • 0xAD - занесение значений операндов в регистр адреса ADdress
    • 0xBE - извлечение данных из буфера (Buffer Extract: register = [ADdress])
    • 0xBF - заполнение буфера данными (Buffer Fill: [ADdress] = register)
    • 0xCF - инверсия флага CF (Carry Flag)
    • 0xD0 - метка цикла DO (ADDR = IP)
    • 0xDA / 0xDB / 0xDC / 0xDD / 0xDE / 0xDF - условное выполнение (Do if Among / Bigger / Carry / Discarry / Equal / Fiction)
    • 0xEB - переход на адрес (Execute Buffer pointed by ADdress)
    То есть, как и в x80, здесь та же самая концепция: Какими символами машинный код кодируется, такая и аббревиатура команды.
    Практически, это и есть вся система команд!
    (Инструкция EB комбинированная: Вместе с переходом на ADdress, она помещает адрес возврата в ADdress. А так как этот регистр доступен только на запись командой AD, то сбрасываются индексы регистров на B₀ и C₀, через которые можно и прочитать регистр ADdress.)

    Например, такая программа:
    Код:
    // Исходный код
    *(BYTE *)0x76D0 = '*';
    
    // Промежуточный код
    *(BYTE *)MAKEWORD(0xD0, 0x76) = 0x2A;
    
    // Развёрнутый код
    *(BYTE *)(AD = MAKEWORD(B8 = 52 << 2, A9 = 59 << 1)) = (A1 = 40);
    кодируется таким дампом:
    Код:
         .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
    0000 A9 B8 AA 59 0A BB 52 0A 0A AB AD A1 40 BF 00 ..
    И по байтам её можно представить вот так:
    Код:
    0000 A9 :    A₉    ; Using A#9
    0001 B8 :    B₈    ; Using B#8
    0002 AA :    A₉,A₉ ; Reciever A#9, Translator A#9
    0003 59 :SET A₉,59 ; Load 59 to receiver A#9
    0004 0A :ADD A₉,A₉ ; A₉=118=0x76
    0005 BB :    B₈,B₈ ; Receiver B#8, Translator B#8
    0006 52 :SET B₈,52 ; Load 52 to receiver B#8
    0007 0A :ADD B₈,B₈ ; B₈=104=0x68
    0008 0A :ADD B₈,B₈ ; B₈=208=0xD0
    0009 AB :    A₉,B₈ ; Hi-Byte A#9, Lo-Byte B#8
    000A AD :ADR A₉,B₈ ; ADDR=MAKEWORD(B₈,A₉)
    000B A1 :    A₁    ; Receiver A#1
    000C 40 :SET A₁,40 ; A₁ = 0x2A = '*'
    000D BF :BF  A₁    ; Buffer Flush
    000E 00 :HLT       ; Halt
    Ниже в архиве исходные файлы для LogiSim.
    У кого симулятора нет - снимок схемы.
    (Сначала я начал писать JavaScript-эмулятор. Но идея задуманного процессора показалась настолько простой, что вместо часов писанины в Блокноте я потратил недели в LogiSim и остался доволен.
    Потому, могу огорчить далёких от электроники пользователей: Эмулятора нет, так как занимаюсь эмулятором x80 и нет сил заниматься другими проектами! Хотя если я решу таки строить x80 на RISC-ядре, то эмулятор данного простейшего дружелюбного процессора войдёт в состав эмулятора.)

    Некоторые нюансы
    Сначала схема была выполнена по Гарвадской архитектуре, код программы хранился в отдельном банке памяти и на выполнение одной инструкции уходило по одному такту. Естественно, подобных готовых схем в интернете пруд пруди и я решил немного усложнить себе жизнь. Собственно, Пристонскую архитектуру работы с памятью я реализовывал несколько недель, так как очень долго въезжал в тему и отлаживал схемы. Естественно, я не пользовался никаким готовыми решения и гордо шагал по граблям!

    Регистровый файл выполнен максимально развёрнуто из трёх дешифраторов и 27 регистров. Опять таки, можно было просто использовать готовые микросхемы памяти, но это было скучно и хотелось сделать максимально развёрнутый вариант процессора, где всё элементарно, понятно и просто, где каждый регистр подсвечивается лампочкой и может иметь отдельную шину данных для управления каким-нибудь устройством.
    То есть, если собрать данный процессор собачником на ТТЛ-рассыпухе, то можно сократить размер регистрового файла и регистр C7 использовать драйвером двигателей, а регистр B6 заменить джойстиком!

    Дешифратор команд выполнен так, чтобы обойтись одним вентилем 3-ИЛИ на команду. Тем самым, система команд легко наращивается программированием ПЗУ с добавлением любой группы команд в любой участок таблицы. Всего можно закодировать 24 различные группы команд. В схеме используется лишь 12.
    Особенностью системы команд является именно сквозное смысловое кодирование, где шестнадцатеричное представление команды напоминает аббревиатуру команды. Если бы ни стремление достичь этого, данную схему я бы просто не взялся разрабатывать!
    Это нужно понимать, если решите добавлять свои команды/!\

    Была идея добавить ещё группу команд - 0x1A…0x1F, 0x2A…0x2F, 0x3A…0x3F, … … … … …, 0x9A…0x9F.
    Они могут служить для повышения гибкости АЛУ-операций, где цифра выбирает индекс регистра-источника.
    Например, сейчас нельзя выполнить сложение двух регистров одной группы, типа «ADD A₆,A₁».
    Чтобы разрешить данные операции, можно было бы закодировать эту инструкцию кодом 0x1A: 0xAA 0xA6 0x1A.
    Но, это требует добавления дополнительных мультиплексеров и усложняет схему.
    А так как данная схема выполнена в стиле простоты и минимализма, то данной группы операций в ней не предусмотрено.

    P.S.: Тем самым, как автор CISC-системы команд с эстетическим расположением инструкций, я реализовал и RISC-вариант с эстетическим набором команд.
    Это я к тому, что и простое можно сделать красивым, не уродуя таблицу команд в угоду каких-то аппаратных издержек.
    И на ТТЛ-макетке такой процессор можно собрать при практическом желании.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	cpu_risc.jpg 
Просмотров:	95 
Размер:	21.4 Кб 
ID:	72641  
    Вложения Вложения
    Последний раз редактировалось Радио-86РК; 19.05.2020 в 18:43. Причина: добавил нюансы и описание команды EB

  2. Этот пользователь поблагодарил Радио-86РК за это полезное сообщение:

    Lethargeek (18.05.2020)

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

  4. #2
    Member Аватар для Радио-86РК
    Регистрация
    05.03.2010
    Адрес
    Ташкент
    Сообщений
    160
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb x80-RISC: Более инженерно-художественный вариант

    Пoлностью перерисовал всю схему с нуля, потратив трое суток.

    Теперь, вся схема чётко разбита на разные узлы.
    • «Регистровый файл»: Содержит 30 РОН, среди которых 3 особых
    • «Выборка кода/данных»: Считывает код команды, считывает/записывает данные
    • «Дешифратор Команд»: Пока декодирует 10 разных групп команд
    • «АЛУ»: Совершает 5 действий
    • «Условный блок»: Пропускает следующую команду, если условие ложно
    Система команд чуточку изменилась, утратив адресную команду «AD» и «CMP», но АЛУ-операции напрямую индексируют источник.

    Схема более лучше спланирована с нуля и нарисована с третьей попытки. С большого расстояния выглядит красиво и напооминает кристалл микросхемы.

    Теперь A₀ хранит флаги статуса АЛУ.
    А регистры B₀ и C₀ хранят старший и младший байты соответственно, где B₀ - Base, C₀ - Counter.
    Теперь, двоично-десятичные числа 1…99 не просто помещаются в активный регистр, а дополняют его через сложение.

    Например, такие трюки:
    Код:
    AA A5 5E 6E      :MOV A5,A6  -  8 тактов
    ---------------------------
    AA               :USE A ,A
       A5            :USE A5,A5
          5E         :XOR A5,A5
             6E      :XOR A5,A6
    
    BB B7 7E 85 85 85:MOV B7,255 - 12 тактов
    ----------------------------
    BB               :USE B ,B
       B7            :USE B7,B7
          7E         :XOR B7,B7
             85      :ADD B7,85
                85   :ADD B7,85
                   85:ADD B7,85
    Схема выполнена в максимально синхронном стиле и визуально получилась достаточно красивой!

    P.S.: Тем самым, я убедился, что система команд может быть интуитивно прозрачной, простой и вполне достаточной!
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	x80_RISC.jpg 
Просмотров:	72 
Размер:	21.1 Кб 
ID:	72675  
    Вложения Вложения

  5. #3
    Member Аватар для Радио-86РК
    Регистрация
    05.03.2010
    Адрес
    Ташкент
    Сообщений
    160
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Arrow x80-RISC: Стабильный инженерно-художественный вариант

    Всe эти дни я усердно работал над своим RISC-процессором.
    Упростил его до предела в рамках выбранной концепции.
    Теперь основных групп команд сократилось до девяти, включая группу АЛУ.

    Регистровый файл расширен с трёх до четырёх групп регистров общего назначения.
    Четвёртая D-группа представляется внешними устройствами - Devices, что позволяет обращаться к устройствам типа клавиатура или джойстик непосредственно и в скором порядке, как кэш-периферия первого уровня с мгновенным доступом. Более медленные устройства требуется проецировать в адресное пространство памяти.

    Тем самым, процессор теоретически пригоден для построения любого автомата, типа «Ну, Погоди!», «Тетриса» или «Лунохода».

    Конечно, демонстрационный код довольно прост и скуден. Но он демонстрирует базовые возможности процессора и взаимодействие с периферией.
    В архиве имеется также HTML-файл дизассемблера, который поможет поверхностно вникнуть в принципы кодирования команд.
    Код:
    Система команд процессорного устройства разрабатывалась максимально прозрачной
    для понимания на уровне машинного кода в своём шестнадцатеричном представлении
    как есть визуальным сочетанием своих нибблов в форме элементарных аббревиатур.
    Кодирование алгоритма малой степени сложности доступно пользователю с базовыми
    навыками редактирования таблиц дампа и не представляет особой сложности в силу
    максимально осмысленного кодирования всех инструкций в шестнадцатеричном виде.
    
    ------------------------------------------------------------------------------
    |Код команд / диапазоны|Группа    |Описания, замечания, комментарий
    -----------------------|----------|-------------------------------------------
    00                     |HLT       |Прекращение счёта указателем команд IP
    01-99                  |ADD Ri,BCD|Двоично-десятичное накопление в регистр
    0A-9F                  |ALU Ri,Tk |Операция АЛУ с комбинацией аргументов
    A0-A9 B0-B9 C0-C9 D0-D9|REG Rn    |Установка индекса активного регистра группы
    AA-AD BA-BD CA-CD DA-DD|ARG Ri,Tj |Выбор комбинации аргументов операциям АЛУ
    AE    BE    CE    DE   |EXT Ri    |Экстракция данных из внешнего ОЗУ в регистр
    AF    BF    CF    DF   |FIX Ri    |Фиксация значения регистра во внешнее ОЗУ
    E0-E7                  |EX0-7     |Переход на адрес 0xE000-0xE700
    E8-EF                  |Ecnd      |Выполнение следующей команды по условию
    F0                     |FIN       |Завершение с переходом на адрес Базы:Счёта
    F1-FF                  |FN1-15    |Переход на адрес 0xF000-0xFF00
    ------------------------------------------------------------------------------
    (n - устанавливаемый индекс, указанный битами команды)
    (i или j - индекс, установленный раннее)
    (k - индекс регистра временно берётся из старшего ниббла кода команды)
    
    Группы регистров A0-A9, B0-B9 и C0-C9 составляют внутренний регистровый файл с
    безусловным доступом к ним на программном уровне. Регистры B0-B9 хранят "Базу"
    для обращения к памяти блоком в 256 байт, а регистры C0-C9 - счёт байта блока.
    Инструкция с кодом F0 помещает текущий адрес указателя инструкций из IP в B0 и
    C0, а значения из Bi и Cj помещает в IP, производя переход на адрес Bi:Cj. Тем
    самым, можно обращаться к коду подпрограмм и знать адрес возврата через B0:C0.
    
    Группу регистров D0-D9 составляют внешние Device-устройства с непосредственным
    использованием в качестве операндов. Не рекомендуется активно использовать эту
    группу в любых вычислительных действиях, так как нет гарантии работы программ.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	x80_RISC.jpg 
Просмотров:	47 
Размер:	21.1 Кб 
ID:	72714  
    Вложения Вложения

  6. #4
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,561
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    267
    Спасибо Благодарностей получено 
    220
    Поблагодарили
    175 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  7. #5
    Member Аватар для Радио-86РК
    Регистрация
    05.03.2010
    Адрес
    Ташкент
    Сообщений
    160
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb Простой - не значит тупой!

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    это какой-то неправильный "риск" - часть "команд" фактически префиксы
    Сaму схему в симуляторе хоть запускали?
    А то получается как книжку повертеть так-сяк, да картинки пролистнуть.
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    то есть реальные команды по сути сложные
    Когда я впервые столкнулся с RISC'ами, то не понимал, за что их хвалят. Так как за 1 такт они выполняют по одной инструкции и для выполнения CISC-эквивалента потребуется пусть 5 инструкций, хотя та же CISC инструкция кодируется одним кодом и требует те же 5 тактов.

    Так что, считаю, что у меня RISC-идеология никак не пострадала.
    И уверен, что в рамках LogiSim этот процессор один из самых функциональных, представленный одной целостной схемой из стандартных примитивов.
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    пока вижу единственный вероятный плюс - получился бы в железе простым, возможно
    По моим предварительным подсчётам…
    • буферов ЛП11 - более 100 штук
    • регистров ИР23 - более 40 штук
    • вентилей ЛА3 - более 30 штук
    • мультиплексеров КП11 - около 20 штук
    • мультиплексеров КП2 - около 25 штук
    • дешифраторов ИД10 - около 10 штук
    • прочей логики - более 10 штук…
    Итого, порядка 250 корпусов…
    В принципе, не так уж и много получается…
    (Учитывая то, что регистровый файл можно и не реализовывать целиком, но это скажется на программной гибкости…)

    Интересно было бы в Proteus'е всё это дело исполнить и там всё поточнее будет.
    Да и печатные платы развести можно.

    Прошу не забывать, что основная особенность процессора в том, что набор команд размещается в таблице не в стиле Пикассо (куда кистью ляпнул - тот код и дал), а с максимальным смысловым кодированием!

    Кстати, так как группа команд с кодами E0…E7 и F1…FF совершают прыжки в стиле i8080-RST (адрес подпрограммы кодируется самим кодом команды: E0 прыгает на E000), то когда я исключал HLT-команду как таковую и перенёс в группу RST, сначала хотел задать ей адрес F000. Но потом подумал, что переход на 0000 - тоже не плохо.
    Потому сейчас код по 0000 сначала проверяет адрес возврата в регистрах B0:C0 и если это был прыжок откуда-то, то работает как HLT - бесконечный цикл.
    Тем самым, стековые макрокоманды написать можно и нормальные CALL/JMP по адресам E000…FF00.

    P.S.: Думаю, процессор в целом получился «простым, но не тупым» и пройдёт тест Тьюринга.
    Учитывая, что лет 10 назад у меня не хватило бы опыта на подобное…

  8. Этот пользователь поблагодарил Радио-86РК за это полезное сообщение:

    TomaTLAB (27.05.2020)

  9. #6
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,561
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    267
    Спасибо Благодарностей получено 
    220
    Поблагодарили
    175 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Радио-86РК Посмотреть сообщение
    Сaму схему в симуляторе хоть запускали?
    А то получается как книжку повертеть так-сяк, да картинки пролистнуть.
    никакой симулятор запускать не надо, чтобы понять, что, например, вот это -
    Код:
    A0-A9 B0-B9 C0-C9 D0-D9|REG Rn    |Установка индекса активного регистра группы
    AA-AD BA-BD CA-CD DA-DD|ARG Ri,Tj |Выбор комбинации аргументов операциям АЛУ
    - никакие по сути не команды, это ПРЕФИКСЫ, сами по себе никакой работы не выполняющие и аналогичные XY-префиксам Z80

    Цитата Сообщение от Радио-86РК Посмотреть сообщение
    Когда я впервые столкнулся с RISC'ами, то не понимал, за что их хвалят. Так как за 1 такт они выполняют по одной инструкции и для выполнения CISC-эквивалента потребуется пусть 5 инструкций, хотя та же CISC инструкция кодируется одним кодом и требует те же 5 тактов.
    широко распространённое ЗАБЛУЖДЕНИЕ, не подтверждаемое на практике - всё зависит от конкретной реализации
    так, в среднем плотность кода ARM2 аналогична таковой у 386, но производительность на одинаковой частоте выше вдвое
    легко можно подобрать пример армокоманды, полным аналогом которой на x86 будет сразу несколько cisc-команд
    у рисков обычно намного меньше режимов и способов адресации, но в вычислительных командах больше работы

    Цитата Сообщение от Радио-86РК Посмотреть сообщение
    Так что, считаю, что у меня RISC-идеология никак не пострадала.
    да там ею попросту и не пахнет
    целью риска было - упрощение работы конвейера
    максимум полезных действий на каждый цикл
    а не сокращение набора ради самого сокращения
    Прихожу без разрешения, сею смерть и разрушение...

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

    TomaTLAB (27.05.2020)

  11. #7
    Member Аватар для Радио-86РК
    Регистрация
    05.03.2010
    Адрес
    Ташкент
    Сообщений
    160
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    никакой симулятор запускать не надо, чтобы понять, что, например, вот это
    И это приятно слышать! Машинный код понятный каждому!
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    никакие по сути не команды
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    всё зависит от конкретной реализации
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    да там ею попросту и не пахнет
    целью риска было - упрощение работы конвейера
    Ну, не станете же спорить, что данный процессор можно реализовать немного сложнее, чтобы считывались 32-битные слова и конвейером за один такт выполнялась та же группа «AB_A1_3D» как целая «OR A1,B3»?
    Думаю, ещё десять лет теории да практики и реализовать это вполне возможно…

    Как я это вижу?
    Использовать сразу несколько ПЗУ с кодированием дополнительных бит для связи в цепочку, чтобы в 32-битном слове одно ПЗУ выделяло префикс «AB» и переключало мультиплексоры операндов, другое ПЗУ должно выделить «A1» и переключить индекс, а уж «3D» задействует АЛУ с дизъюнкцией и сохранением результата.
    В принципе, это можно и сейчас реализовать, выбросив регистры хранения индексов и операндов, подключив их напрямую к шинам разных ПЗУ: Если какое-то из ПЗУ выделило префикс индекса в слове, то именно эта часть слова направляется мультиплексером на шину индекса.
    Потом задача ещё состоит в том, на сколько октетов нужно сдвинуть 32-битное слово кода для подгрузки новой команды. Тут с прошивками всех ПЗУ придётся здорово повозиться! А это уже ненужное чрезмерное усложнение всей схемы в целом и концептуально…

    P.S.: Ещё раз акцентирую: Процессор с интуитивно прозрачной системой команд набросал. И в качестве ядра под мой x80 он вполне подходит по тем же интуитивно идеологическим принципам. А если команда «NOP» будет занимать тысячу и один такт - это издержки реализации, а не концепции.
    (Если аккуратно вскрыть тот же Core-i7 и перепрошить всё ядро под разбор моих x80-команд, то вместо гадких и противных x86-инструкций смогут выполняться мои по миллиарду за раз! Это ещё с i486 стало возможным, если отказаться от поддержки x86-кода…)

  12. Этот пользователь поблагодарил Радио-86РК за это полезное сообщение:

    TomaTLAB (27.05.2020)

  13. #8
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,561
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    267
    Спасибо Благодарностей получено 
    220
    Поблагодарили
    175 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Радио-86РК Посмотреть сообщение
    Ну, не станете же спорить, что данный процессор можно реализовать немного сложнее, чтобы считывались 32-битные слова и конвейером за один такт выполнялась та же группа «AB_A1_3D» как целая «OR A1,B3»?
    32 это через край, но для риска на полноценную команду без префиксов надо 16 минимум
    (и это даже смысл имело на 8-битной шине в 80-е, если фетч выполнять в режиме page-mode в стиле zx-юлы)
    зато сразу и кодирование проще, и куча РОН без всяких специальных "групп", и в ассемблере писать приятнее и понятнее

    Цитата Сообщение от Радио-86РК Посмотреть сообщение
    Ещё раз акцентирую: Процессор с интуитивно прозрачной системой команд набросал.
    а что такое "интуитивная прозрачность" - не объяснил (дальше - хлеще, "интуитивно идеологический (wtf?) принцип")
    первый раз такие сочетание наблюдаю, смысла как у "громкой температуры" какой-нибудь

    может быть, в виду имелась "интуитивно ПОНЯТНАЯ система команд"?
    но понятность именно системы команд мало от кодирования зависит
    Прихожу без разрешения, сею смерть и разрушение...

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

    TomaTLAB (27.05.2020)

  15. #9
    Member Аватар для Радио-86РК
    Регистрация
    05.03.2010
    Адрес
    Ташкент
    Сообщений
    160
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    32 это через край, но для риска на полноценную команду без префиксов надо 16 минимум
    Тo есть кодировать так:
    Код:
    cccrriiiittjjjj
    110010001100010 EOR D1,A2
    Чтобы опять париться с переводом сигнатур регистров и индексов в бинарный вид, а из него - в шестнадцатеричный? Так ведь подобных архитектур в свете пруд пруди!
    Именно «один байт - одна команда» и без всяческих битовых полей меня привлекла как концептуальная идея.
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    первый раз такие сочетание наблюдаю, смысла как у "громкой температуры" какой-нибудь
    Когда чайник кипятят на плите большим пламенем, иногда говорят «чё так орёт‽»…
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    но понятность именно системы команд мало от кодирования зависит
    По плохой традиции инженеров - да!
    А ведь первые научные инструменты и живописью расписывали (пруф). А ныне и параболическую антенну как поднос не расписывают, иначе бы крыши домов красивее бы смотрелись!

    Вот я и сделал шаг вперёд к искусству…
    Что плохого? Работает и прозрачно для интуитивного понимания и кодирования. Можно бить код вслепую, без шпаргалок…

  16. Этот пользователь поблагодарил Радио-86РК за это полезное сообщение:

    TomaTLAB (27.05.2020)

  17. #10
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,561
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    267
    Спасибо Благодарностей получено 
    220
    Поблагодарили
    175 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Радио-86РК Посмотреть сообщение
    Именно «один байт - одна команда» и без всяческих битовых полей меня привлекла как концептуальная идея.
    зачем было называть тогда это "риском", если цель совсем другая была поставлена

    Цитата Сообщение от Радио-86РК Посмотреть сообщение
    Когда чайник кипятят на плите большим пламенем, иногда говорят «чё так орёт‽»…
    правильно, про чайник же говорят (то есть объект, у которого есть такое свойство - издавать звуки)

    Цитата Сообщение от Радио-86РК Посмотреть сообщение
    Что плохого? Работает и прозрачно для интуитивного понимания и кодирования. Можно бить код вслепую, без шпаргалок…
    не работает, без шпаргалок запросто накосячишь, надо помнить весь контекст для команды
    что находится в регистрах - неочевидно, с чем работает алу после перехода - неочевидно...
    а уж читать потом всё это и и понимать... не brainfuck, но что-то общее ощущается
    Прихожу без разрешения, сею смерть и разрушение...

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

    TomaTLAB (27.05.2020)

Страница 1 из 5 12345 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ядро с 32 битами и виртуализацией
    от Bolt в разделе Несортированное железо
    Ответов: 132
    Последнее: 30.12.2021, 17:50
  2. x80: CISC - уже не i8080, ещё не i8086
    от Радио-86РК в разделе Разное
    Ответов: 41
    Последнее: 18.05.2020, 21:41
  3. RISC OS
    от Кирлиан в разделе Зарубежные компьютеры
    Ответов: 7
    Последнее: 07.08.2012, 01:28
  4. Ответов: 16
    Последнее: 02.08.2005, 12:20

Ваши права

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