User Tag List

Страница 26 из 26 ПерваяПервая ... 2223242526
Показано с 251 по 252 из 252

Тема: Эмулятор БК-0010-01, БК-0011 и БК-0011М

  1. #251

    Регистрация
    16.09.2012
    Адрес
    г. Ржев
    Сообщений
    85
    Спасибо Благодарностей отдано 
    26
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ищу эмулятор с отрытой лицензией и исходным кодом, возможностью сборки через gcc/современные компиляторы, в идеале - терминал без дисплея, как simh
    есть ли относительно живой такой проект? я нашел этот, https://github.com/andpp/bkemu-QT но пока запустить не получилось. какой можно попробовать?

  2. #252

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    так что давайте, можно без программ, просто таблицы с данными.
    Ну для начала фото с экранов - https://disk.yandex.ru/d/IvDKzriD7N3dug.
    Для БК-0010-01 измеряли на двух компьютерах. Там где фото с цветного экрана, он более быстрый, но там стоит кварц на 12,288 МГц. С черно-белого экрана более меленный. Измерили даже на FPGA MIST. Для БК-0011М тестировали только на одном.
    Значения по тестам БК-0010-01 в вашем эмуляторе совпадают с более медленным БК.

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

    Сначала результаты на БК-0010-01.
    Двухоперандные команды. Их можно разделить на четыре группы:
    1. Используется только запись в DST - команда MOV
    2. Используется только запись в DST - команда MOVB. Я её выношу отдельно, т.к. по микрокоду запись слова в регистр отличается от записи байта. Для БК с медленной памятью по тактам отличий не видно.
    3. Используется только чтение в DST - команды CMP, CMPB, BIT, BITB.
    4. Используется цикл RMW в DST - команды BIC, BICB, BIS, BISB, ADD, SUB.

    MOV

    Код:
    Быстрая БК
    MOV  01    11    21    31    41    51    61    71
    00  12.0  32.0  36.0  44.0  36.0  44.0  44.0  52.0
    10  24.0  40.0  40.0  48.0  40.0  48.0  48.0  56.0
    20  24.0  40.0  40.0  48.0  40.0  48.0  48.0  56.0
    30  32.0  48.0  48.0  56.0  48.0  56.0  56.0  64.0
    40  28.0  40.0  40.0  48.0  40.0  48.0  48.0  56.0
    50  36.0  48.0  48.0  56.0  48.0  56.0  56.0  64.0
    60  32.0  48.0  48.0  56.0  48.0  56.0  56.0  64.0
    70  40.0  56.0  56.0  64.0  56.0  64.0  64.0  72.0
    Медленная БК
    MOV  01    11    21    31    41    51    61    71
    00  12.0  32.0  36.0  44.0  36.0  44.0  44.0  56.0
    10  28.0  40.0  40.0  48.0  40.0  48.0  48.0  60.0
    20  28.0  40.0  40.0  48.0  40.0  48.0  48.0  60.0
    30  40.0  52.0  52.0  60.0  52.0  60.0  60.0  72.0
    40  28.0  44.0  44.0  52.0  44.0  52.0  52.0  64.0
    50  40.0  56.0  56.0  64.0  56.0  64.0  64.0  76.0
    60  40.0  52.0  52.0  60.0  52.0  60.0  60.0  72.0
    70  52.0  64.0  64.0  72.0  64.0  72.0  72.0  84.0
    [свернуть]

    CMP

    Код:
    Быстрая БК
    CMP  01    11    21    31    41    51    61    71
    00  12.0  32.0  32.0  40.0  32.0  40.0  40.0  48.0
    10  24.0  36.0  36.0  44.0  36.0  44.0  44.0  52.0
    20  24.0  36.0  36.0  44.0  36.0  44.0  44.0  52.0
    30  32.0  44.0  44.0  52.0  44.0  52.0  52.0  60.0
    40  28.0  36.0  36.0  44.0  36.0  44.0  44.0  52.0
    50  36.0  44.0  44.0  52.0  44.0  52.0  52.0  60.0
    60  32.0  44.0  44.0  52.0  44.0  52.0  52.0  60.0
    70  40.0  52.0  52.0  60.0  52.0  60.0  60.0  68.0
    Медленная БК
    CMP  01    11    21    31    41    51    61    71
    00  12.0  32.0  32.0  44.0  32.0  44.0  44.0  56.0
    10  28.0  36.0  36.0  48.0  36.0  48.0  48.0  60.0
    20  28.0  36.0  36.0  48.0  36.0  48.0  48.0  60.0
    30  40.0  48.0  48.0  60.0  48.0  60.0  60.0  72.0
    40  28.0  40.0  40.0  52.0  40.0  52.0  52.0  64.0
    50  40.0  52.0  52.0  64.0  52.0  64.0  64.0  76.0
    60  40.0  48.0  48.0  60.0  48.0  60.0  60.0  72.0
    70  52.0  60.0  60.0  72.0  60.0  72.0  72.0  84.0
    [свернуть]

    ADD

    Код:
    Быстрая БК
    ADD  01    11    21    31    41    51    61    71
    00  12.0  36.0  36.0  44.0  36.0  44.0  44.0  52.0
    10  24.0  40.0  40.0  48.0  40.0  48.0  48.0  56.0
    20  24.0  40.0  40.0  48.0  40.0  48.0  48.0  56.0
    30  32.0  48.0  48.0  56.0  48.0  56.0  56.0  64.0
    40  28.0  40.0  40.0  48.0  40.0  48.0  48.0  56.0
    50  36.0  48.0  48.0  56.0  48.0  56.0  56.0  64.0
    60  32.0  48.0  48.0  56.0  48.0  56.0  56.0  64.0
    70  40.0  56.0  56.0  64.0  56.0  64.0  64.0  72.0
    Медленная БК
    ADD  01    11    21    31    41    51    61    71
    00  12.0  36.0  36.0  48.0  36.0  48.0  48.0  60.0
    10  28.0  40.0  40.0  52.0  40.0  52.0  52.0  64.0
    20  28.0  40.0  40.0  52.0  40.0  52.0  52.0  64.0
    30  40.0  52.0  52.0  64.0  52.0  64.0  64.0  76.0
    40  28.0  44.0  44.0  56.0  44.0  56.0  56.0  68.0
    50  40.0  56.0  56.0  68.0  56.0  68.0  68.0  80.0
    60  40.0  52.0  52.0  64.0  52.0  64.0  64.0  76.0
    70  52.0  64.0  64.0  76.0  64.0  76.0  76.0  88.0
    [свернуть]


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

    Отдельно сделан тест, если в качестве регистра при регистровой адресации используется счётчик команд PC. Всё дело в том, что если команда использует в SRC и DST оба регистра и один из них PC, либо в DST используется регистр и он PC, то в этом случае запускается предварительное чтение команды, но т.к. используется счётчик команд, то результаты чтения не используются и команда перечитывается снова. В результате более долгое исполнение.
    В результатах все колонки, кроме последней используют команду OP2 ss, PC, т.е в ss все возможные методы адресации, а в качестве DST используется PC. Последняя колонка 07 эта команда OP2 PC, R1, т.е. регистровая команда, где в качестве SRC используется PC.

    OP2PC

    Код:
    Быстрая БК
    OP2PC  01    11    21    31    41    51    61    71     07
    MOV   20.0 *****  32.0  40.0  32.0  40.0  40.0  48.0   20.0
    CMP   20.0  32.0  32.0  40.0  32.0  40.0  40.0  48.0   20.0
    CMPB  20.0  32.0  32.0  40.0  32.0  40.0  40.0  48.0   20.0
    BIT   20.0  32.0  32.0  40.0  32.0  40.0  40.0  48.0   20.0
    BITB  20.0  32.0  32.0  40.0  32.0  40.0  40.0  48.0   20.0
    BIC   20.0  32.0  32.0  40.0  32.0  40.0  40.0  48.0   20.0
    BICB  20.0  32.0  32.0  40.0  32.0  40.0  40.0  48.0   20.0
    BIS   20.0  32.0  32.0  40.0  32.0  40.0  40.0  48.0   20.0
    BISB  20.0  32.0  32.0  40.0  32.0  40.0  40.0  48.0   20.0
    ADD   20.0  32.0  32.0  40.0  32.0  40.0  40.0  48.0   20.0
    SUB   20.0  32.0  32.0  40.0  32.0  40.0  40.0  48.0   20.0
    Медленная БК
    OP2PC  01    11    21    31    41    51    61    71     07
    MOV   20.0 *****  32.0  44.0  36.0  48.0  44.0  56.0   20.0
    CMP   20.0  32.0  32.0  44.0  36.0  48.0  44.0  56.0   20.0
    CMPB  20.0  32.0  32.0  44.0  36.0  48.0  44.0  56.0   20.0
    BIT   20.0  32.0  32.0  44.0  36.0  48.0  44.0  56.0   20.0
    BITB  20.0  32.0  32.0  44.0  36.0  48.0  44.0  56.0   20.0
    BIC   20.0  32.0  32.0  44.0  36.0  48.0  44.0  56.0   20.0
    BICB  20.0  32.0  32.0  44.0  36.0  48.0  44.0  56.0   20.0
    BIS   20.0  32.0  32.0  44.0  36.0  48.0  44.0  56.0   20.0
    BISB  20.0  32.0  32.0  44.0  36.0  48.0  44.0  56.0   20.0
    ADD   20.0  32.0  32.0  44.0  36.0  48.0  44.0  56.0   20.0
    SUB   20.0  32.0  32.0  44.0  36.0  48.0  44.0  56.0   20.0
    [свернуть]

    Звёздочки означают, что для команды невозможен тест в линейной последовательности. Вместо MOV R1,PC реально исполняется MOV PC,PC, на результат это не влияет. Нету команды MOVB из-за её глюка.

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

    Однооперандные команды. Хотя формально XOR двухоперандная, но SRC у неё является регистром, поэтому она включена сюда.

    Быстрая БК

    Код:
    OP1    01    11    21    31    41    51    61    71     07
    CLR   12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    CLRB  12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    COM   12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    COMB  12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    INC   12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    INCB  12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    DEC   12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    DECB  12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    NEG   12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    NEGB  12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    ADC   12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0   20.0
    ADCB  12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0   20.0
    SBC   12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0   20.0
    SBCB  12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0   20.0
    TST   12.0  24.0  24.0  32.0  24.0  32.0  32.0  40.0   20.0
    TSTB  12.0  24.0  24.0  32.0  24.0  32.0  32.0  40.0   20.0
    ROR   12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    RORB  12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    ROL   12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    ROLB  12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    ASR   12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    ASRB  12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    ASL   12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    ASLB  12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    SWAB  12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    SXT   12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    MTPS  24.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    MFPS  12.0  28.0  28.0  36.0  28.0  36.0  36.0  44.0  *****
    XOR   12.0  32.0  32.0  40.0  32.0  40.0  40.0  48.0  *****
    [свернуть]

    Медленная БК

    Код:
    OP1    01    11    21    31    41    51    61    71     07
    CLR   12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    CLRB  12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    COM   12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    COMB  12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    INC   12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    INCB  12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    DEC   12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    DECB  12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    NEG   12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    NEGB  12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    ADC   12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0   20.0
    ADCB  12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0   20.0
    SBC   12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0   20.0
    SBCB  12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0   20.0
    TST   12.0  24.0  24.0  36.0  28.0  40.0  36.0  48.0   20.0
    TSTB  12.0  24.0  24.0  36.0  28.0  40.0  36.0  48.0   20.0
    ROR   12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    RORB  12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    ROL   12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    ROLB  12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    ASR   12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    ASRB  12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    ASL   12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    ASLB  12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    SWAB  12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    SXT   12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    MTPS  24.0  32.0  32.0  44.0  36.0  48.0  44.0  56.0  *****
    MFPS  12.0  28.0  28.0  40.0  32.0  44.0  40.0  52.0  *****
    XOR   12.0  32.0  32.0  44.0  32.0  44.0  44.0  56.0  *****
    [свернуть]


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

    Команды JMP и JSR.

    JMP, JSR

    Код:
    Медленная БК
    J..    21    31    51    61    71    17
    JMP   24.0  32.0  36.0  32.0  44.0  24.0
    JSR   36.0  40.0  44.0  40.0  52.0  32.0
    CALL  36.0  40.0  44.0  40.0  52.0  32.0
    [свернуть]


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

    Прочие команды.

    Быстрая БК

    Код:
    RTS R5        32.0
    RETURN        32.0
    RTI           40.0
    RTT           40.0
    BPT+RTI      104.0
    IOT+RTI      104.0
    EMT+RTI      104.0
    TRAP+RTI     104.0
    TR4 R+RTI    168.0
    TR4 W+RTI    176.0
    TRAP10+RTI   104.0
    NOP           12.0
    CCC           12.0
    SCC           12.0
    BR            16.0
    BNE           16.0
    BEQ           16.0
    MARK          32.0
    [свернуть]

    Медленная БК

    Код:
    RTS R5        32.0
    RETURN        32.0
    RTI           40.0
    RTT           40.0
    BPT+RTI      104.0
    IOT+RTI      104.0
    EMT+RTI      104.0
    TRAP+RTI     104.0
    TR4 R+RTI    168.0
    TR4 W+RTI    176.0
    TRAP10+RTI   104.0
    NOP           12.0
    CCC           12.0
    SCC           12.0
    BR            16.0
    BNE           16.0
    BEQ           16.0
    MARK          32.0
    [свернуть]


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

    Команда SOB. В верхней части регистр загружается определённым значением, запускается таймер и исполняется команда SOB R0,. Затем считывается значение таймера. Во второй половине выполняется последовательность из 1280 команд MOV R1,R0 / SOB R0,. Затем рассчитывается за сколько тактов она выполняется.

    Быстрая БК

    Код:
    SOB     R0, .
    65536-10240  32768- 5120  16384- 2560   8192- 1280
     4096-  640   2048-  320   1024-  160    512-   80
      256-   40    128-   20     64-   10     32-    5
       16-    2      8-    1      4-    1      2-    0
        1-    0
    
    MOV     R1, R0
    SOB     R0, .
    R0 = 7  156.0
    R0 = 6  136.0
    R0 = 5  116.0
    R0 = 4   96.0
    R0 = 3   76.0
    R0 = 2   56.0
    R0 = 1   36.0
    [свернуть]

    Медленная БК

    Код:
    SOB     R0, .
    65536-10240  32768- 5120  16384- 2560   8192- 1280
     4096-  640   2048-  320   1024-  160    512-   80
      256-   40    128-   20     64-   10     32-    5
       16-    2      8-    1      4-    1      2-    0
        1-    0
    
    MOV     R1, R0
    SOB     R0, .
    R0 = 7  156.0
    R0 = 6  136.0
    R0 = 5  116.0
    R0 = 4   96.0
    R0 = 3   76.0
    R0 = 2   56.0
    R0 = 1   36.0
    [свернуть]

    Видно, что каждая итерация команды SOB занимает 20 тактов процессора. Если загружено значение 1, то получается, что SOB исполняется за 24 такта, т.к. время исполнения регистровой команды MOV составляет 12 тактов. Хотя по микрокоду отличие только в том, что если при декременте регистра получилось нулевое значение, то новое значение счётчика команд заносится во внутренний регистр R12, а не в счётчик команд. Вроде время должно быть одинаковым, но вот получается вот так.

Страница 26 из 26 ПерваяПервая ... 2223242526

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

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

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

Похожие темы

  1. Отличия БК-0011М от БК-0010(01)?
    от nzeemin в разделе БК-0010/0011
    Ответов: 22
    Последнее: 30.03.2021, 18:47
  2. БК-0010/0011: Разное
    от CD-Inc в разделе БК-0010/0011
    Ответов: 73
    Последнее: 30.07.2012, 16:58
  3. Начало выпуска БК-0011 и БК-0011М
    от dk_spb в разделе БК-0010/0011
    Ответов: 6
    Последнее: 14.10.2010, 14:22
  4. Отличие 0011 и 0011М
    от Kronshou в разделе БК-0010/0011
    Ответов: 11
    Последнее: 17.01.2010, 22:24
  5. Москва - куплю все связанное с БК-0010/0011
    от kt315b в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 04.10.2008, 05:09

Ваши права

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