Устройство для отсчета времени
Изобретение относится к вычислительной технике и предназначено для непрерывного отсчета астрономического времени /функция часы/, для фиксации заранее заданного момента времени /функция компаратора/, для измерения истекшего времени работы процессора /функция таймер процессора/ и может быть применено в ЭВМ любого класса, например в ЕС ЭВМ. Цель изобретения - сокращение аппаратных затрат. Поставленная цель достигается благодаря тому, что в устройство, содержащее два двунаправленных коммутатора, счетчик, блок управления, блок сравнения, блок памяти информационных разрядов, блок памяти контрольных разрядов, два коммутатора, регистр, блок предсказания переносов, блок предсказания четности байтов, блок формирования сигналов состояния (устройства), элемент свертки по модулю два, элемент ИЛИ с соответствующими связями, дополнительно введен узел реконфигурации с новыми связями. 5 ил.
Изобретение относится к вычислительной технике и предназначено для организации совместно с процессором в ЭВМ отсчета астрономического времени (функция часы) для фиксации заранее заданного момента времени (функция компаратора), для измерения истекшего времени работы процессора (функция таймер процессора) и может быть применено в ЭВМ любого класса, например, в ЕС ЭВМ.
Известно устройство для отсчета времени, содержащее 20-разрядный счетчик, первую и вторую буферные памяти. В указанном устройстве с помощью 20-разрядного счетчика ежесекундно (через 220 мкс) формируются сигналы-сообщения о микропрограммном прерывании процессору (микропроцессору), представляющие собой запросы процессору на обслуживание устройства. Параллельно указанный сигнал запроса запоминается в первой буферной памяти и в последующем переписывается во вторую буферную память, если процессор не осуществляет из нее чтения данных. При задержке возникновения микропрограммного прерывания в процессоре для обслуживания устройства (по причине, например, останова процессора или в связи с выполнением в процессоре процедуры "начальной загрузки") на несколько секунд все возникающие ежесекундно указанные сигнал-запросы запоминаются (накапливаются) во второй буферной памяти (через первую буферную память). Когда процессор "обслуживает" устройство, то он считывает последовательно все данные из второй буферной памяти и соответствующим образом модифицирует счетчик секунд, организованный микропрограммно в процессоре. При этом перезапись данных из первой буферной памяти во вторую предотвращается, а возможные новые сигналы-запросы, генерируемые 20-разрядным счетчиком в устройстве запоминаются (накапливаются) в первой буферной памяти. Данные из первой буферной памяти переписываются во вторую буферную память после завершения чтения данных из нее процессором. Недостатками указанного устройства являются большие аппаратные затраты в связи с использованием первой и второй буферных памятей и ограниченный класс решаемых задач в связи с невозможностью организовать с помощью устройства таймер процессора и компаратор. Известно устройство для отсчета времени, содержащее 20-разрядный счетчик компаратора и 52-разрядный счетчик часов. Старшие (32) разряды таймера процессора, при использовании указанного устройства, организуются в процессоре в виде микропрограммного счетчика путем использования соответствующей (32-разрядной) ячейки локальной памяти процессора, содержимое которой модифицируется (вычитается единица) после появления переноса из старшего разряда 20-разрядного счетчика таймера процессора и соответствующего микропрограммного прерывания в процессоре. Для организации компаратора в локальной памяти процессора выделяется 52-разрядная ячейка, в которой хранится значение компаратора. По сигналам от устройства, генерируемых каждую секунду, осуществляется микропрограммное прерывание в процессоре, после которого процессор осуществляет "обслуживание" устройства. Осуществляется чтение значения часов из 52-разрядного счетчика и вычитание от значения часов значения компаратора. Если полученная разность соответствует значению времени, большему одной секунды, то вычисление указанной разности повторяется через секунду. Если полученная разность имеет значение, меньшее (равное) одной секунды, то код разности загружают в 20-разрядный счетчик компаратора, который по истечении оставшегося времени выдает запрос на внешнее прерывание от компаратора. Недостатком указанного устройства являются большие аппаратные затраты в связи с использованием 52-разрядного счетчика часов и низкая достоверность счета. Наиболее близким по технической сущности к заявляемому является устройство для отсчета времени, содержащее первый и второй двунаправленные коммутаторы, счетчик, блок управления, блок сравнения, блок памяти информационных разрядов, блок памяти контрольных разрядов, первый и второй коммутаторы, регистр, блок предсказания четности байтов, блок состояния, элемент свертки по модулю два, элемент ИЛИ, причем группа адресных входов блока памяти контрольных разрядов соединена с группой адресных входов блока памяти информационных разрядов и с группой адресных выходов блока управления, вход запуска которого является входом запуска устройства, вход задания операций внешнего обмена которого соединен с входом задания операций внешнего обмена блока управления, группа входов задания начальных условий которого является группой входов задания начальных условий устройства, первая группа тактовых входов блока управления является первой группой тактовых входов устройства, вход фиксации переполнения блока состояния устройства соединен с выходом переполнения блока предсказания переносов, группа выходов которого соединена со второй группой входов блока предсказания четности байтов, первая группа входов которого соединена с группой информационных входов блока предсказания переносов, с группой разрядных выходов счетчика и с группой информационных входов блока памяти информационных разрядов, управляющий вход которого соединен с управляющим входом блока памяти контрольных разрядов и с шестым выходом блока управления, седьмой выход которого соединен с управляющим входом второго коммутатора, группа выходов которого соединена с группой информационных входов регистра, а вторая группа информационных входов второго коммутатора соединена со второй группой выходов блока предсказания четности байтов, первая группа выходов которого соединена со второй группой входов блока сравнения, первая группа входов которого соединена с группой разрядных выходов регистра и с группой информационных входов блока памяти контрольных разрядов, группа выходов которого соединена с первой группой информационных входов второго коммутатора и со второй группой информационных входов/выходов второго двунаправленного коммутатора, вторая группа информационных входов/выходов первого двунаправленного коммутатора соединена с группой выходов блока памяти информационных разрядов и с группой информационных входов счетчика, вход разрешения счета которого соединен с первым выходом блока управления, второй выход которого соединен со входом запрета первого, второго двунаправленных коммутаторов и первого коммутатора, входы управления передачей информации первого и второго двунаправленных коммутаторов соединены с третьим выходом блока управления, четвертый выход которого соединен со входом управления передачей информации первого коммутатора, первая группа информационных входов/выходов первого двунаправленного коммутатора является группой входов/выходов задания времени устройства, первая группа входов/выходов второго двунаправленного коммутатора является группой входов/выходов контрольных разрядов устройства, группа информационных выходов вместе с выходом разряда контроля четности первого коммутатора является группой выходов сигналов состояния вместе с выходом разряда контроля четности устройства, выход ошибки которого соединен с выходом блока сравнения, а группа выходов состояния блока состояния соединена с соответствующими входами элемента свертки по модулю два и с информационными входами первого коммутатора, вход разряда контроля четности которого соединен с выходом элемента свертки по модулю два, соответствующие входы которого соединены со входами элемента ИЛИ, выход которого соединен с выходом запроса устройства, управляющий вход блока состояния соединен с пятым выходом блока управления, выход конца операции внешнего обмена которого является выходом конца операции внешнего обмена устройства, соответствующие тактовые входы второй группы тактовых входов которого соединены с группами тактовых входов первого; второго двунаправленных коммутаторов, первого коммутатора, счетчика, регистра, блока состояния и со второй группой тактовых входов блока управления. Недостатком указанного устройства являются большие аппаратные затраты из-за необходимости использовать 52-разрядных счетчика первого двунаправленного коммутатора, блока памяти информационных разрядов. Цель изобретения - сокращение аппаратных затрат за счет обеспечения возможности использования 20-разрядных счетчика, первого двунаправленного коммутатора, блока памяти информационных разрядов при обеспечении решения в процессоре ЭВМ всех задач, решаемых с помощью прототипа. Поставленная цель достигается тем, что устройство для отсчета времени, содержащее первый и второй двунаправленные коммутаторы, счетчик, блок управления, блок сравнения, блок памяти информационных разрядов, блок памяти контрольных разрядов, первый и второй коммутаторы, регистр, блок предсказания переносов, блок предсказания четности байтов, блок состояния, элемент свертки по модулю два, элемент ИЛИ, причем группа адресных входов блока памяти контрольных разрядов соединена с группой адресных входов блока памяти информационных разрядов и с группой адресных выходов блока управления, вход запуска которого является входом запуска устройства, вход задания операций внешнего обмена которого соединен с входом задания операций внешнего обмена блока управления, группа входов задания начальных условий которого является группой входов задания начальных условий устройства, первая группа тактовых входов блока управления является первой группой тактовых входов устройства, вход фиксации переполнения блока состояния соединен с выходом переполнения блока предсказания переносов, группа выходов которого соединена со второй группой входов блока предсказания четности байтов, первая группа входов которого соединена с группой информационных входов блока предсказания переносов, с группой разрядных выходов счетчика и с группой информационных входов блока памяти информационных разрядов, управляющий вход которого соединен с управляющим входом блока памяти контрольных разрядов и с шестым выходом блока управления, седьмой выход которого соединен с управляющим входом второго коммутатора, группа выходов которого соединена с группой информационных входов регистра, а вторая группа информационных входов второго коммутатора соединена со второй группой выходов блока предсказания четности байтов, первая группа выходов которого соединена со второй группой входов блока сравнения, первая группа входов которого соединена с группой разрядных выходов регистра и с группой информационных входов блока памяти контрольных разрядов, группа выходов которого соединена с первой группой информационных входов второго коммутатора и со второй группой информационных входов/выходов второго двунаправленного коммутатора, вторая группа информационных входов/выходов первого двунаправленного коммутатора соединена с группой выходов блока памяти информационных разрядов и с группой информационных входов счетчика, вход разрешения счета которого соединен с первым выходом блока управления, второй выход которого соединен со входом запрета первого, второго двунаправленных коммутаторов и первого коммутатора, входы управления передачей информации первого и второго двунаправленных коммутаторов соединены с третьим выходом блока управления, четвертый выход которого соединен со входом управления передачей информации первого коммутатора, первая группа информационных входов/выходов первого двунаправленного коммутатора является группой входов/выходов задания времени устройства, первая группа информационных входов/выходов второго двунаправленного коммутатора является группой входов/выходов контрольных разрядов устройства, группа информационных выходов вместе с выходом разряда контроля четности первого коммутатора является группой выходов сигналов состояния вместе с выходом разряда контроля четности устройства, выход ошибки которого соединен с выходом блока сравнения, а группа выходов состояния блока состояния соединена с соответствующими входами элемента свертки по модулю два и с информационными входами первого коммутатора, вход разряда контроля четности которого соединен с выходом элемента свертки по модулю два, соответствующие входы которого соединены с входами элемента ИЛИ, выход которого соединен с выходом запроса устройства, выход конца операций внешнего обмена которого соединен с выходом конца операции внешнего обмена блока управления, пятый выход которого соединен с управляющим входом блока состояния, группа тактовых входов которого, а также группы тактовых входов первого и второго двунаправленных коммутаторов, первого коммутатора, счетчика, регистра и вторая группа тактовых входов блока управления соединены с соответствующими тактовыми входами второй группы тактовых входов устройства, дополнительно содержит узел реконфигурации, причем управляющий выход блока состояния соединен с первым управляющим входом узла реконфигурации, первый выход которого соединен со входом сброса счетчика, счетный вход которого соединен с управляющим входом блока предсказания переносов и блока предсказания четности байтов и со вторым выходом узла реконфигурации, второй управляющий вход которого соединен с восьмым выходом блока управления, выход блока предсказания переносов соединен с третьим управляющим входом узла реконфигурации, группа тактовых входов которого соединена с соответствующими тактовыми входами второй группы тактовых входов устройства. В предложенном устройстве содержатся такие признаки, как узел реконфигурации со связями, которые отсутствуют во всех аналогах и благодаря которым достигается положительный эффект - сокращение аппаратных затрат за счет уменьшения разрядности (до 20 разрядов) счетчика (часов). Структура узла реконфигурации также является новой, но может быть разной в зависимости от используемой элементной базы. Так как в предложенном устройстве содержатся признаки, не обнаруженные ни в одном аналоге и обеспечивающие достижение положительного эффекта, то оно соответствует критерию "существенные отличия". На фиг. 1 изображена структурная схема устройства; на фиг. 2 - структурная схема блока управления устройства; на фиг. 3 - функциональная схема блока состояния устройства; на фиг. 4 - функциональная схема узла реконфигурации устройства; на фиг. 5 - функциональные схемы блока предсказания переносов и блока предсказания четности со связями. Цифрами в прямоугольниках (квадратах) и около них на фиг. 1 - фиг. 5 обозначены: 1 - первый двунаправленный коммутатор; 2 - второй двунаправленный коммутатор; 3 - первый коммутатор; 4 - счетчик; 5 - блок управления; 6 - блок сравнения; 7 - блок памяти информационных разрядов; 8 - блок памяти контрольных разрядов; 9 - второй коммутатор; 10 - регистр; 11 - блок предсказания переносов; 12 - блок предсказания четности байтов; 13 - узел реконфигурации; 14 - блок состояния; 15 - элемент свертки по модулю два; 16 - элемент ИЛИ; 17 - первый выход узла 13, вход сброса счетчика 4 и регистра 10; 18 - второй выход узла 13, счетный вход счетчика 4, управляющий вход блоков 11 и 12; 19 - управляющий выход блока 14, первый управляющий вход узла 13; 20 - второй управляющий вход узла 13, восьмой выход блока 5; 21 - первая группа входов/выходов коммутатора 1; 22 - первая группа входов/выходов коммутатора 2, группа входов/выходов контрольных разрядов устройства; 23 - группа выходов вместе с выходом разряда контроля четности коммутатора 31, группа выходов состояния устройства вместе с выходом разряда контроля четности; 24 - группа выходов состояния блока 14, соответствующие входы элемента 15, группа информационных входов коммутатора 3; 25 - выход запроса устройства, выход элемента 16; 26 - выход конца операции внешнего обмена блока 5 и устройства; 27 - вход задания операций внешнего обмена устройства и блока 5; 28 - входы элемента 16; 29 - вход разряда контроля четности группы информационных входов коммутатора 3, выход элемента 15; 30 - группа выходов коммутатора 9, группа информационных входов регистра 10; 31 - группа разрядных выходов счетчика 4, группа информационных входов блоков 7, 11, первая группа входов блока 12; 32 - группа выходов блока 11, вторая группа входов блока 12; 33 - выход блока 6, выход ошибок устройства; 34 - выход переполнения блока 11, вход фиксации переполнения блока 14, третий управляющий вход узла 13; 35 - вторая группа выходов блока 12, вторая группа информационных входов коммутатора 9; 36 - первая группа выходов блока 12, вторая группа входов блока 6; 37 - управляющий вход блока 14, пятый выход блока 5; 38 - первая группа входов блока 6, группа выходов регистра 10, группа информационных входов блока 8; 39 - управляющий вход коммутатора 9, седьмой выход блока 5; 40 - управляющий вход блоков 7, 8, шестой выход блока 5; 41 - группа адресных входов 7, 8, группа адресных выходов блока 5; 42 - группа выходов блока 8, вторая группа информационных входов/выходов коммутатора 2, первая группа информационных входов коммутатора 9; 43 - вход разрешения счета счетчика 4, первый выход блока 5; 44 - вход управления передачей информации коммутатора 3, четвертый выход блока 5; 45 - вход запрета коммутаторов 1, 2, 3, второй выход блока 5; 46 - вход управления передачей информации коммутаторов 1, 2, 3, третий выход блока 5; 47 - вторая группа тактовых входов устройства; 48 - вторая группа тактовых входов блока 5; 49 - вход запуска устройства и блока 5; 50 - группа входов задания начальных условий устройства и блока 5; 51 - первая группа тактовых входов устройства и блока 5; 52 - группа тактовых входов блока 14, соответствующие тактовые входы группы входов 47; 53 - группа тактовых входов счетчика 4, регистра 10, узла 13; 54 - группа тактовых входов коммутаторов 1, 2, 3; 55 - группа выходов блока 7, группа информационных входов/выходов коммутатора 2; 56 - узел внутреннего управления блока 5; 57 - узел управления внешним обменом блока 5; 58 - узел сравнения блока 5; 59 - узел формирования адресных сигналов блока 5; 60 - первая группа тактовых входов узла 56 (тактовых сигналов > Т3БОВ, > Т4БОВ), соответствующие входы группы входов 51; 61 - группа тактовых входов узла 58 (тактовых сигналов > СИ2-БОВ, > СИ4-БОВ), соответствующие входы группы входов 48; 62 - вторая группа тактовых входов узла 56 (тактовых сигналов > СИ4-БОВ, > СИ6-БОВ), соответствующие входы группы входов 48; 63 - вторая группа тактовых входов узла 57, (тактовых сигналов > С1БОВД, > С2БОВД, > ТИ2-СИ2, > ТИ3-С2), соответствующие входы группы входов 48; 64 - первая группа тактовых входов узла 57 (тактовых сигналов > ТТ2-С1, > ТТ4-С2, > РТИ1П1, > ТТ5-С1, РТИ2В, > Т5БОВ), соответствующие входы группы выходов 51; 65 - группа тактовых входов узла 59 (тактовых сигналов > СИ1-БОВ, > СИ6-БОВ), соответствующие входы группы входов 48; 66 - группа адресных выходов узла 57, первая группа входов узла 58, вторая группа входов которого соединена с группой адресных выходов узла 79 и с группой адресных выходов 41; 67, 68, 69, 80 - триггеры в блоке 14; 70, 75, 76 - элементы И-НЕ в блоке 14; 71, 73, 74, 77, 81 - элементы И-НЕ в блоке 14; 72 - элемент НЕ в блоке 14; 78 - элемент И в блоке 14; 79 - элемент 3И-ИЛИ-НЕ в блоке 14; 82 - вход синхронизации (соответствующий сигналу > СИ3-БОВ) группы входов 52; 83 - вход синхронизации (соответствующий сигналу > СИ4-БОВ) группы входов 52; 84, 85, 86 - инверсные выходы элементов соответственно 70, 75, 76; 87 - инверсный выход элемента 79; 88 - инверсный выход триггера 80; 89 - прямой выход триггера 80, соответствующий разряд выхода 19; 90 - выход элемента 81, соответствующий разряд выхода 19; 91 - элемент И-НЕ в узле 13; 92 - элемент И-НЕ в узле 13; 93, 94 - триггеры в узле 13; 95 - элемент И в узле 13; 96 - элемент И-НЕ в узле 13; 97 - элемент И-НЕ в узле 13; 98, 99 - элементы И в блоке 11; 100, 101 - элементы И в блоке 11; 102- узел формирования сигналов четности в блоке 12; 103 - выход предсказанных сигналов четности байтов узла 102; 104, 105 - коммутатор в блоке 12. Идентификаторы сигналов, приведенные над соответствующими связями на фиг. 2-4 соответствуют принятым идентификаторам (обозначениям) этих же сигналов (и связей) в документе [3]. Цифры около групп входов и выходов на фиг. 5 обозначают номера разрядов или входов и выходов. Двунаправленные коммутаторы 1, 2 и коммутатор 3 предназначены для подключения устройства к общей магистрали центрального процессора и организации обмена информацией с центральным процессором. По структуре и функционированию коммутаторы 1, 2, 3 идентичны одноименным коммутатором прототипа и могут быть построены на микросхемах типа КМ500РС3 или КС1543ИР1. Коммутаторы 1, 2, 3 функционируют следующим образом. При установке на входе 45 логического нуля (> ЕРД=0) обеспечивается запрет записи информации с любой группы входов/выходов коммутаторов во внутренний регистр. При установке на входе 45 логической единицы (> ЕРД=1) обеспечивается запись информации во внутренний регистр коммутаторов 1, 2, 3 с первой или второй группы информационных входов/выходов коммутаторов (в зависимости от управляющих сигналов на входе 46, 44) под действием тактовых импульсов на тактовых входах 54. Группа 54 тактовых входов состоит из двух тактовых входов, на первый из которых подается тактовый сигнал > С1БОВ, фиксирующий входную информацию, а второй - > сигнал С2БОВ, фиксирующий информацию для передачи на выходы. При формировании сигналов > DЕ1РД=0 и > DЕ3РД=0 на разрядах входов 44, 46 передача информации на входы/выходы с выходов внутреннего регистра блокируется. При формировании сигналов > DЕ1РД=1, > DЕ3РД=1 обеспечивается передача информации со второй группы информационных входов/выходов и со входов 24 и 29 на информационные входы внутренних регистров для записи в регистры и передача информации с выходов внутренних регистров коммутаторов на выходы 23 коммутатора 3 и (при формировании сигнала > SРД=0 на соответствующем разряде выхода 46 (см. фиг. 2)) на первую группу информационных входов/выходов коммутаторов 1, 2. При формировании сигнала > SРД=1 (при сигнале > DЕ1РД=1) обеспечивается передача информации в обратном направлении. Передача информации в обратном направлении в коммутаторе 3 не предусмотрена. Счетчик 4 предназначен для промежуточного запоминания значений часов, компаратора, таймера процессора и для модификации (счета) указанных значений. Счетчик 4 может быть реализован, например, на микросхемах типа КМ500СТ2 или КС1543ИЕ1. Счетчик 4 функционирует следующим образом. При логическом нуле (> Е2С4=0) на входе 43 счетчик 4 устанавливается в режим записи кода с информационной группы входов под действием тактовых сигналов на входах 53. При логической единице (> Е2С4=1) на входе 43 счетчик 4 устанавливается в режим счета при логической единице на входе 18 или в режим хранения при логическом нуле на входе 18. Описанные режимы устанавливаются при логической единице на входе 17. При логическом нуле на входе 17 счетчик 4 "сбрасывается" под действием тактовых сигналов на входах 53. Блок 5 управления (фиг. 2) предназначен для формирования управляющих сигналов для всех узлов и блоков устройства, для формирования адресов часов, коммутатора и таймера процессора в требуемый временной промежуток времени и для формирования сигнала конца операции внешнего обмена на выходе 26. Структурная схема блока 5 изображена на фиг. 2. Блок 5 содержит узел 56 внутреннего управления, узел 57 управления внешним обменом, узел 58 сравнения, узел 59 формирования адресных сигналов. Структурная схема блока 5 отличается от структурной схемы блока управления прототипа наличием дополнительного выхода 20, на разрядах которого формируются сигналы > РКМ1, > 3ПБОВ, > СПАДР2, РТП, > Р4С2, формирование которых уже предусмотрено в блоке управления прототипа. В связи с тем, что изменения структуры блока 5 однозначно определяются наличием признака - выхода 20 и алгоритмом функционирования узла 13, авторы и заявитель считают нецелесообразным включать признаки блока управления в формулу изобретения. Моменты появления и назначения сигналов 3ПБОВ, СПАДР2, > Р4С2, > РКМ2, > РТП2, > СБРОС, РТП, > РКМ1, > УПР, УПР, > WRRАМД, > Е1РАМД, > АДР1, > АДР2, > ТСП, > СПАДР1 будет пояснено ниже и при описании функционирования устройства. Блок 6 сравнения предназначен для сравнения значений контрольных разрядов с группы выходов 38 регистра 10 и с группы выходов 36 для формирования сигналов ошибок на выходе 33. Блок 7 памяти информационных разрядов и блок 8 памяти контрольных разрядов предназначены для хранения кодов текущих значений часов (компаратора, таймера процессора) и контрольных кодов значений побайтных сигналов четности кодов текущих значений часов (компаратора, таймера процессора). Блоки 7, 8 функционируют следующим образом. При формировании сигнала > Е1РАМД=0 на соответствующем разряде входа 40 выходы блоков 7, 8 блокируются, а при формировании сигнала > Е1РАМД= 1 и сигнала > WRRАМД=0 на соответствующих разрядах входа 40 на выходы блоков 7, 8 считывается информация, хранимая в блоках по адресу, код которого установлен на входах 41. При формировании сигналов > Е1РАМД=1 и > WRRАМД=1 осуществляется операция записи в блоках 7, 8 по адресу, код которого установлен на входах 41. Коммутатор 9 предназначен для передачи контрольных кодов сигналов четности с группы выходов блока 8 (при сигналах > УПР=1, УПР=0 на соответствующих разрядах входа 39) или с группы выходов 35 (при сигналах > УПР=0, УПР=1). Регистр 10 предназначен для временного хранения контрольных кодов сигналов четности, передаваемых с выходов блока 8 или выходов 35 блока 12. Блок 11 предсказания переносов (фиг. 5) предназначен для формирования сигналов побайтных предсказанных переносов на выходах 32, предсказанного сигнала переполнения на выходе 34. Блок 11 может быть построен на элементах И 98, 99, 100, 101. При логическом нуле на входе 18 блока 11 на всех выходах 32, 34 устанавливается логический нуль (т.е. формирование переносов блокируется). При логической единице на входе 18 блока 11 обеспечивается формирование сигналов переносов в соответствии с алгоритмом, задаваемом функциональной схемой блока 11 на фиг. 5. Структура и функционирование блока 11 идентичны структуре и функционированию одноименного блока прототипа с тем отличием, что количество выходов в группе выходов 32 равно двум (вместо шести) и введен управляющий вход 18. Блок 12 предсказания четности байтов (фиг. 5) предназначен для формирования побайтных сигналов четности (на выходах 36) для кода, установленного на входе 31 и предсказанных побайтных сигналов четности (на выходах 35) для кода, установленного на входе 31 после его модификации. Блок 12 содержит узел 102 формирования сигналов четностей, коммутаторы 104, 105. На выходе 36 формируются побайтные сигналы четностей для кода, установленного на входе 31. На выходах 103 формируются предсказанные сигналы четности для каждого байта кода, установленного на входе 31, т.е. предполагается, что к значению кода каждого байта (в младший разряд байта) прибавлена единица и для полученного кода - суммы формируется предсказанный сигнал четности на соответствующем выходе 103. Узел 102 может быть построен на элементах ПЗУ соответствующим образом закодированных (как в прототипе). В зависимости от наличия или отсутствия переноса в байт кода на соответствующий выход 35 передается сигнал либо с соответствующего выхода 103, либо с соответствующего выхода 36. При логическом нуле на входе 18 на соответствующий выход группы выходов 35 всегда передается сигнал с соответствующего выхода группы выходов 36. При логической единице на входе 18 на соответствующий выход группы выходов 35 всегда передается сигнал с соответствующего выхода группы выходов 103. Структура блока 12 отличается от структуры одноименного блока прототипа наличием дополнительного коммутатора 104 со связями. Так как изменения в структуре блоков 11, 12 обусловлены наличием признака - связи 18, то авторы считают нецелесообразным описывать структуру блоков 11 и 12 в формуле изобретения. Узел реконфигурации 13 предназначен для формирования управляющих сигналов, обеспечивающих автоматическое изменение режима функционирования устройства (реконфигурацию связей в устройстве) так, что устройство из режима "счета" (часов, компаратора, таймера процессора) переходит в режим "сохранения счета часов". Узел 13 (фиг. 4) может быть построен на элементах И-НЕ 91, 92, 96, 97, И 95, триггерах 93, 94. В исходном состоянии на разрядах 89, 90 входа 19 установлены логические нули, под действием которых триггеры 93, 94 удерживаются в "нулевом" состоянии, а на выходах 17, 18 - логические единицы. При установке на разряде 90 входа 19 логической единицы триггер 94 переходит в "единичное" состояние только при появлении сигналов > Р4С2=1, РТП=1, > РО=1 на соответствующих разрядах входа 20. При этом, при последующем появлении сигнала РТП=0 триггер 94 вновь переходит в "нулевое" состояние и сохраняет его до повторного появления сигнала > Р4С2=1, > РО=1. В момент появления сигнала > Р4С2=1 на инверсном выходе элемента 96 устанавливается логический ноль, который удерживает логическую единицу на выходе 18 независимо от состояния разряда 89 входа 19. Логический нуль на выходе 18 устанавливается только при логической единице на разряде 89 входа 19, наличии сигнала > Р4С2=0 и "нулевом" состоянии триггера 94. Всякий раз при появлении сигналов > 3ПБОВ=1, > СПАДР2=1 триггеры 93, 94 устанавливаются в "нулевое" состояние. При этом при логической единице на разряде 89 и сигнале > РКМ1=1 на выходе 17 устанавливается логический нуль, а триггер 93 устанавливается в "единичное" состояние. Триггеры 93, 94 переключаются под действием синхросигналов > СИ3=1, > СИ4=1, формируемых последовательно на входах 82, 83 группы входов 53. На фиг. 4 буквами D, R, Е около входов триггеров 93, 94 (так же как и на фиг. 3 около входов триггеров 67, 68, 69, 80) обозначены соответственно информационный вход, вход сброса (при логическом нуле), вход запрета переключения (при логическом нуле). Буквами

ДКТ52 =

Старшие 32 разряда кода ДКТ52 представляют собой код ДКТ32, который хранится в ячейке ТД32 и модифицируется средствами процессора. Младшие 20 разрядов кода ДКТ20 представляют собой код ДКТ20, который хранится в памяти устройства и модифицируется в счетчике устройства. При использовании предлагаемого устройства предусматривается модификация (счет) кодов КЧС52, ДКК52, ДКТ52 путем прибавления в устройстве в младший разряд кодов КЧС20, ДКК20, ДКТ20 единицы каждую микросекунду. При этом, при появлении переноса из старшего разряда указанных кодов, осуществляется фиксация в устройстве, в динамическом коде состояния средств отсчета времени (ДКССОВ), хранимого в блоке состояния устройства, сигналов переполнения, появление которых вызывает формирование запросов на микропрограммное прерывание в процессоре. При обработке указанных запросов в процессор из устройства передается и анализируется ДКССОВ, а все биты ДКССОВ в устройстве обнуляются. По результатам анализа ДКСОВ в процессоре осуществляется прибавление возникшего переноса (логической единицы) в младший разряд соответствующего кода КЧС32, ДКК32, ДКТ32 (т.е. осуществляется модификация кодов КЧС32, ДКК32, ДКТ32 при появлении переноса из старшего разряда кодов соответственно КЧС20, ДКК20, ДКТ20). При этом, при модификации кодов ДКК32, ДКТ32 осуществляется фиксация сигналов переполнения (путем установки логической единицы в соответствующих битах СКС8), появление которых означает формирование запросов на внешнее прерывание в процессор соответственно от компаратора и таймера процессора. Обработка внешнего прерывания осуществляется в соответствии с приоритетами, предусматриваемыми известными принципами. После обработки внешнего прерывания от компаратора или таймера процессора в соответствующем бите кода СКС8 устанавливается логический нуль. При выполнении в процессоре команды "чтение значения компаратора" значение компаратора считывается из ячейки КС52. При выполнении в процессоре команды "чтение значения часов" или "чтение значения таймера процессора" осуществляется чтение 20-ти младших разрядов кода КЧС52 или ДКТ52 из памяти устройства (т.е. читаются коды КЧС20 или ДКТ20) и 32 старшие разряды кодов КЧС52 или ДКТ52 из ячеек ЧС32 или ТД32 (т.е. читаются коды КЧС32 или ДКТ32). Затем в процессоре осуществляется склеивание 20-ти младших и 32-х старших разрядов кода КЧС52 или ДКТ52 в 52-х разрядный код. Для кода ДКТ52 осуществляют преобразование
СКТ52 =

При выполнении в процессоре команды "установка нового значения часов" соответствующим образом обновляется содержимое ячейки ЧС32. Младшие разряды (20) разрядов кода нового значения часов записываются в соответствующую ячейку памяти устройства. При выполнении в процессоре команды "установка нового значения компаратора" или команды "установка нового значения таймера процессора" в ячейку КС52 записывается новое значение кода СКК52, вычисляются коды ДКК52 и ДКТ52 по описанному выше алгоритму. Младшие разряды (20) разрядов кодов ДКК52 ДКТ52, т.е. коды ДКК20 и ДКТ20 записываются в соответствующие ячейки памяти устройства, а старшие разряды (32) разряда) - в ячейки КД32 и ТД32 области ОСОВ. Перед остановами процессора, задаваемыми или с пульта оператора, или при ошибках и отказах, или после выполнения процедур сброса, или в процессе покомандной работы (микропрограммно, а также перед процедурой "начальной загрузки" осуществляется чтение 20-ти младших бит таймера процессора (код ДКТ20) и часов (код КЧС20) из памяти устройства и запись их в ячейку соответственно ТД20 и ЧС20 области ОСОВ. При новом запуске процессора из состояния " стоп" код из ячейки ТД20 области ОСОВ (микропрограммно) записывается в соответствующую ячейку памяти устройства. После этого осуществляется чтение кода ДКТ20 из памяти устройства вместе с динамическим кодом состояния средств отсчета времени (ДКССОВ). При этом, если в коде ДКССОВ зафиксирован сигнал переноса из старшего разряда ДКТ20, то он игнорируется. Таким образом осуществляется останов таймера процессора в момент останова процессора и запуске таймера процессора при запуске процессора. Предварительное запоминание кода КЧС20 в ячейку ЧС20 необходимо для восстановления таймера процессора после процедуры "начальной загрузки", что будет описано ниже. При выполнении процедуры "начальной загрузки", которая может осуществляться в течение времени большем 1 с, а также в связи с тем, что процессор может находиться в состоянии выполнения процедур сброса и последующего останова в течение времени, большем 1 с, а также в связи с остановами процессора, задаваемыми с пульта оператора или по команде от другого процессора на время, большее 1 с, в процессоре не представляется возможным своевременно (в течение 1 с - времени счета 220 мкс) модифицировать коды КЧС32, ДКК32, ДКТ32 (так как за 1 с завершается счет в 20-ти младших разрядах часов). По указанной причине до настоящего времени в универсальных ЭВМ часы (все 52 разряда) реализовывались аппаратно (в виде 52-разрядного счетчика) и независимо от процессора, что оправдывалось необходимостью сохранить счет и точность счета часов (т.е. предотвратить потерю отсчета времени при остановах процессора и при выполнении в процессоре процедур "начальной загрузки". В результате для построения средств отсчета времени требовались большие аппаратные затраты. Для предотвращения потери отсчета времени в указанных случаях в предлагаемом устройстве предусмотрены специальные аппаратные средства, с помощью которых при аппаратной реализации всего лишь 20 младших разрядов кодов значений часов, компаратора, таймера процессора обеспечивается сохранение (т. е. предотвращается потеря) отсчета всех средств отсчета времени, в том числе и часов при остановках процессора или при выполнении процедур начальной загрузки в течение любого промежутка времени до 220 с. Это позволяет значительно сократить аппаратные затраты на построение средств отсчета времени за счет использования резервных ресурсов памяти процессора (двух 52-разрядных ячеек памяти). Предотвращение потери отсчета времени часами и интервалов времени таймером процессора при выполнении процедур начальной загрузки, сбросах и остановах в процессоре достигается благодаря фиксации состояния устройства (состояния реконфигурации), когда появление последующего сигнала переноса из 32 разряда отдельно любого средства (часов, компаратора, таймера процессора) (т.е. сигнала переноса из нулевого разряда отдельно любого из кодов КЧС20, ДКК20, ДКТ20) произошло в момент, когда еще не сброшен (в коде ДКССОВ в устройстве) предыдущий сигнал переноса из 32-го разряда этого же средства (что означает, что в течение 1 с процессор не смог "обслужить" устройство и, следовательно, он (процессор) находится либо в состоянии "стоп", либо в нем выполняется процедура начальной загрузки). При этом автоматически осуществляется реконфигурация (с помощью узла реконфигурации) связей в устройстве так, что счет младших разрядов кода ДКТ20 в устройстве прекращается и обеспечивается сохранение текущего (сформированного) значения кода ДКТ20 в устройстве без изменений. Биты 20 младших разрядов компаратора (код ДКК20) в устройстве обнуляются, и вместо младших разрядов кода ДКК20 обеспечивается формирование 20 старших разрядов (разрядов 12/31) часов (кода КЧС20Р) путем подсчета в устройстве сигналов переноса из нулевого разряда кода КЧС20, появляющихся в процессе модификации кода КЧС20. При этом соответствующий бит реконфигурации в коде состояния ДКССОВ устанавливается равным логической единице, под действием которой формируется запрос (сигнал) на микропрограммное прерывание для "обслуживания" устройства. После того, как процессор закончит выполнение процедур "начальной загрузки" или выйдет из состояния "стоп", осуществляется чтение из соответствующего регистра блока состояния устройства, передача в процессор и анализ кода ДКССОВ. Наличие логической единицы в бите реконфигурации кода ДКССОВ означает, что средства отсчета времени (часы, компаратор, таймер процессора) необходимо восстановить. Для этого процессор "осуществляет" чтение кода КЧС20 из соответствующей ячейки памяти устройства и кода КЧС20Р из ячейки памяти устройства, в которой раньше хранился код ДКК20. Код КЧС20Р и считанный код КЧС20 склеиваются в код КЧС40 и записываются на временное хранение в ячейку ДКК52 ОСОВ. Далее в ячейку памяти устройства, в которой хранится код ДКК20 (КЧС20Р) записывается нулевой код. При этом состояние реконфигурации устройства сбрасывается. Далее, если восстановление средств отсчета времени осуществляется после выполнения процедуры "начальной загрузки", то от значения кода КЧС40 вычитается значение кода КЧС20, хранимого в ячейке КЧС20 области ОСОВ и значение кода полученной разности прибавляется к коду ДКТ52, считанному из ячеек ТД32 и ТД20 ОСОВ. Если при этом возникает перенос из нулевого разряда ДКТ52, то формируется (путем установки логической единицы в соответствующем бите (разряде) кода СКС8)запрос на внешнее прерывание от таймера процессора. Если перенос из нулевого разряда ДКТ52 не возникает, то 20 младших разрядов кода ДКТ52 записываются в соответствующую ячейку памяти устройства в качестве кода ДКТ20, а 32 старших разряда кода ДКТ52 записываются в ячейку ТД32 в качестве кода ДКТ32. Таким образом, таймер процессора восстановлен после процедуры начальной загрузки в процессоре. Для восстановления часов к коду КЧС32 из ячейки ЧС32 прибавляется код КЧС20Р и полученный код суммы записывается в ячейку ЧС32. Таким образом часы восстановлены, так как код КЧС20 продолжает модифицироваться в устройстве. Значение кода ДКТ20 после состояния "стоп" процессора восстанавливается (как было описано) благодаря использованию ячейки ТД20 ОСОВ, в которую предварительно перед остановом процессора заносится код ДКТ20. По восстановленному коду значения часов и сохраненному коду КЧС52 заново формируется код ДКК52 (и, следовательно, коды ДКК32 и ДКК20) как это было описано выше. Таким образом, с помощью предложенного устройства обеспечивается решение в процессоре ЭВМ всех задач, решаемых прототипом. При этом в предложенном устройстве вместо 52-разрядных первого двунаправленного коммутатора, счетчика и блока памяти информационных разрядов используется всего лишь 20-разрядные первый двунаправленный коммутатор, счетчик и блок памяти информационных разрядов, благодаря чему обеспечивается сокращение аппаратных затрат на два ТЭЗа. Следовательно, достигается поставленная цель - сокращение аппаратных затрат.
Формула изобретения
РИСУНКИ
Рисунок 1, Рисунок 2, Рисунок 3, Рисунок 4, Рисунок 5