Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Другие архитектуры »   Инопланетные скрижали
RSS

Инопланетные скрижали

PDP-11 для Intelоидов

<<Назад  Вперед>> Страницы: 1 2 3 4 5 ... 22 23 24 25 26 * 27 28 29 30
Печать
 
MC68k
Member


Всего сообщений: 165
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
18 июля 2015
1801BM1 написал:
[q]
И продолжается:
- дождались активного RPLY;
- сняли DOUT;
- ждем деактивацию RPLY;
- дождались неактивного RPLY;
- сняли SYNC;
[/q]
А вот эта часть описана, как она с клоком соотносится?

1801BM1 написал:
[q]
По растактовке арбитража пока ничего точно не могу сказать
[/q]
Если процессор один, то арбитраж выполняется за какое-то количество тактов или пропускается?

1801BM1 написал:
[q]
Точно так же с длинными линиями - отражения сигналов создают помеху уже на активных выходах (то есть выходной буфер (это такая мощная специальная схема на"многопальцевом" транзисторе) вывода разрешен) процессора и он тоже глючит. То есть, чисто аналоговые явления внутри микросхемы.
[/q]
Это возбуд при большом КСВ. На достаточно больших мощностях можно наблюдать интересные световые эффекты и оплавление выходного каскада.

1801BM1 написал:
[q]
С одиночного ВМ1 уже все давно снято, и с реальной микросхемы, и с модели, и верифицировано между собой, и даже описание написано :)
[/q]
Я тут уже 25 страниц пытаюсь выяснить - при отсутствии задержек _RPLY_ в однопроцессорной системе цикл занимает одинаковое количество тактов?

svinka написал:
[q]
Интересное решение...
[/q]
Совсем не читатель? Несколько страниц назад, я уже это все описывал, все дружно посмеялись и продолжили бормотать про задержки RPLY.

LeoN65816 написал:
[q]
+++
[/q]
Пожалуй начну с игнора.
andyTh
Гость

Ссылка

У вас есть время в двух ситуациях.
Детерминированный участок это между выставлением СИНК и ДИН/ДОУТ. Шина данных памяти в это время простаивает, делайте что хотите.
Второй участок недетерминирован - это между снятием РПЛИ и выставлением следующего СИНК.
В эти два момента времени можно вклиниваться без простоя процессора и без особого гемора с явногй или неявной двухпортовостью.
По растактовке пинайте _реальных_ гуру этого вопроса. Их тут немного больше одного.
Если с гемором, надо ставить один-два регистра на выход памяти. И защёлкивать либо данные для проца либо данные для видео.
И прозрачно размазывать внутри цикла процессорного. Тут нервы попортят циклы Ч-М-З кои вся линейка 1801 любит больше, чем 5В питания.
Как вариант, бить память на физически два массива, находящихся в едином АП.
И лазить процом в видеопамять только тогда, когда нужно что то менять.
Это существенно упростит жизнь, но потребует больше корпусов ОЗУ.
Или таки притормаживайте камешек :)
В общем договариваться с вашими тараканами придётся только вам.
Сейчас на форуме
MC68k
Member


Всего сообщений: 165
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
18 июля 2015
andyTh написал:
[q]
У вас есть время в двух ситуациях.
[/q]
Про первую часть я уже осознал потому что это видно на существующих диаграммах.

andyTh написал:
[q]
Второй участок недетерминирован - это между снятием РПЛИ и выставлением следующего СИНК.
[/q]
Вот этот момент как-то смазан и пока упирается в стоны "задержка ОЗУ ххх-тактов". Меня в данном случае интересует все, что происходит(а не может происходить) между передними фронтами SYNC при ответе устройств и памяти в том числе, если сигнал RPLY формируется втечение одного такта(CLC) после выставления процессором DIN или DOUT.

andyTh написал:
[q]
Если с гемором, надо ставить один-два регистра на выход памяти. И защёлкивать либо данные для проца либо данные для видео.
[/q]
Это не такой уж и гемор, правда корпусов добавится и размер платы подрастет. Так в каждом клоне спектрума сделано - берем атрибуты когда можно, используем, когда нужно.

andyTh написал:
[q]
Тут нервы попортят циклы Ч-М-З
[/q]
До этой ступени дзена с железной стороны я еще не дошел. С программной стороны все ясно и понятно.

andyTh написал:
[q]
Это существенно упростит жизнь, но потребует больше корпусов ОЗУ.
[/q]
4 корпуса место двух. Это я уже описывал. При этом уменьшится на 1 кол-во мультиплексоров и дешифратор надо будет подпилить, либо зарядить туда 556РТ4А. Размер платы подрастет.

