Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
6502:control [2013/10/18 22:47]
org
6502:control [2020/02/10 13:05] (текущий)
org
Строка 1: Строка 1:
-==== Управляющие команды ​====+Управляющие команды
  
 **"​Управляющие команды"​** - это условное название большого количества контрольных линий, которые идут с верхней части процессора в нижнюю и управляют контекстом (регистрами,​ шинами и АЛУ). Ещё иногда я называю их "​драйверами"​ (drivers). **"​Управляющие команды"​** - это условное название большого количества контрольных линий, которые идут с верхней части процессора в нижнюю и управляют контекстом (регистрами,​ шинами и АЛУ). Ещё иногда я называю их "​драйверами"​ (drivers).
Строка 13: Строка 13:
 Большинство команд идут в нижнюю часть процессора,​ но команды управления флагами не выходят за пределы рандомной логики,​ так как флаги располагаются в верхней части. Большинство команд идут в нижнюю часть процессора,​ но команды управления флагами не выходят за пределы рандомной логики,​ так как флаги располагаются в верхней части.
  
-==== Список ​====+## Список
  
   * **Команды управления регистрами**   * **Команды управления регистрами**
Строка 60: Строка 60:
   * P/DB : enables tri-state buffer, to connect flags output with internal data bus.   * P/DB : enables tri-state buffer, to connect flags output with internal data bus.
  
-==== Когда какие команды активны ​====+## Когда какие команды активны
  
 Часть команд принудительно устанавливается в 0 (отключается) во время PHI2. Связано это с тем, что внутренние шины подзаряжаются во время PHI2, а регистры в это время обычно "​рефрешатся"​. Ниже приведена таблица,​ галочкой помечаются команды который могут быть активны в указанный полутакт,​ а прочерком - когда команды принудительно отключаются. Часть команд принудительно устанавливается в 0 (отключается) во время PHI2. Связано это с тем, что внутренние шины подзаряжаются во время PHI2, а регистры в это время обычно "​рефрешатся"​. Ниже приведена таблица,​ галочкой помечаются команды который могут быть активны в указанный полутакт,​ а прочерком - когда команды принудительно отключаются.
Строка 75: Строка 75:
 |S/​S|✓|---| |S/​S|✓|---|
  
-==== Конфликтные состояния ​====+## Конфликтные состояния
  
 Конфликтные состояние возникают когда несколько внутренних схем одновременно пихают свои значения на одну и ту же шину. Конфликтные состояние возникают когда несколько внутренних схем одновременно пихают свои значения на одну и ту же шину.
Строка 85: Строка 85:
 Например,​ если значение X = 0x33 (00110011), а значение Y = 0x12 (00010010), то в результате одновременного выполнения команд X/SB и Y/SB значение шины будет равно 0x12 (00010010). Например,​ если значение X = 0x33 (00110011), а значение Y = 0x12 (00010010), то в результате одновременного выполнения команд X/SB и Y/SB значение шины будет равно 0x12 (00010010).
  
-==== Симуляция конфликтных состояний ​====+## Симуляция конфликтных состояний
  
 При обработке команд выгрузки значений на шины нужно делать не обычное присваивание типа SB = X, а применять следующий трюк : При обработке команд выгрузки значений на шины нужно делать не обычное присваивание типа SB = X, а применять следующий трюк :
Строка 97: Строка 97:
 В результате чего единичные разряды шины разрядятся и возможные конфликты шины будут устранены. В результате чего единичные разряды шины разрядятся и возможные конфликты шины будут устранены.
  
-==== Курица или яйцо? ​====+## Курица или яйцо?
  
 Теоретически в процессоре 6502 могут быть установлены одновременно команда выдачи регистра на шину и команда загрузки того же самого регистра из шины (например X/SB и SB/X). Теоретически в процессоре 6502 могут быть установлены одновременно команда выдачи регистра на шину и команда загрузки того же самого регистра из шины (например X/SB и SB/X).
  • Показать страницу