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

User Tag List

Страница 13 из 18 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя
Показано с 121 по 130 из 180

Тема: 32-разрядный процессор, полностью совместимый с архитектурой PDP-11.

  1. #121
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от blackmirror Посмотреть сообщение
    до меня дошло как командами "условного" pdp32 выполнять код для "условного" pdp16.
    Но 16-разрядный код может быть вызван из 32-разрядного для каких-то действий в интересах 32-разрядного кода. Когда взаимодействие 32-разрядного и 16-разрядного кода идёт только через регистры - всё достаточно просто. А как должен выглядеть (например) вызов 16-разрядной функции STRLEN, получающей в R0 адрес строки и возвращающий её длину, если строка расположена в произвольном месте 32-разрядного адресного пространства.

    В случае виртуализации - перед вызовом 16-разрядного кода создаётся таблица виртуализации, через которую осуществляется мапинг 16-разрядных обращений в 32-разрядное адресное пространство и где помимо основного 16-разрядного сегмента, содержащего код 16-разрядной функции - можно также задать окна для внешнего чтения и внешней записи. В таком случае, если виртуализованный код осуществляет чтение за пределами диапазона адресов основного сегмента - проверяется попадание чтения в окно внешнего чтения и если попадание есть - обращение транслируется в основное 32-разрядное пространство через базу из таблицы виртуализации и смещение в окне обращения. За счёт такого подхода 16-разрядная функция STRLEN может определить длину строки, находящейся в любом месте 32-разрядного адресного пространства.

    В реальной жизни такое вряд ли случится и главной целью виртуализации приложений будет запуск целых 16-разрядных программ из различных операционок PDP-11, но механизм виртуализации при этом останется тем же самым.

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

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Когда по условию задачи заранее известно, что код обращается к данным ( например - к строке байтов ) и известен размер обращения ( из кода команды ) - возможность обращения к тем же данным с тем же размером гарантирована.
    и ОТКУДА же это может без прокомментированного исходника быть известно?
    где ГАРАНТИЯ, что к одной и той же структуре в памяти нет обращений И по байтам, И по словам?
    где ГАРАНТИЯ, что содержимое структуры - 16-битные числа, а не опкоды (и не опкоды с числами вперемешку)?

    Цитата Сообщение от Patron Посмотреть сообщение
    Точно так же - значит с таким же размером. Если 16-разрядный код обращается к байту, то и 32-разрядный обращается к байту, если 16-разрядный код обращается к 16-разрядному слову, то и 32-разрядный код обращается к 16-разрядному слову.
    а если 16-битным код обращался к 16-битным старым ОПКОДАМ (которые стали 32-битными) и как об этом компоновщик должен догадываться?
    а если хуже - один код из разных мест вызывается для обращения И к опкодам, И к 16-битным данным (см. мой пример с пересылкой)?

    Цитата Сообщение от Patron Посмотреть сообщение
    Модифицируемый код точно не поломается, если его не использовать. Приведите пример библиотечного модуля с самомодифицируемым кодом - вряд ли такие вообще есть.
    "вряд ли" не считается за ГАРАНТИЮ, а контрпримера и гипотетического достаточно

    Цитата Сообщение от Patron Посмотреть сообщение
    Под модифицируемым кодом имеется в виду код, изменяющий первое слово команды, а не второе или третье. Если запись идёт во второе или третье слово команды - такой "модифицируемый код" без проблем автоматически превращается в 32-разрядный.
    нет, имеется в виду перезапись произвольного куска в памяти, в который после может выполнение перейти

    Цитата Сообщение от Patron Посмотреть сообщение
    Байтовые обращения к данным не могут поломаться, потому что и 16-разрядная, и 32-разрядная архитектуры обращаются к 8-разрядным и 16-разрядным данным одинаково. Разница только в обращении к коду. У 16-разрядного кода обращение к коду 16-разрядное, а у 32-разрядного кода обращение к коду 32-разрядное.
    еще раз: КАК понять, что обращение было к коду? еще раз: где ГАРАНТИЯ, что команда обращается ТОЛЬКО к коду?

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

    blackmirror, а вот это может и заработать, но не проще ли тогда уж выполнять pdp16 блок напрямую

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

    пора тему переименовывать в "эмуляцию pdp-11 на каком-нибудь 32-битном процессоре"
    Прихожу без разрешения, сею смерть и разрушение...

  4. #123
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    а если 16-битным код обращался к 16-битным старым ОПКОДАМ (которые стали 32-битными) и как об этом компоновщик должен догадываться?
    а если хуже - один код из разных мест вызывается для обращения И к опкодам, И к 16-битным данным?
    Просмотрите исходники всех библиотек и найдите хотя бы один реальный пример кода, который не может быть автоматически перекомпилирован из 16-разрядного в 32-разрядный. В теории такая ситуация возможна, но в возможность встретить её в реальной подпрограмме из реальной библиотеки поверить трудно.

  5. #124
    R.I.P. Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    370
    Поблагодарили
    309 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Patron, похоже, что вы говорите о реальном и существующем ПО, а

    Lethargeek, о абстрактном )

    Таким образом один из вас не видит возможности сбоя, а второй настаивает на абстрактной вероятности сбоя выполнения. Нужен универсальный описанный и разъяснённый метод который гарантирует защиту от сбоя,
    ведь будет обидно если аппаратура будет иметь дырку(?) на уровне процессора - это не допустимо в любом случае.
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  6. #125
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    пора тему переименовывать в "эмуляцию pdp-11 на каком-нибудь 32-битном процессоре"
    Вот фрагмент исходного кода реализации команд RTI / RTT в микропрограммном эмуляторе, известном как "процессор J11":

    Код:
    	.BIN
    	RTI-RTT:	; Break out RTI and RTT.
    	=10********0
    	PLA0	[^0 111 111, ^0 000 000 000 000 X10]
    		ARI.W	[SP],			; Relocate SP in current mode and increment by two.
    			ODD TRAP,		; Must be a word address.
    			LD MMR1			; Record change in MMR1.
    
    		RD.W	[PC]			; Load PC.  MMR2 still has PC if abort.
    	
    		JKM	[RTx_KERNEL]		; Jump around special processing
    	=0*1*****				; Force abort to ROM[040].
    		ARI.W	[SP],			; Relocate SP again and pop.
    			LD MMR1			; Again record the change for MMU.
    
    		RD.W	[RF] 			; Read new PS data
    	 	LBIC.B	[340,RF]		; Priority is cleared out
    	=0*1*****				; Force abort to ROM[040].
    		LLSW.B	[370,RE]		; Setup mask to save old modes <15:11>
    
    		LLD.B	[340,RE]		; Also save old priority information
    		AND.W	[RE,PS]			; Clear out all but <15:11> and <7:5>
    		BIS.W	[RF,PS],		; Build new PS information
    			NAF/RTx_CONVERGE	; Go and update control chip PS
    	RTx_KERNEL:
    		RD.W	[PS]			; Kernel mode directly copys input
    	RTx_CONVERGE:
    		OUTS	[PSW, PS],		; Update Control chip PS<7:4>, interrupt
    						;  priority and T-bit.

    Если J11, написанный на уродском ассемблере J11 - это процессор с архитектурой PDP-11, то эмулятор ДВК, написанный на C++ - ничем не хуже.

    Настоящие процессоры, не являющиеся внутри себя программными эмуляторами - встречались только в ранние годы PDP-11. Даже один из старых и известных процессоров PDP-11 -- LSI-11 - это программный эмулятор, в который можно (методом перетыкания ПЗУ) загрузить программу, реализующую любую систему команд.


    Если переписать исходный код J11 с ассемблера J11 на ассемблер Intel, но сохранить все сигналы и тайминги внешней шины Q-Bus неизменными - такой вариант процессора J11 останется "процессором с архитектурой PDP-11" или нет?

    Если ДА, то учитывая, что подключение Q-Bus к 32-разрядному процессору возможно только через адаптер - какая разница, что находится с другой стороны адаптера, если со стороны Q-Bus оно является "процессором с архитектурой PDP-11".

  7. #126
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,994
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    на уродском ассемблере J11
    Добро пожаловать в микропрограммирование. Примерно тоже самое, что делается в FPGA

    Цитата Сообщение от Patron Посмотреть сообщение
    Если переписать исходный код J11 с ассемблера J11 на ассемблер Intel, но сохранить все сигналы и тайминги внешней шины Q-Bus неизменными
    Удачи

  8. #127
    Master Аватар для svinka
    Регистрация
    18.02.2016
    Адрес
    г. Москва
    Сообщений
    618
    Спасибо Благодарностей отдано 
    33
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    40 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Даже один из старых и известных процессоров PDP-11 -- LSI-11 - это программный эмулятор, в который можно (методом перетыкания ПЗУ) загрузить программу, реализующую любую систему команд.
    LSI-11 программно-аппаратный эмулятор. Декодер команд там зашит в микросхему. Максимум что сможете - слегка "перемешать" систему команд

  9. #128
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Добро пожаловать в микропрограммирование.
    Микропрограмма - это обычная программа, команды которой выполняются одна за другой.


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

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

    Цитата Сообщение от Hunta Посмотреть сообщение
    Удачи
    Уже сделано.

    По ссылке - две потактово идентичных модели процессора 1801ВМ1, одна из которых сделана из HDL-исходника процессора, путём конвертации его в C++, а другая написана, как обычная эмулирующая программа.

    Можно запустить обе модели и убедиться в полной идентичности их работы с шиной Q-Bus с точностью до полутакта.

    Какая же из этих моделей имеет большее право называться "настоящим процессором с архитектурой PDP-11"..
    Последний раз редактировалось Patron; 19.09.2017 в 19:05.

  10. #129
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,994
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Уж скоро год как,
    А процессора всё нет...

    Ария Германна.

  11. #130
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Уж скоро год как,
    А процессора всё нет...
    Да что там процессора, даже новой версии Unix для ДВК-2 нет, потому что разработка эффективного оптимизирующего кросс-компилятора C++ для PDP-11 на базе LLVM застряла на полдороге. Но ария про компилятор ещё беспощаднее арии про процессор, поэтому лучше отдохнём ещё годик.
    Последний раз редактировалось Patron; 16.07.2018 в 00:10.

Страница 13 из 18 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Fuzebox - полностью открытая 8-битная игровая приставка
    от CityAceE в разделе Зарубежные компьютеры
    Ответов: 22
    Последнее: 09.03.2017, 15:35
  2. MSX и EPSON-совместимый принтер
    от ipkin в разделе MSX
    Ответов: 3
    Последнее: 01.12.2011, 19:23
  3. Ответов: 5
    Последнее: 20.06.2011, 03:18
  4. Собрал комп полностью своими руками
    от scooby-do в разделе Зарубежные компьютеры
    Ответов: 14
    Последнее: 27.06.2009, 11:25
  5. Куплю ZX совместимый компьютер.
    от billgilbert81 в разделе Барахолка (архив)
    Ответов: 19
    Последнее: 05.12.2008, 20:33

Ваши права

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