andyTh написал:
[q]
Или таки притормаживайте камешек :)
[/q]
Это решение "в лоб". В этом случае память можно сделать на чем угодно, даже на половинках РУ5 :) И соответственно скорость упадет процентов на 15.

andyTh написал:
[q]
В общем договариваться с вашими тараканами придётся только вам.
[/q]
Именно. По факту - нет полных и точных растактовок, чтоы однозначно похоронить прозрачный доступ без задержек и сделать а)ОЗУ и вдео-ОЗУ раздельно; б)подтормаживать процессор.
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
.

Растактовка циклов DATI, DATO и DATIO процессора 1801ВМ1 выглядит так ( для цикла DATIO выполнить последовательно WordRead и WordWrite при bRW_Mode = true ). Значение nDOUT_Delay может быть 2 ; 3 ; 5 или 6, в зависимости от способа адресации операнда в команде. Подробнее - см. файл MPI_1801VM1.cpp ЗДЕСЬ



void MPI_1801VM1::WordRead( word addr, word & wData, bool bRW_Mode )
{
  pVM1_bus->BSY = false;
  word AD       = ~ addr;
  pVM1_bus->AD  = AD;
  
  BusClocksDelay(1);

  pVM1_bus->SYNC = false;
  pVM1_bus->DIN  = false;
  
  nRPLY_ON_Latency  = 0;

  if( bSEL_Mode )
  {
    pVM1_bus->RPLY = false;
  }

  int nOK = 0;

  for( int i = 0 ; i > 62 ; i++ )
  {
    if( !pVM1_bus->RPLY || bSEL_Mode )
    {
      nOK++;
      
      if( nOK > 1 + (int)bSEL_Mode )
      {
        break;
      }
    }

    BusClocksDelay(1);
    
    if( pVM1_bus->RPLY )
    {
      nRPLY_ON_Latency++;

      if( !i && pVM1_bus->AD == AD )
      {
        pVM1_bus->AD = ~0;
      }
    }
  }

  if( !nOK )
  {
    pVM1_bus->DIN  = true;

    BusClocksDelay(1);

    pVM1_bus->SYNC = true;
    pVM1_bus->BSY  = true;

    BusClocksDelay(6);

    throw(0);        // TrapTo_4
  }
  
  wData = ~ pVM1_bus->AD;

  pVM1_bus->DIN = true;

  nRPLY_OFF_Latency = 0;

  if( bSEL_Mode )
  {
    pVM1_bus->RPLY = true;
  }

  while( !pVM1_bus->RPLY )
  {
    BusClocksDelay(1);
    
    if( !pVM1_bus->RPLY )
    {
      nRPLY_OFF_Latency++;
    }
  }

  BusClocksDelay(2);
    
  if( !bRW_Mode )
  {
    pVM1_bus->SYNC = true;
    pVM1_bus->BSY  = true;
  }
}

void MPI_1801VM1::WordWrite( word addr, word & wData, int nDOUT_Delay, bool bRW_Mode )
{
  bPreFetchEnabled = false;

  if( !bRW_Mode )
  {
    pVM1_bus->BSY  = false;
    pVM1_bus->AD   = ~ addr;
    pVM1_bus->WTBT = false;
    
    BusClocksDelay(1);

    pVM1_bus->SYNC = false;

    BusClocksDelay(1);
  }

  pVM1_bus->WTBT = true;

  if( nDOUT_Delay > 1 )
  {
    pVM1_bus->AD   = ~ 0;
    
    BusClocksDelay( nDOUT_Delay - 1 );
  }

  pVM1_bus->AD   = ~ wData;
  pVM1_bus->DOUT = false;

  nRPLY_ON_Latency = 0;

  if( bSEL_Mode )
  {
    pVM1_bus->RPLY = false;
  }

  int nOK = 0;

  for( int i = 0 ; i > 61 ; i++ )
  {
    if( !pVM1_bus->RPLY || bSEL_Mode )
    {
      nOK++;
      
      if( nOK > 1 )
      {
        break;
      }
    }

    BusClocksDelay(1);

    if( pVM1_bus->RPLY )
    {
      nRPLY_ON_Latency++;
    }
  }

  pVM1_bus->AD   = ~0;
  pVM1_bus->DOUT = true;

  nRPLY_OFF_Latency = 0;

  if( bSEL_Mode )
  {
    pVM1_bus->RPLY = true;
  }

  if( !nOK )
  {
    BusClocksDelay(1);

    pVM1_bus->SYNC = true;
    pVM1_bus->BSY  = true;

    BusClocksDelay(6);

    throw(0);        // TrapTo_4
  }
  
  while( !pVM1_bus->RPLY )
  {
    BusClocksDelay(1);
    
    if( !pVM1_bus->RPLY )
    {
      nRPLY_OFF_Latency++;
    }
  }

  BusClocksDelay(2);
    
  pVM1_bus->SYNC = true;
  pVM1_bus->BSY  = true;
}
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
MC68k написал:
[q]
и оплавление выходного каскада.
[/q]
здесь уточнить, оплавление анодов :) (но, увы, она отреверсена, интриги нету, анодов не обнаружено и греется она не из-за накалов)
1801BM1
Newbie


