User Tag List

Страница 52 из 157 ПерваяПервая ... 484950515253545556 ... ПоследняяПоследняя
Показано с 511 по 520 из 1564

Тема: Программирование на УКНЦ как?

  1. #511

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Я понял, почему у УКНЦ байтовая запись в память работает только в цикле RMW (чтение-модификация-запись)!
    Наверное это потому, что у ВМ2 вообще нет ни байтового чтения из памяти, ни байтовой записи (доки специально в этом смысле не смотрел, но чисто теоретически если подумать).
    Поэтому при чтения байта все равно читается слово, но берется именно нужный байт.
    А вот при записи байта, сперва читается слово, потом модифицируется нужный байт, и слово записывается заново. Тогда все логически сходится.

    Отсюда мораль: по возможности не пользоваться байтовой записью в память, если не хочется лишних тормозов.
    На шине Q-BUS (наша МПИ) байтового чтения не существует, а вот байтовая запись есть. При байтовом чтении процессор всегда читает слово по заданному адресу, при этом адрес всегда выставляется в таком виде, как задан в команде, т.е. младший бит не очищается. Затем в зависимости от младшего бита процессор из считанного слова берет нужный байт. При байтовой записи процессор 1801ВМ2 в неиспользуемом байте выставляет ноль, электрически единицы, с учетом инверсной шины. А вот почему при байтовой записи 1801ВМ2 читает слово по этому адресу, это действительно большой вопрос, и в официальной документации это не отражено.

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

  3. #512

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,806
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    при байтовой записи 1801ВМ2 читает слово по этому адресу
    Т.е. команды

    Код:
    	Mov	R1, (R0)
    	MovB	R1, (R0)
    выполняются на 1801ВМ2 за разное время ?

    У 1801ВМ1 только команда MovB использует цикл DATOB ( Запись Байта ) - все остальные команды записи байтов у процессора 1801ВМ1 используют DATIO ( Чтение-Модификация-Запись ).

  4. #513

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Т.е. команды

    Код:
    	Mov	R1, (R0)
    	MovB	R1, (R0)
    выполняются на 1801ВМ2 за разное время ?

    У 1801ВМ1 только команда MovB использует цикл DATOB ( Запись Байта ) - все остальные команды записи байтов у процессора 1801ВМ1 используют DATIO ( Чтение-Модификация-Запись ).
    Да, за разное. Тут по этому поводу целое исследование как-то было. При команде MOV по адресу (R0) сразу произойдет запись, а вот при MOVB по адресу (R0) сначала прочитается слово, а потом запишется нужный байт. Аналогичная ситуация и с CLR/CLRB и MFPS.

  5. #514

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,806
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Да, за разное. Тут по этому поводу целое исследование как-то было. При команде MOV по адресу (R0) сразу произойдет запись, а вот при MOVB по адресу (R0) сначала прочитается слово, а потом запишется нужный байт. Аналогичная ситуация и с CLR/CLRB и MFPS.
    Странно. Авторы 1801ВМ2 (если не ошибаюсь) утверждали, что расширили применение цикла DATO на команду CLR и DATOB на CLRB.

    У 1801ВМ1 MOV и MOVB выполняют DATO и DATOB, а CLR и CLRB - DATIO.

    Получается, что MOV у ВМ2 выполняется быстрее чем CLR, а MOVB - за то же время, что и CLRB, и INCB.

    И это в обычной памяти ЦП ?
    Может ещё разок проверить..

  6. #515

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,399
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,220
    Поблагодарили
    874 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Может ещё разок проверить..
    Все уже давно замерено, и было тут опубликовано:
    Код:
    Сравнение времени выполнения байтовых и словных команд на CPU и PPU:
    
    Мнемоника-1     CPU     PPU    Циклы	Мнемоника-2     CPU     PPU	Циклы
    ------------------------------------------------------------------------------
    
    MOV Rn,(Rn)	33.13	36	W	MOVB Rn,(Rn)	40.62	52	RMW
    	
    CMP Rn,(Rn)	27.90	40	R	CMPB Rn,(Rn)	27.90	40	R
    BIT Rn,(Rn)	27.90	40	R	BITB Rn,(Rn)	27.90	40	R
    BIC Rn,(Rn)	40.62	56	RMW	BICB Rn,(Rn)	40.62	52	RMW
    BIS Rn,(Rn)	40.62	56	RMW	BISB Rn,(Rn)	40.62	52	RMW
    
    XOR Rn,(Rn)	40.62	56	RMW
    ADD Rn,(Rn)	40.62	56	RMW
    SUB Rn,(Rn)	40.62	56	RMW
    				
    CLR (Rn)	33.13	36	W	CLRB (Rn)	40.62	52	RMW
    COM (Rn)	40.62	56	RMW	COMB (Rn)	40.62	52	RMW
    INC (Rn)	40.62	56	RMW	INCB (Rn)	40.62	52	RMW
    DEC (Rn)	40.62	56	RMW	DECB (Rn)	40.62	52	RMW
    NEG (Rn)	40.62	56	RMW	NEGB (Rn)	40.62	52	RMW
    TST (Rn)	27.90	40	R	TSTB (Rn)	27.90	40	R
    ROL (Rn)	40.62	56	RMW	ROLB (Rn)	40.62	52	RMW
    ROR (Rn)	40.62	56	RMW	RORB (Rn)	40.62	52	RMW
    ASR (Rn)	40.62	56	RMW	ASRB (Rn)	40.62	52	RMW
    ASL (Rn)	40.62	56	RMW	ASLB (Rn)	40.62	52	RMW
    ADC (Rn)	40.62	56	RMW	ADCB (Rn)	40.62	52	RMW
    
    					MFPS (Rn)	40.62	52	RMW
    SWAB (Rn)	40.62	56	RMW
    SXT (Rn)	33.13	36	W

  7. #516

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Странно. Авторы 1801ВМ2 (если не ошибаюсь) утверждали, что расширили применение цикла DATO на команду CLR и DATOB на CLRB.
    Получилось только на CLR.
    Цитата Сообщение от Patron Посмотреть сообщение
    Получается, что MOV у ВМ2 выполняется быстрее чем CLR, а MOVB - за то же время, что и CLRB, и INCB.
    А почему MOV быстрее CLR, вроде используется один цикл DATO.
    Цитата Сообщение от Patron Посмотреть сообщение
    И это в обычной памяти ЦП ?
    Может ещё разок проверить..
    А при чем тут память? Дело в процессоре. Да и чего перепроверять? Titus доказал своими тестами по измерению числа тактов команд. Я проверял на регистрах внешних устройств, которые реагируют на чтение. Если появилась готовность в регистре клавиатуры 177560, то по команде CLR @#177562 или MOV R0,@#177562 ничего не происходит, а по командам CLRB @#177562 или MOVB R0,@#177562 готовность сбрасывается. И это с учетом того, что БМК 1801ВП1-120 сигнал WTBT не обрабатывает (он туда не заводится). Аналогичная ситуация и с 1801ВП1-065 и с регистрами на шине ПП. Так что диагноз ясен.

  8. #517

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    у ВМ2 вообще нет ни байтового чтения из памяти
    Точнее его вообще нигде нет - всегда читается слово.

    ---------- Post added at 16:42 ---------- Previous post was at 16:41 ----------

    Что кстати следует из названия сигнала WTBT
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  9. #518

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,806
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Keeper Посмотреть сообщение
    нашел только ассемблер, а нужен ещё линкер...
    Проще всего компилить ассемблерные файлы в "эмуляторе ДВК" ( компоновка, линковка и запуск на выполнение осуществляется в RT-11 одной командой EX ).

    Эмулятор ДВК не блокирует DSK-образ, поэтому можно одновременно редактировать исходник в любом редакоре Windows и тут же компилировать его в эмуляторе. Кроме того - эмулятор ДВК можно настроить на любую скорость процессора - тогда компиляция под эмулятором происходит почти мгновенно.

  10. #519

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Проще всего компилить ассемблерные файлы в "эмуляторе ДВК" ( компоновка, линковка и запуск на выполнение осуществляется в RT-11 одной командой EX ).

    Эмулятор ДВК не блокирует DSK-образ, поэтому можно одновременно редактировать исходник в любом редакоре Windows и тут же компилировать его в эмуляторе. Кроме того - эмулятор ДВК можно настроить на любую скорость процессора - тогда компиляция под эмулятором происходит почти мгновенно.
    Поредактировать я могу и у себя на PDP-11 (причем редактор будет на порядок удобнее любого виндового) и также запустить командой EX. Просто так было бы быстрее, а код ни на байт не длиннее

    ---------- Post added at 18:24 ---------- Previous post was at 18:23 ----------

    Ну или на слово длиннее если именно в начале помещать.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  11. #520

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,806
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Поредактировать я могу и у себя на PDP-11
    Вопрос был - как проще всего скомпилить ассемблерный исходник для RT-11 под Windows 7 х64.

Страница 52 из 157 ПерваяПервая ... 484950515253545556 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Программирование на Эмуляторе. Возможно ли это?
    от Toxic в разделе Программирование
    Ответов: 10
    Последнее: 20.01.2008, 19:20
  2. Программирование Altera и JTAG
    от Mikka_A в разделе Несортированное железо
    Ответов: 7
    Последнее: 18.01.2008, 09:07
  3. Программирование и софтмейк на NES
    от Splinter в разделе Nintendo
    Ответов: 7
    Последнее: 30.06.2006, 04:31

Ваши права

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