RU2615326C2 - Способ синхронизации времени в процессорах и устройствах вычислительной машины - Google Patents

Способ синхронизации времени в процессорах и устройствах вычислительной машины Download PDF

Info

Publication number
RU2615326C2
RU2615326C2 RU2015104938A RU2015104938A RU2615326C2 RU 2615326 C2 RU2615326 C2 RU 2615326C2 RU 2015104938 A RU2015104938 A RU 2015104938A RU 2015104938 A RU2015104938 A RU 2015104938A RU 2615326 C2 RU2615326 C2 RU 2615326C2
Authority
RU
Russia
Prior art keywords
register
time
clock
value
precision
Prior art date
Application number
RU2015104938A
Other languages
English (en)
Other versions
RU2015104938A (ru
Inventor
Леонид Иванович Ананьев
Федор Анатольевич Груздов
Original Assignee
Леонид Иванович Ананьев
Федор Анатольевич Груздов
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Леонид Иванович Ананьев, Федор Анатольевич Груздов filed Critical Леонид Иванович Ананьев
Priority to RU2015104938A priority Critical patent/RU2615326C2/ru
Publication of RU2015104938A publication Critical patent/RU2015104938A/ru
Application granted granted Critical
Publication of RU2615326C2 publication Critical patent/RU2615326C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Electric Clocks (AREA)

Abstract

Изобретение относится к цифровой обработке данных, в частности к синхронизации часов ЭВМ. Техническим результатом является повышение точности синхронизации часов процессоров и устройств ввода-вывода ЭВМ и сокращение продолжительности и ошибки чтения времени из этих часов. Указанный результат достигается за счет того, что в каждом процессоре и в каждом устройстве ввода-вывода, использующем точное время, устанавливают свои локальные часы. Периодический импульс S синхронизации времени от внешнего или единого внутреннего источника посылают во все локальные часы. По приходу импульса S в локальных часах инкрементируют регистр RH, регистр RL переписывают в регистр RP и обнуляют регистр RL. Регистр RL постоянно инкрементируют от любого удобного тактового генератора. Синхронизованное время, выраженное в периодах импульса S, вычисляют по формуле RH+RL/RP. Сведение фаз локальных часов выполняют при их инициализации. Для этого записывают требуемое значение в регистр RH, когда значение регистра RL достаточно отличатся от 0 и от значения регистра RP. 4 з.п. ф-лы, 1 ил.

Description

ОБЛАСТЬ ТЕХНИКИ
Изобретение относится к цифровой обработке данных, в частности к синхронизации часов ЭВМ.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Требования к точности синхронизации времени сейчас повысились и составляют десятки или сотни наносекунд. Это обеспечивается доступностью спутниковых систем навигации, атомных часов и устройств с поддержкой стандарта Presicion Time Protocol IEEE 1588. С другой стороны, повышение производительности ЭВМ достигалось за счет асинхронной работы устройств ЭВМ, буферов, очередей обслуживания. Это усугубляет проблемы в синхронизации времени между устройствами машины.
В однопроцессорных ЭВМ для подсчета времени использовался счетчик тактов процессора. В процессорах х86 это был Time Stamp Clock (TSC). При появлении процессоров с частотой, изменяемой для экономии электричества, было предложено использовать Power Management Timer (РМТ). Но он имел низкую точность, долгое время чтения и был не доступен устройствам ввода-вывода (УВВ).
При появлении многопроцессорных систем делалась попытка синхронизовать счетчики времени всех процессоров перекрестной синхронизацией (US 3932847 Time-of-day clock synchronization among multiple processing units), но это не прижилось из-за большого количества сложных связей, и вернулись к РМТ и подобным счетчикам времени.
В патенте от Hewlett-Packard (US 5832254) «Scalable resynchronization of remote counters» описывается синхронизация времени в системе SPP2000, которая состоит из 7 плоскостей по 16 процессоров. Один из процессоров раздает время из своего счетчика ТОС через «processor agent chip» (РАС) своим соседям, а через memory access controllers (MAC) и через toroidal access chip (TAC) раздается и процессорам на других печатных платах. Очевидно, что модуль MAC может быть занят передачей других данных в(из) память(-и). Подобные недетерминированные задержки снижают точность синхронизации. Основным недостатком такой схемы является то, что в результате всей этой сложности всего лишь вырабатывается прерывание, чтобы ОС занялась выравниванием счетчиков времени на процессоре.
В патенте (US 20140136877) "GENERATION AND DISTRIBUTION OF A SYNCHRONIZED TIME SOURCE" описывают способ синхронизации времени процессора по NTP (Network Time Protocol). Описываемый метод хорош тем, что он охватывает не только процессоры, но и УВВ. Недостаток в том, что он жестко ориентирован на NTP и предусматривает регулировку только частоты (скорости хода часов), но не фазы (смещения) времени. Собственно схема и предназначена только для подсчета интервалов времени, а не для получения и хранения астрономического времени.
Компания Alcatel запатентовала систему (US 6760764) «Real time stamp distribution», в которой real time stamp (RTS) делится на порцию низкой точности, средней и высокой точности. Разделение на низкую и высокую точность - это хорошее решение, но дальше не удачное решение по передаче времени средней точности IRTS (intermediate portion of the real time stamp) посредством широтно-импульсной модуляции. Много аппаратуры используется и не эффективно. Положительно также то, что регистр высокой точности перезапускается при каждом обновлении даты и времени и таким образом синхронизуется. Но синхронизовать регистр высокой точности надо бы не только при каждой установке даты, но чаще, чем устанавливается дата – периодически, чтобы компенсировать дрейф частоты генератора, используемого для регистра высокой точности.
Патент (US 20030065963) «Synchronizing multiple time stamps distributed within a computer system with main time of day register» предлагает ввести специальную шину STI для передачи времени между процессорами. А каждые 128 мкс выдавать импульс точной синхронизации другим процессорам. Время вычисляется по формуле
TOD (microseconds)=(TIME STAMP+T COUNT)+(TS LOW)+(FTP)-128
Недостаток этого метода в том, что
- нужна специальная шина Self Timed Interface;
- не учитывается работа со многими процессорами;
- периодический импульс синхронизации должен быть достаточно частым, чтобы дрейф локального генератора действительно можно было не учитывать.
В патенте CN 1749916 «Method for realizing precisino time alignment by computer inserting GPS second pulse signal» описывается способ, опирающийся на то, что ежесекундный сигнал подается на один из контактов tty (СОМ) порта. Известно, что такой способ очень не точен из-за задержек в обработке прерываний. Но ориентация именно на ежесекундный сигнал - это удачное решение.
В патенте CN 1798225 «Equipment and method for raising precision of time inside system by using negative feedback mode» подсчитывают количество импульсов генераторов каждого процессора за статистический период. В следующий период разницу отнимают рассредоточено в следующий статистический период. Таким образом, выравнивают скорость хода часов. Относительное смещение часов выравнивается по-видимому только программно, а это снижает точность.
При появлении УВВ (Ethernet-контроллеров) с поддержкой Presicion Time Protocol IEEE 1588, например Ethernet-контроллеров Intel 82576, хранителем точного времени в ЭВМ стал этот контроллер. Но время доступа к контроллеру из процессора было недетерминированным из-за возможных ожиданий при передаче данных по шине PCI.
Известно, что приемники GPS/ГЛОНАСС и многие атомные часы выдают ежесекундный импульс точного времени PPS (Pulse per second). Ethernet-контроллеры с поддержкой стандарта IEEE 1588 могут быть настроены так, чтобы получать или выдавать ежесекундный импульс от своих внутренних часов, которые получают точное время по Ethernet. Почти все используемые в ЭВМ микросхемы RTC (Real Time Clock), которые служат для хранения времени и при выключенной машине, тоже способны выдавать ежесекундный сигнал. Его можно использовать как единый источник импульсов для синхронизации хода часов всех процессоров и УВВ в данной ЭВМ.
ПЕРЕЧЕНЬ ФИГУР
Изобретение, описанное здесь, проиллюстрировано посредством примера, а не посредством ограничения, на приложенных чертежах.
Рис. 1 - иллюстрация процесса синхронизации счетчика времени по ежесекундным сигналам.
ПОДРОБНОЕ ОПИСАНИЕ
Предлагаемый способ синхронизации времени между устройствами ЭВМ позволяет передавать время по имеющимся шинам передачи данных и выполнять точную синхронизацию времени используя импульсы точного времени. Ниже приведены примеры реализации предлагаемого способа синхронизации при использовании разных источников точного времени.
Если ЭВМ получает ежесекундные сигналы точного времени, например, от атомных часов или от спутникового приемника GPS или ГЛОНАСС, то этот сигнал разумно подключить к каждому процессору и к тем устройствам ввода-вывода (УВВ), которым нужно точное время для своей работы. Таким устройством, например, является Ethernet-контроллер с поддержкой РТР IEEE 1588. Кроме ежесекундного сигнала указанные источники точного времени поставляют дату и время в байтовом формате по каналу RS-232 или подобному каналу. Разброс задержек при приеме данных по таким каналам значительно больше сотен наносекунд из-за задержек при обработке прерываний и задержек в шинах передачи данных. Но с точностью до секунды вполне надежно можно установить время в регистре низкой точности. Надо только позаботиться о том, чтобы эта установка регистра низкой точности не совпала с приходом импульса точного времени. Это реально выполнить, потому что известно, когда приходил предыдущий импульс и период тоже известен.
Следует отметить, что если частота процессора изменяется с целью экономии электричества, то регистр низкой точности следует инкрементировать от источника неизменяемой частоты.
Если ЭВМ является клиентом, получающим время по протоколу IEEE 1588, и если Ethernet-контроллер имеет возможность выдачи ежесекундных сигналов, этот сигнал используется для выдачи импульсов точного времени для процессоров и других УВВ данной ЭВМ.
Если ЭВМ не получает внешних импульсов синхронизации и не имеет сетевого контроллера, способного выдавать такие импульсы, то такие импульсы можно получить от RTC (Real Time Clock) или подобного источника единого для всех устройств данной ЭВМ. Это обеспечит синхронный ход часов во всех процессорах и УВВ при коротком и детерминированном времени доступа к часам.
Счетчик времени в процессоре или в устройстве ввода-вывода (УВВ) состоит из двух регистров (рис. 1). Регистр низкой точности ТН (1) инкрементируется при поступлении каждого импульса синхронизации времени S. Регистр высокой точности TL (2) инкрементируется от тактового генератора процессора или УВВ. При поступлении импульса S значение TL (2) сохраняется в регистре TP (3) и регистр TL (2) обнуляется. Время, выраженное в периодах импульса S, вычисляется по формуле TH+TL/TP.
Погрешность счета времени определяется тем, на сколько изменится частота тактового генератора за период S. Частота кварцевого генератора, обычно используемого в ЭВМ, зависит от его температуры. Если импульс S ежесекундный, а температура кварца изменяется на 1 градус в секунду, то погрешность будет равна 10 наносекунд. Чем меньше период S, тем выше точность хода времени по регистру TL (2).
Разные процессоры и разные УВВ могут оказаться на разном расстоянии от источника импульсов точного времени. Как правило, это можно и проигнорировать в рамках одой ЭВМ, поскольку задержка составляет 5 нс/м. Перед счетчиками времени могут быть усилители-формирователи импульса S, специфические для данного процессора или УВВ. Если указанные задержки соизмеримы с требуемой точностью синхронизации времени, то следует использовать регистр коррекции ТС, в который при инициализации системы записывается величина задержки импульса S. Тогда время вычисляется по формуле TH+TL/TP-TC.
Поскольку скорость продвижения регистров ТН (1) одинакова во всех процессорах и устройствах, то только один раз при инициализации надо установить значение, согласованное с внешними часами точного времени. Для того чтобы изменение ТН (1) не случилось в момент прихода импульса S, программа инициализации выполняет это изменение в период времени, достаточно далекий от момента поступления импульса S, например в момент, когда TL (2) равно ТР/2. Из этого следует, что период S должен быть больше, чем разброс продолжительности операции записи в регистр ТН. Выбрать период равным одной секунде и удобно, и целесообразно с точки зрения получения точности более высокой чем 100 нс. Ежесекундный импульс заведомо удовлетворяет обоим требованиям к периоду S. Точность 10 наносекунд в десять раз меньше того, что обеспечивают устройства, поддерживающие стандарт Precision Time Protocol IEEE 1588.
При вычислении текущего времени по формуле TH+TL/TP выполняется деление на переменную величину TP (3). Такое деление можно заменить делением на константу или даже сдвигом, если есть возможность не изменять частоту тактового генератора, которая часто выбирается для целей стабилизации функционирования процессора, например. Тогда разницу между текущим TP и целевым (константным) ТРС используют для коррекции скорости приращения TL, используя, например, способ, описанный в патенте (JP 2006047101) TIMEPIECE PRECISION CORRECTION DEVICE.

Claims (5)

1. Способ синхронизации времени в ЭВМ, содержащей один или несколько процессоров и устройств ввода-вывода, использующих точное время в своей работе, шины передачи данных и имеющей единый внутренний или внешний источник периодических импульсов точного времени, отличающийся тем, что в процессорах и указанных устройствах добавляют локальные часы, работающие на тактовой или другой постоянной частоте данного процессора или устройства; при поступлении каждого периодического импульса точного времени инкрементируют регистр низкой точности локальных часов, а последнее значение регистра высокой точности используют для коррекции скорости хода локальных часов и обнуляют регистр высокой точности; установку времени в локальных часах выполняют только в регистре низкой точности и только в период между указанными импульсами.
2. Способ по п. 1, отличающийся тем, что регистр высокой точности инкрементируется тактовыми импульсами локальных часов и при поступлении каждого периодического импульса точного времени регистр высокой точности переписывают в регистр последнего значения регистра высокой точности; текущее время получают как сумму регистра низкой точности и часного от деления регистра высокой точности на регистр последнего значения регистра высокой точности.
3. Способ по п. 2, отличающийся тем, что добавляют регистры верхней и нижней допустимой границы значения регистра высокой точности и при выходе значения регистра высокой точности за верхнюю границу или если значение регистра высокой точности меньше нижней границы в момент поступления периодического импульса точного времени, то локальный счетчик времени переводят в режим не зависимый от периодических импульсов точного времени, при котором инкрементация регистра низкой точности и обнуление регистра высокой точности выполняют по достижению регистром высокой точности значения, равного значению регистра последнего значения высокой точности.
4. Способ по п. 1, отличающийся тем, что при поступлении каждого периодического импульса точного времени регистр счетчика тактов локальных часов переписывают в регистр последнего значения счетчика тактов и обнуляют; регистр высокой точности также обнуляют при поступлении каждого периодического импульса точного времени, и инкрементируют тактовыми импульсами, и дополнительно инкрементируют величиной разницы между величиной регистра последнего значения счетчика тактов и константным целевым значением счетчика тактов, причем добавление разницы равномерно распределяют в течение интервала между периодическими импульсами точного времени; текущее время получают как сумму регистра низкой точности и часного от деления регистра высокой точности на константную величину целевого значения счетчика тактов.
5. Способ по п. 4, отличающийся тем, что константную величину целевого значения счетчика тактов выбирают равной одной из степеней числа 2; текущее время получают как сумму регистра высокой точности и регистра низкой точности, сдвинутой влево на количество разрядов, равное выбранной степени числа 2.
RU2015104938A 2015-02-13 2015-02-13 Способ синхронизации времени в процессорах и устройствах вычислительной машины RU2615326C2 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2015104938A RU2615326C2 (ru) 2015-02-13 2015-02-13 Способ синхронизации времени в процессорах и устройствах вычислительной машины

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2015104938A RU2615326C2 (ru) 2015-02-13 2015-02-13 Способ синхронизации времени в процессорах и устройствах вычислительной машины

Publications (2)

Publication Number Publication Date
RU2015104938A RU2015104938A (ru) 2016-08-27
RU2615326C2 true RU2615326C2 (ru) 2017-04-04

Family

ID=56851901

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2015104938A RU2615326C2 (ru) 2015-02-13 2015-02-13 Способ синхронизации времени в процессорах и устройствах вычислительной машины

Country Status (1)

Country Link
RU (1) RU2615326C2 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2825812C1 (ru) * 2024-02-21 2024-08-30 Акционерное общество "МЦСТ" Способ синхронизации времени в процессорах и устройствах ввода-вывода вычислительной машины

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2637479C1 (ru) * 2016-11-16 2017-12-04 Леонид Иванович Ананьев Аналогово-цифровой преобразователь с регистрацией времени

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2146419C1 (ru) * 1997-08-02 2000-03-10 Самсунг Электроникс Ко., Лтд. Способ тактовой синхронизации и устройство синхронизации для осуществления способа в синхронной распределенной сетевой системе
US20030065963A1 (en) * 2001-09-21 2003-04-03 International Business Machines Corporation Synchronizing multiple time stamps distributed within a computer system
JP2006010638A (ja) * 2004-06-29 2006-01-12 Seiko Precision Inc 時刻データ取得装置、コンピュータプログラム及びサーバ
CN1798225A (zh) * 2004-12-30 2006-07-05 华为技术有限公司 一种利用负反馈方式提高系统内部时间精度的装置及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2146419C1 (ru) * 1997-08-02 2000-03-10 Самсунг Электроникс Ко., Лтд. Способ тактовой синхронизации и устройство синхронизации для осуществления способа в синхронной распределенной сетевой системе
US20030065963A1 (en) * 2001-09-21 2003-04-03 International Business Machines Corporation Synchronizing multiple time stamps distributed within a computer system
JP2006010638A (ja) * 2004-06-29 2006-01-12 Seiko Precision Inc 時刻データ取得装置、コンピュータプログラム及びサーバ
CN1798225A (zh) * 2004-12-30 2006-07-05 华为技术有限公司 一种利用负反馈方式提高系统内部时间精度的装置及方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2825812C1 (ru) * 2024-02-21 2024-08-30 Акционерное общество "МЦСТ" Способ синхронизации времени в процессорах и устройствах ввода-вывода вычислительной машины

Also Published As

Publication number Publication date
RU2015104938A (ru) 2016-08-27

Similar Documents

Publication Publication Date Title
US11863299B2 (en) Shared communication channel that interleaves 1 PPS signals and messaging
US8370675B2 (en) Precise clock synchronization
TWI780243B (zh) 時鐘同步裝置及時鐘同步方法
CN111669244A (zh) 在时钟域之间传输计数器值时保持正确的时间
CN112162591B (zh) 具有多个处理器的电子装置及其同步方法
TWI642277B (zh) 分頻時鐘校準
CN101834684A (zh) 分布式水声定位系统gps时钟同步方法
JP6036179B2 (ja) 通信装置及び同期方法
US11303376B2 (en) Information processing apparatus and time synchronization method
Horauer et al. PSynUTC-evaluation of a high-precision time synchronization prototype system for Ethernet LANs
CN109752738A (zh) 基于标准时标的imu与gnss数据同步方法
Wu et al. Synchronizing device clocks using IEEE 1588 and Blackfin embedded processors
RU2615326C2 (ru) Способ синхронизации времени в процессорах и устройствах вычислительной машины
CN110928177B (zh) 一种时钟同步系统及方法
CN116125782A (zh) 用于fpga的多通道纳秒级时间同步装置及使用方法
CN112291028B (zh) 一种时钟驯服方法、装置及应用该方法的高速相机
US9104364B2 (en) Generation and distribution of steered time interval pulse to a plurality of hardware components of the computing system
CN111970077B (zh) 探测器读取系统的高精度绝对时间和系统同步方法
KR102042423B1 (ko) 저궤도위성의 gps 동기화 방법
Chavan et al. Implementation of fpga-based network synchronization using ieee 1588 precision time protocol (ptp)
Wang et al. Design and implementation of IEEE 1588 high precision clock synchronization based on GPS time service
RU2825812C1 (ru) Способ синхронизации времени в процессорах и устройствах ввода-вывода вычислительной машины
US20230208543A1 (en) Synchronizing update of time of day counters using time stamp exchange over a control plane
Gregertsen Position paper: Clock support in Ada
CN114513273B (zh) Ptp芯片时钟模块的实现方法和装置

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20170302

NF4A Reinstatement of patent

Effective date: 20180305

MM4A The patent is invalid due to non-payment of fees

Effective date: 20190214