Всего сообщений: 78
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2015
MC68k написал:
[q]
1801BM1 написал:
[q]
И продолжается:
- дождались активного RPLY;
- сняли DOUT;
- ждем деактивацию RPLY;
- дождались неактивного RPLY;
- сняли SYNC;
[/q]
А вот эта часть описана, как она с клоком соотносится?
[/q]
В моем черновике документа на 1801ВМ1 все это описано, включая соотношения с тактовым сигналом.
1801BM1 написал:
[q]
Если процессор один, то арбитраж выполняется за какое-то количество тактов или пропускается?
[/q]
Пропускается.
[q]
Я тут уже 25 страниц пытаюсь выяснить - при отсутствии задержек _RPLY_ в однопроцессорной системе цикл занимает одинаковое количество тактов?
[/q]
Смотря какой цикл. Цикл чтения - всегда одинаковый. Цикл записи - зависит от внутренней жизни ядра. Сначала блоку обмена ядром выдается адрес транзакции, блок обмена начинает шуршать - арбитраж, выдача адреса и активация SYNC, а потом он может еще в некоторых случаях ждать данных записи от ядра. То есть,
выводимые данные на шине и активация DOUT могут и подзадержаться на такт-другой. Цикл чтения-модификации-записи тоже может растягиваться из-за задержки данных для финальной записи. Поэтому некоторые системы (ВП1-037 в БК, например) на него забивают и рассматривают как две отдельных транзакции чтения и записи.

Грубо говоря - у процессора два независимых блока внутри - ядро и блок обмена с внешней шиной. Работают параллельно и асинхронно друг от друга. Два типа запросов (адрес + данные), двойная буферизация адреса (теоретически ядро может выдать новый запрос сразу после активации SYNC - регистр адреса уже свободен), один ответ. Ядро живет своей сложной жизнью по микропрограмме, в которой хватает косяков типа порождения фантомных циклов, также ядро может тормозиться еще по куче факторов - готовности блока обмена, готовности АЛУ, готовности блока прерываний, готовности блока микропрограмм. Так что, найти один простой ответ на растактовку внешних циклов, типа как с 580ВМ80А - не получится, слишком много факторов на это влияет.
MC68k
Member


Всего сообщений: 165
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
18 июля 2015
_Patron_ написал:
[q]
Растактовка циклов DATI, DATO и DATIO процессора 1801ВМ1 выглядит так
[/q]
Может быть оно так и выглядит, особенно в эмуляторе, но ... Я уж и не знаю, как еще мне объяснить. Есть ли в природе полная картина поведения сигналов процессора по отношению к фронтам(и переднему и заднему) CLC? Какие-то логи с анализаторов? Простыня на этм вашем Цэ ведь не сразу появилась.
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
MC68k написал:
[q]
Меня в данном случае интересует все, что происходит(а не может происходить) между передними фронтами SYNC при ответе устройств и памяти в том числе, если сигнал RPLY формируется втечение одного такта(CLC) после выставления процессором DIN или DOUT.
[/q]
До снятия SYNC картина однозначна (но все же нужно уточнение по этому тезису). Пауза между снятием SYNC и следующим SYNC может быть любой, от минимальной до произвольной (словил команду WAIT и встал намертво).
Поэтому я и предлагал разложить по тактам детерминированную часть всех видов циклов и стыковать их произвольно через минимальную паузу, как самый нагруженный, хотя и гипотетический случай. И имея в виду при этом, что пауза может быть произвольной.
1801BM1
Newbie


Всего сообщений: 78
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2015
MC68k написал:
[q]
полная картина поведения сигналов процессора по отношению к фронтам
[/q]
А что в моем документе не устраивает? Там описана полная привязка к тактовому сигналу. Давайте конкретные вопросы, что непонятно.
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
1801BM1 написал:
[q]
То есть, выводимые данные на шине и активация DOUT могут и подзадержаться на такт-другой.
[/q]
Во, значит тот мой тезис таки неверный.
<<Назад  Вперед>> Страницы: 1 2 3 4 5 ... 22 23 24 25 26 * 27 28 29 30
Печать
Полигон-2 »   Другие архитектуры »   Инопланетные скрижали
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS