помечание событий меткой времени

Классы МПК:G06F1/14 устройства контроля времени, например в реальном масштабе времени
Автор(ы):
Патентообладатель(и):ИНТЕЛ КОРПОРЕЙШН (US)
Приоритеты:
подача заявки:
2004-07-28
публикация патента:

Изобретение относится к цифровой обработке сигналов, в частности к помечанию событий меткой времени. Техническим результатом является обеспечение возможности корректировки скорости обработки потока. Указанный результат достигается за счет того, что события потока помечают меткой времени. В одном варианте осуществления схема помечания меткой времени может обнаруживать события, представляющие интерес, например сигналы прерывания, сигналы разрешения конфликтов. В ответ на обнаружение такого события схема помечания меткой времени может сохранять метку времени для этого события. Запрашивающая сторона, например процессор, может запросить схему помечания меткой времени на предмет метки времени события. Запрашивающая сторона может после этого скорректировать скорость обработки, ассоциированную с генерацией таких событий, основываясь на извлеченных метках времени. 4 н. и 29 з.п. ф-лы, 4 ил. помечание событий меткой времени, патент № 2312386

помечание событий меткой времени, патент № 2312386 помечание событий меткой времени, патент № 2312386 помечание событий меткой времени, патент № 2312386 помечание событий меткой времени, патент № 2312386

Формула изобретения

1. Способ помечания событий меткой времени, реализуемый устройством, выполненным с возможностью обнаружения событий и помечания их меткой времени, и содержащий этапы, на которых обнаруживают событие, ассоциированное с потоком, подлежащим обработке, который включает в себя блоки данных и метки программной тактовой частоты, служащие показателем программной тактовой частоты, определяют, должно ли событие быть помечено меткой времени, помечают событие меткой времени упомянутого устройства в ответ на определение того, что данное событие должно быть помечено меткой времени, при этом метка времени служит показателем скорости обработки потока,

принимают запрос на метку времени события и

выводят метку времени для события в ответ на прием запроса.

2. Способ по п.1, в котором обнаружение события содержит этап, на котором обнаруживают предоставление доступа при разрешении конфликта.

3. Способ по п.1, в котором обнаружение события содержит этап, на котором обнаруживают прерывание.

4. Способ по п.1, дополнительно содержащий этап, на котором корректируют скорость обработки потока на основе метки времени для события и программной тактовой частоты потока.

5. Способ по п.1, дополнительно содержащий этап, на котором выполняют повторную дискретизацию потока на основе метки времени для события и программной тактовой частоты потока.

6. Устройство для помечания меткой времени событий, ассоциированных с потоком, содержащее счетчик для обновления значения подсчета в качестве реакции на работу опорного тактового генератора,

контроллер для обнаружения события, определения того, должно ли это событие быть помечено меткой времени, и обеспечения обнаруженного события меткой времени в ответ на определение того, что данное событие должно быть помечено меткой времени, причем метка времени служит показателем скорости обработки потока и основывается на значениях подсчета, и интерфейс для вывода метки времени обнаруженного события в ответ на прием запроса на обнаруженное событие.

7. Устройство по п.6, дополнительно содержащее хранилище событий для хранения меток времени обнаруженных событий и предоставления интерфейсу метки времени обнаруженного события, соответствующего запросу.

8. Устройство по п.6, дополнительно содержащее хранилище событий для хранения меток времени обнаруженных событий и предоставления интерфейсу метки времени обнаруженного события, соответствующего запросу, в ответ на прием идентификатора события для обнаруженного события от интерфейса.

9. Устройство по п.8, в котором интерфейс принимает идентификатор события для обнаруженного события в запросе на обнаруженное событие.

10. Устройство по п.6, дополнительно содержащее хранилище событий для хранения меток времени и ассоциированных идентификаторов события обнаруженных событий и предоставления интерфейсу метки времени обнаруженного события, соответствующего запросу, в ответ на прием идентификатора события для обнаруженного события от интерфейса.

11. Устройство по п.6, в котором контроллер игнорирует обнаруженное событие, не обеспечивая обнаруженное событие меткой времени, в ответ на определение того, что обнаруженное событие не относится к типу события, которое должно быть помечено меткой времени.

12. Устройство по п.11, в котором типы события, которые должны быть помечены меткой времени контроллером, являются программируемыми.

13. Устройство по п.6, которое встроено в набор микросхем, предназначенный для соединения процессора с другими компонентами вычислительного устройства.

14. Устройство по п.6, которое встроено в схему разрешения конфликтов, предназначенную для разрешения конфликтов при доступе к совместно используемому ресурсу на основе событий, связанных с разрешением конфликтов.

15. Устройство по п.6, которое встроено в контроллер прерываний, предназначенный для управления событиями, вызывающими прерывание.

16. Система для помечания меткой времени событий, ассоциированных с потоком, содержащая сетевой интерфейс для приема потока на программной тактовой частоте, содержащего блоки данных и метки программной тактовой частоты, служащие показателем программной тактовой частоты, опорный тактовый генератор для генерации сигнала опорного тактового генератора,

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

схему помечания меткой времени для обнаружения событий, служащих показателем скорости обработки, и сохранения меток времени для событий, которые основаны на сигнале опорного тактового генератора.

17. Система по п.16, в которой схема помечания меткой времени обнаруживает события, служащие показателем скорости обработки, основываясь на типах событий, запрограммированных в схеме помечания меткой времени.

18. Система по п.17, дополнительно содержащая процессор для запрашивания схемы помечания меткой времени на предмет меток времени для событий, служащих показателем скорости обработки.

19. Система по п.18, в которой процессор корректирует скорость обработки, основываясь на метках времени для событий и метках программной тактовой частоты потока.

20. Система по п.18, в которой процессор корректирует частоту сигнала опорного тактового генератора, основываясь на метках времени для событий и метках программной тактовой частоты потока.

21. Система по п.18, в которой процессор осуществляет повторную дискретизацию в отношении блоков данных, основываясь на метках времени для событий и метках программной тактовой частоты потока.

22. Система по п.18, в которой схема помечания меткой времени сохраняет метки времени обнаруженных событий и предоставляет процессору сохраненную метку времени для обнаруженного события в ответ на запрашивание процессором метки времени у схемы помечания меткой времени.

23. Система по п.18, в которой схема помечания меткой времени сохраняет метки времени обнаруженных событий и предоставляет процессору сохраненную метку времени обнаруженного события в ответ на предоставление процессором схеме помечания меткой времени идентификатора события для обнаруженного события.

24. Система по п.16, в которой схема помечания меткой времени сохраняет метку времени для обнаруженного события в ответ на определение того, что обнаруженное событие относится к типу события, которое должно быть помечено меткой времени.

25. Система по п.24, в которой схема помечания меткой времени игнорирует обнаруженное событие, не сохраняя метку времени для обнаруженного события, в ответ на определение того, что обнаруженное событие не относится к типу события, которое должно быть помечено меткой времени.

26. Система по п.18, дополнительно содержащая набор микросхем, который содержит схему помечания меткой времени и который соединяет процессор с сетевым интерфейсом и упомянутым устройством.

27. Система по п.16, дополнительно содержащая схему разрешения конфликтов, которая содержит схему помечания меткой времени и которая выполняет разрешение конфликтов запросов на совместно используемый ресурс, при этом схема помечания меткой времени сохраняет метки времени для обнаруженных сигналов разрешения конфликтов, соответствующих типу события.

28. Система по п.16, дополнительно содержащая контроллер прерываний, который содержит схему помечания меткой времени и который обрабатывает прерывания, принятые от упомянутого устройства, при этом схема помечания меткой времени сохраняет метки времени для обнаруженных сигналов прерывания, соответствующих типу события.

29. Машиночитаемый носитель, содержащий множество команд, которые, в ответ на выполнение их вычислительным устройством, предписывают вычислительному устройству выполнять помечание меткой времени событий, ассоциированных с потоком, посредством операций, включающих в себя запрашивание схемы помечания меткой времени на предмет метки времени обнаруженного события, которое служит показателем скорости обработки для потока,

определение скорости обработки для потока, основываясь на метке времени обнаруженного события, определение программной тактовой частоты для потока, основываясь на метке программной тактовой частоты потока, и

корректировку скорости обработки для потока в ответ на то, что скорость обработки и программная тактовая частота имеют определенное различие.

30. Машиночитаемый носитель по п.29, в котором упомянутые операции дополнительно содержат корректировку скорости обработки посредством повторной дискретизации в отношении блоков данных потока.

31. Машиночитаемый носитель по п.29, в котором упомянутые операции дополнительно содержат корректировку частоты опорного тактового генератора, который управляет скоростью обработки.

32. Машиночитаемый носитель по п.29, в котором упомянутые операции дополнительно содержат программирование схемы помечания меткой времени для помечания событий, вызывающих прерывание, которые служат показателем скорости обработки для потока.

33. Машиночитаемый носитель по п.29, в котором упомянутые операции дополнительно содержат программирование схемы помечания меткой времени для помечания связанных с разрешением конфликтов событий, которые служат показателем скорости обработки для потока.

Описание изобретения к патенту

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

Вычислительные устройства развиваются от вычислительных комплексов общего назначения, работающих не в реальном времени, в обрабатывающие устройства реального времени, содержащие главные процессоры, которые выполняют задачи цифровой обработки. В современных вычислительных устройствах комбинация таких факторов, как, например, кэш-память, отсроченная обработка прерываний и совместно используемые ресурсы, делают, в общем случае, время обработки в этих устройствах очень непостоянным и непредсказуемым. Например, первый проход через типичный цикл программы может занять в 10-50 раз больше времени, чем последующие проходы через тот же самый цикл программы из-за циклов заполнения кэша. Однако обычная обработка потока в типичном случае требует предсказуемых и, по существу, постоянных времен обработки для того, чтобы достигнуть высококачественных результатов.

ПЕРЕЧЕНЬ ФИГУР

Изобретение, описанное здесь, проиллюстрировано посредством примера, а не посредством ограничения, на приложенных чертежах. Для простоты и ясности иллюстрации элементы, проиллюстрированные на чертежах, не обязательно изображены в масштабе. Например, размеры некоторых элементов могут быть увеличены относительно других элементов для ясности. Дополнительно, когда это сочтено соответствующим, ссылочные обозначения повторены среди чертежей для указания соответствующих или аналогичных элементов.

Фиг.1 - иллюстрация варианта осуществления вычислительного устройства, содержащего схему помечания меткой времени.

Фиг.2 - иллюстрация варианта осуществления схемы помечания меткой времени по фиг.1.

Фиг.3 - иллюстрация варианта осуществления потоковой системы, которая включает сервер и вычислительные устройства по фиг.1.

Фиг.4 - иллюстрация варианта осуществления способа обработки потока, который может быть осуществлен потоковой системой по фиг.3.

ПОДРОБНОЕ ОПИСАНИЕ

Следующее описание описывает технологии обработки событий, которые могут быть полезны, среди других вещей, для обработки потоков, таких как, например, аудио потоки, видео потоки и/или потоки данных. В следующем ниже описании многочисленные специфические подробности, такие как реализация логики, коды операций, средства для задания операндов, реализации разделения/совместного использования/дублирования ресурсов, типы и взаимосвязи системных компонентов и варианты выбора логического разделения/интеграции, сформулированы для того, чтобы обеспечить более полное понимание данного изобретения. Специалист в данной области техники оценит, однако, что изобретение может быть реализовано на практике без таких специфических подробностей. В других примерах структуры управления, схемы уровня логических элементов и полные программные последовательности команд не показаны подробно для того, чтобы не затенять само изобретение. Таким образом, специалисты в данной области техники, используя включенные описания, будут способны реализовать соответствующие функциональные возможности без дополнительного экспериментирования.

Ссылки в описании изобретения на «один вариант осуществления», «вариант осуществления», «примерный вариант осуществления» и т.д. указывают, что описанный вариант осуществления может включать в себя специфический признак, структуру или характеристику, но любой вариант осуществления не обязательно может включать в себя такой специфический признак, структуру или характеристику. Кроме того, такие фразы не обязательно относятся к тому же самому варианту осуществления. Дополнительно, когда специфический признак, структура или характеристика описаны в связи с вариантом осуществления, утверждается, что знаний специалиста в данной области техники достаточно для задействования такого признака, структуры или характеристики вместе с другими вариантами осуществления, явно или неявно описанными.

Варианты осуществления изобретения могут быть реализованы с помощью аппаратных средств, встроенного программного обеспечения, программного обеспечения или любой их комбинации. Варианты осуществления изобретения могут быть также осуществлены как команды, сохраненные на машиночитаемом носителе, которые могут считываться и исполняться одним или более процессорами. Машиночитаемый носитель может включать в себя любой механизм для сохранения или передачи информации в форме, читаемой машиной (т.e. вычислительным устройством). Для примера, машиночитаемый носитель может включать в себя постоянное запоминающее устройство (ROM); оперативное запоминающее устройство (RAM); магнитные дисковые носители информации; оптические носители информации; устройства флэш-памяти; электрические, оптические, акустические или другие формы распространяемых сигналов (например, несущие волны, инфракрасные сигналы, цифровые сигналы и т.д.) и другие. Дополнительно встроенное программное обеспечение, программное обеспечение, процедуры, команды могут быть описаны здесь как исполняющие некоторые действия. Однако необходимо оценить, что такие описания даны просто для удобства и что такие действия фактически являются результатом того, что вычислительные устройства, процессоры, контроллеры или другие устройства исполняют встроенное программное обеспечение, программное обеспечение, процедуры, команды и т.д.

Вариант осуществления вычислительного устройства 100 содержит схему 102 помечания меткой времени, показанную на фиг.1. Как проиллюстрировано, вычислительное устройство 100 может содержать один или более процессоров 104. Процессоры 104 могут выполнять действия в ответ на исполняющиеся команды операционной системы 106, приложения 108, драйвера 110 устройства, встроенного программного обеспечения 112 базовой системы ввода-вывода (BIOS) и/или некоторого другого модуля программного обеспечения или встроенного программного обеспечения.

Вычислительное устройство 100 может дополнительно содержать набор 114 микросхем (чипсет), который соединен с процессорами 104 через шину процессора. Набор 114 микросхем может содержать один или более комплексов интегральных схем или микросхем, которые соединяют процессоры 104 с другими компонентами вычислительного устройства 100, такими как память 116. Память 116 может содержать устройства памяти (не показанные здесь), имеющие адресуемые ячейки хранения, которые могут считываться и/или записываться. Устройства памяти могут содержать один или более энергозависимых типов памяти, таких как, например, устройства RAM (оперативное запоминающее устройство), устройства SRAM (статической RAM), устройства DRAM (динамической RAM), устройства SDRAM (синхронной DRAM), устройства DDR (с удвоенной скоростью передачи данных) SDRAM и т.д. Устройства памяти могут дополнительно содержать один или более энергонезависимых типов памяти, таких как, например, устройства флэш-памяти, устройства ROM (постоянное запоминающее устройство), устройства PROM (программируемое постоянное запоминающее устройство), устройства EPROM (стираемое PROM), устройства EEPROM (электрически стираемое PROM), ферроэлектрические устройства памяти, устройства памяти с батарейным питанием и т.д.

Набор 114 микросхем может дополнительно соединять процессоры 104 со встроенным программным обеспечением 112 BIOS. Встроенное программное обеспечение BIOS может содержать процедуры, которые вычислительное устройство 100 может выполнять во время запуска системы для инициализации процессоров 104, набора 114 микросхем и других компонентов вычислительного устройства 100. Кроме того, встроенное программное обеспечение BIOS 112 может содержать процедуры или драйверы, которые вычислительное устройство 100 может выполнить для того, чтобы связаться с одним или более компонентами вычислительного устройства 100.

Набор 114 микросхем может дополнительно соединять процессоры 104 с одним или более мультимедийными устройствами 118, сетевыми интерфейсами 120 и/или другими устройствами 122 I/O (ввода/вывода) через одну или более шин 124. Мультимедийные устройства могут содержать устройства воспроизведения аудио/видео, устройства захвата аудио/видео, устройства передачи аудио/видео и т.д. Сетевые интерфейсы 120 могут содержать контроллеры LAN (локальной сети), модемы и/или беспроводные сетевые контроллеры, которые обеспечивают вычислительное устройство 100 линиями связи с другими вычислительными устройствами, серверами и/или другими устройствами с сетевой поддержкой. Дополнительно устройства 122 I/O могут содержать мыши, клавиатуры, видео контроллеры, накопители на жестких дисках, дисководы для гибких магнитных дисков и т.д.

Как изображено, шина 124 может совместно использоваться одним или более мультимедийными устройствами 118, сетевыми интерфейсами 120 и/или устройствами 122 I/O. Соответственно, вычислительное устройство 100 может содержать схему разрешения конфликтов для распределения доступа к совместно используемой шине 124. В одном варианте осуществления вычислительное устройство 100 может содержать арбитр (схему разрешения конфликтов) 126, который принимает сигналы запроса или сообщения от устройств 118, 120, 122, совместно использующих шину, и который генерирует сигналы предоставления или сообщения для того, чтобы предоставить одному из запрашивающих устройств 118, 120, 122 доступ или монопольное использование совместно используемой шины 124. Как изображено, набор 114 микросхем может содержать арбитр 126 для совместно используемой шины 124. Однако в других вариантах осуществления арбитр 126 может быть внешним по отношению к набору микросхем 114. Дополнительно вычислительное устройство 100 может быть реализовано без центрального арбитра 126 для совместно используемой шины 124. В таком варианте осуществления устройства 118, 120, 122 могут генерировать сигналы, которые приводят к вынесению между собой решения устройствами 118, 120, 122 для получения монопольного использования совместно используемой шины 124.

Дополнительно набор 114 микросхем может содержать контроллер 127 прерываний для приема событий, вызывающих прерывание (т.е. сигналов, сообщений) от устройств 118, 120, 122 и доставки событий, вызывающих прерывание, процессору 104 для обработки. В частности, контроллер 127 прерываний может обнаружить возникновение одного или более событий, вызывающих прерывание, и может доставить обнаруженные события, вызывающие прерывание, процессору 104 в порядке, который основан на приоритете, связанном с каждым из обнаруженных событий, вызывающих прерывание.

Обратимся теперь к фиг.1 и 2, на которых набор 114 микросхем может дополнительно содержать схему 102 помечания меткой времени события; однако в других вариантах осуществления схема помечания меткой времени может быть включена в арбитр 126, в контроллер 127 прерываний или в компонент, отдельный от набора 114 микросхем. Схема 102 помечания меткой времени может принимать опорный тактовый сигнал от опорного тактового генератора 128 и может периодически обновлять локальное значение 130 подсчета в ответ на сигнал опорного тактового генератора. Схема 102 помечания меткой времени может дополнительно помечать события меткой 132 времени, которая основана на локальном значении 130 подсчета. Запрашивающая сторона (т.е. процессор 104) может позднее запросить помечание событий меткой 132 времени от схемы 102 помечания меткой времени, чтобы получить относительно точное указание относительно того, когда произошло событие. Помещая схему 102 помечания меткой времени около источников событий (т.е. устройств 118, 120, 122 и арбитра 126), может быть введена небольшая задержка между тем, когда событие произошло, и тем, когда событие было обнаружено и помечено схемой 102 помечания меткой времени. Дополнительно, чем меньше компонентов и совместно используемых ресурсов между источниками событий и схемой 102 помечания меткой времени, тем меньше введенная задержка может варьироваться между событиями. Соответственно, могут быть реализованы вычислительные устройства 100, в которых процессоры 104 могут определить очень точные различия во времени между возникновением двух или более событий.

Как изображено на фиг.2, схема 102 помечания меткой времени может содержать счетчик 134, контроллер 136, хранилище 138 событий и интерфейс 140. Счетчик 134 может быть соединен с опорным тактовым генератором 128 для приема сигнала опорного тактового генератора, имеющего опорную частоту, например, 27 МГц. Дополнительно счетчик 134 может быть реализован как 32-разрядный циклический счетчик, который может обновлять свое значение 130 подсчета в ответ на каждый цикл сигнала опорного тактового генератора.

Контроллер 136 может принимать события, такие как, например, сигналы запроса на прерывание, сообщения запроса на прерывание, сигналы предоставления доступа при арбитраже и т.д., от мультимедийных устройств 118, сетевых интерфейсов 120, устройств 122 I/O и/или арбитра 126. Контроллер 136 может дополнительно быть запрограммирован для помечания некоторых событий, представляющих интерес, и игнорирования, в основном, других событий. Например, контроллер 136 может быть запрограммирован или иным образом сконфигурирован для того, чтобы помечать первый сигнал предоставления доступа при арбитраже, следующий после запроса на прерывание от аудио интерфейса мультимедийных устройств 118. Точно так же, мультимедийному устройству 118 может быть назначено генерировать запросы на прерывание на конкретной линии прерывания (например, сигнальной линии прерывания INT_5), и контроллер 136 может быть запрограммирован или иным образом сконфигурирован для того, чтобы помечать все запросы на прерывание, принятые на линии прерывания, назначенной мультимедийному устройству 118.

В ответ на обнаружение события, представляющего интерес, контроллер 136 может сохранить метку 132 времени для обнаруженного события в хранилище 138 событий. В одном варианте осуществления контроллер 136 может просто сохранить текущее значение 130 подсчета счетчика 134 как метку 132 времени для обнаруженного события. В другом варианте осуществления контроллер 136 может сгенерировать метку 132 времени, основываясь на значении 130 подсчета счетчика 134. Например, контроллер 136 может сгенерировать метку 132 времени с помощью кодирования значения 130 подсчета таким образом, чтобы метка 132 времени включала меньше битов, чем значение 130 подсчета, и/или помещения метки 132 времени в форме, подходящей или ожидаемой запрашивающей стороной (т.е. процессором 104).

В ответ на обнаружение события, представляющего интерес, контроллер 136 может дополнительно сохранить идентификатор 142 события с меткой 132 времени в хранилище 138 событий. Идентификатор 142 события может указать источник (например, конкретное мультимедийное устройство 118) или тип события (например, сигнал прерывания INT_5 или предоставление доступа при арбитраже GNT_1). Идентификатор события 142 может использоваться для того, чтобы извлечь метку 132 времени для конкретного события из хранилища 138 событий. В одном варианте осуществления хранилище 138 событий может хранить множество событий и множество событий одного и того же типа. Хранилище 138 событий может дополнительно извлекать сохраненные метки 132 времени в порядке «первым поступил-первым обслужен» (FIFO), основываясь на идентификаторе 142 события.

В одном варианте осуществления хранилище 138 событий может быть реализовано как отдельная, размеченная, подобная FIFO-очереди структура, как проиллюстрировано на фиг.2. Контроллер 136 в таком варианте осуществления может помещать идентификаторы 142 события и ассоциированные метки 132 времени в хвост 144 FIFO-структуры по мере того, как события обнаруживаются. Интерфейс 140 может позднее запросить FIFO-структуру на предмет метки 132 времени идентификатора 142 события. В ответ на этот запрос FIFO-структура может предоставить интерфейсу 140 метку 132 времени, имеющую ассоциированный идентификатор 142 события. Если FIFO-структура имеет множественные метки 132 времени с ассоциированным идентификатором 142 события, то FIFO-структура возвращает тот, который наиболее близок к голове 146 FIFO-структуры.

Например, фиг.2 показывает FIFO-структуру после того, как контроллер 136 поместил несколько событий, имеющих идентификаторы 142 события EID_0, EID_2 и EID_5 и их ассоциированные метки 132 времени, в хвост 144 FIFO-структуры. В ответ на запрос метки 132 времени, ассоциированной с идентификатором события EID_0, FIFO-структура может возвратить метку времени TS_0, ассоциированную с самым старым идентификатором события EID_0, возвращая метку времени TS_0, которая наиболее близка к голове 146 FIFO-структуры. Точно так же, в ответ на запрос метки 132 времени, ассоциированной с идентификатором события EID 5, FIFO-структура может возвратить метку времени TS_5, ассоциированную с самым старым идентификатором события EID_0, возвращая метку времени TS_5, которая наиболее близка к голове 146 FIFO-структуры.

Хранилище 138 событий, однако, может быть осуществлено, используя другие структуры хранения. Например, хранилище 138 событий может содержать отдельную FIFO-структуру для каждого поддерживаемого типа/источника события, и контроллер 136 может поместить метки 132 времени в соответствующую FIFO-структуру. В таком варианте осуществления идентификаторы 142 события могут не сохраниться в хранилище 138 событий, так как метки 132 времени могут быть просто перемещены от головы 146 соответствующей FIFO-структуры. Необходимо отметить, что FIFO-структуры могут быть реализованы различными способами. Например, FIFO-структуры могут быть реализованы как кольцевые буферы с указателями на голову и хвост для того, чтобы отслеживать голову 146 и хвост 144 каждой FIFO-структуры.

Обратимся теперь к фиг.3, на которой показан вариант осуществления потоковой системы 148. Как изображено, потоковая система 148 может содержать сервер 150 для передачи потоков 152, таких как, например, аудио потоки, видео потоки, аудио/видео потоки, потоки данных и т.д., на вычислительное устройство 100 через сеть 154. Как изображено, сервер 150 может содержать программный тактовый генератор 156, который генерирует программный тактовый сигнал, имеющий PCR (программную тактовую частоту). В ответ на программный тактовый сигнал сервер 150 может передать поток 152 с частотой PCR программного тактового генератора 156. В одном варианте осуществления сервер 150 может передать поток 152 как последовательность блоков 158 данных с внедренными метками 160 PCR, сгенерированными программным тактовым генератором 156. Метки 160 PCR, в общем случае, обеспечивают основу опорного времени для воспроизведения или обработки потока 152.

Один или более процессоров 104 из состава вычислительного устройства 100 могут подготавливать блоки 158 данных принятого потока 152 для того, чтобы разместить эти блоки 158 данных в форме, подходящей для обработки мультимедийным устройством 118. Процессоры 104 могут после этого обусловить передачу подготовленных блоков 158 данных мультимедийному устройству 118 (т.е. аудиокодеку) для обработки. Мультимедийное устройство 118 может преобразовать блоки 158 данных в аудиоотсчеты и/или видеокадры и может воспроизвести и/или обработать аудиоотсчеты и/или видеокадры со скоростью обработки, которая основана на опорном тактовом генераторе 128 вычислительного устройства 100.

В идеальном случае частота опорного тактового генератора 128 и частота программного тактового генератора 156 должны совпадать. В этом случае мультимедийное устройство 118 может оставаться в синхронизации с сервером 150, просто обрабатывая блоки 158 данных со скоростью обработки, установленной опорным тактовым генератором 128. Однако на практике частота опорного тактового генератора 128 и частота программного тактового генератора 156 в точности не совпадают. В результате, если не предпринять корректирующее действие, вероятно произойдет состояние переполнения или опустошения, приводя, таким образом, к появлению артефактов в воспроизведении или обработке потока 152. В частности, если программный тактовый генератор 156 быстрее, чем опорный тактовый генератор 128, буферы вычислительного устройства 100 будут, вероятно, переполнены в результате приема блоков 158 данных со скоростью, которая выше, чем та, с которой они обрабатываются. Точно так же, если программный тактовый генератор 156 медленнее, чем опорный тактовый генератор 128, один или более буферов вычислительного устройства 100 будет, вероятно, опустошен при приеме блоков 158 данных со скоростью, которая меньше, чем та, с которой они обрабатываются.

В одном варианте осуществления мультимедийное устройство 118 может генерировать сигнал прерывания каждый раз, когда мультимедийное устройство 118 готово еще принять блоки 158 данных для обработки. В таком варианте осуществления сигналы прерывания могут точно отразить фактическую скорость обработки мультимедийного устройства 118. Соответственно, если процессор 104 может точно определить времена, когда такие сигналы прерывания сгенерированы, процессор 104 может точно определить фактическую скорость обработки мультимедийного устройства 118. Чтобы дать возможность процессору 104 точно определить времена таких сигналов прерывания, схема 102 помечания меткой времени может обнаруживать и помечать такие сигналы прерывания без заметной задержки и/или разброса задержек между возникновением события и помечанием события.

В другом варианте осуществления арбитр 126 может сгенерировать сигнал предоставления доступа, который предоставляет мультимедийному устройству 118 доступ к шине 124 каждый раз, когда блоки 158 данных передаются мультимедийному устройству 118 для обработки. Такие сигналы арбитража могут точно отразить фактическую скорость обработки мультимедийного устройства 118. Вновь, если процессор 104 может точно определить времена, когда такие сигналы предоставления доступа сгенерированы, процессор 104 может точно определить фактическую скорость обработки мультимедийного устройства 118. Чтобы дать возможность процессору 104 точно определить времена таких сигналов предоставления доступа, схема 102 помечания меткой времени может обнаруживать и помечать такие сигналы предоставления доступа без заметной задержки и/или разброса задержек между генерацией обнаруженного сигнала предоставления доступа и помечанием обнаруженного сигнала предоставления доступа. Необходимо понимать, однако, что другие события также могут точно отразить скорость обработки мультимедийного устройства 118. Соответственно, схема 102 помечания меткой времени может быть сконфигурирована для того, чтобы помечать эти другие события так, чтобы времена возникновения этих событий могли быть точно определены.

Вариант осуществления способа обработки потока показан на фиг.4. Приложение 108, такое как, например, проигрыватель MP3 (аудиоформат MPEG уровня 3) или видео проигрыватель QuickTimeTM, на этапе 200 может запросить поток 152 от сервера 150. На этапе 202 сервер 150 может передать приложению 108 запрашиваемый поток 152 с PCR-метками 160, которые основаны на программном тактовом генераторе 156 сервера 150. Приложение 108 на этапе 204 может подготовить блоки 158 данных из принятого потока 152 для обработки и может запросить мультимедийное устройство 118 обработать подготовленные блоки 158 данных. В одном варианте осуществления приложение 108 может удалить транспортные заголовки потока 152 и может сохранить блоки 158 данных из потока 152 в памяти 116. Дополнительно приложение 104 может запросить мультимедийное устройство 118 проиграть блоки 158 данных, сохраненные в памяти 116.

В ответ на запрашивание приложением 108 выполнения мультимедийным устройством 118 обработки одного или более блоков 158 данных драйвер 110 устройства для мультимедийного устройства 118 в блоке 206 может сконфигурировать мультимедийное устройство 118 для обработки потока 152 и может сконфигурировать схему 102 помечания меткой времени для помечания событий, служащих показателем скорости обработки мультимедийного устройства 118. В одном варианте осуществления драйвер 110 устройства может запрограммировать схему 102 помечания меткой времени для помечания сигналов прерывания, которые сгенерированы мультимедийным устройством 118, когда мультимедийное устройство 118 готово обработать дополнительные блоки 158 данных. В другом варианте осуществления драйвер 110 устройства может запрограммировать схему 102 помечания меткой времени для помечания сигналов предоставления, которые сгенерированы арбитром 126, перед передачей блоков 158 данных мультимедийному устройству 118 через совместно используемую шину 124.

Мультимедийное устройство 118 на этапе 208 может генерировать событие, вызывающее прерывание (например, сигнал прерывания INT_5), когда мультимедийное устройство 118 готово принять один или более блоков 158 данных потока 152. Контроллер 136 из состава схемы 102 помечания меткой времени на этапе 210 может определить, следует ли помечать меткой времени событие, вызывающее прерывание. В одном варианте осуществления контроллер 136 может определить, является ли обнаруженное событие, вызывающее прерывание, представляющим интерес событием, которое контроллер 136 запрограммирован пометить меткой времени. В ответ на определение необходимости помечания события, вызывающего прерывание, меткой времени контроллер 136 может сохранить метку 132 времени и идентификатор 142 события для данного события в хранилище 138 событий (этап 212).

В ответ на событие, вызывающее прерывание, драйвер 110 устройства для мультимедийного устройства 118 на этапе 214 может запросить у схемы 102 помечания меткой времени метку 132 времени для события, служащего показателем скорости обработки мультимедийного устройства 118. В одном варианте осуществления драйвер 110 устройства может предоставить интерфейсу 140 идентификатор 142 события для такого события (например, сигнал прерывания и/или сигнал арбитража). Схема 102 помечания меткой времени на этапе 216 может предоставить драйверу 110 устройства метку времени из своего хранилища 138 событий, основываясь на принятом идентификаторе 142 события.

Драйвер 110 устройства на этапе 218 может определить скорость обработки мультимедийного устройства 118, основываясь на принятой метке 132 времени, и может определить PCR потока 152 на основе меток 160 PCR потока 152. В одном варианте осуществления драйвер 110 устройства может определить скорость обработки на основе принятой метки 132 времени и одной или более ранее принятых меток 132 времени. Точно так же, драйвер 110 устройства может определить PCR на основе метки 160 PCR и одной/или более ранее принятых меток 160 PCR. Например, драйвер 110 устройства может определить различие между текущей меткой 132 времени и ранее принятой меткой 132 времени и может обновить определенную скорость обработки, основываясь на полученном различии. Точно так же, драйвер 110 устройства может определить различие между текущей меткой 160 PCR и ранее принятой меткой 160 PCR и может обновить определенную PCR на основе полученного различия.

На этапе 220 драйвер 110 устройства может скорректировать скорость обработки мультимедийного устройства 118 на основе определенной скорости обработки и PCR. В одном варианте осуществления драйвер 110 устройства может скорректировать частоту опорного тактового генератора 128 и/или может переконфигурировать мультимедийное устройство 118 для того, чтобы скорректировать свою скорость обработки относительно частоты опорного тактового генератора 128. В другом варианте осуществления драйвер 110 устройства и/или приложение 108 могут выполнить повторную дискретизацию в отношении одного или более блоков 158 данных потока 152 для того, чтобы, по существу, согласовать PCR передискретизованных блоков 158 данных со скоростью обработки мультимедийного устройства 118. Например, драйвер 110 устройства и/или приложение 108 может повысить частоту дискретизации одного или более блоков 158 данных, если скорость обработки мультимедийного устройства 118 выше, чем PCR потока 152. Точно так же, драйвер 110 устройства и/или приложение 108 может понизить частоту дискретизации одного или более блоков 158 данных, если скорость обработки мультимедийного устройства 118 меньше, чем PCR потока 152.

На этапе 222 драйвер 110 устройства может предписать набору 114 микросхем и/или мультимедийному устройству 118 осуществить перенос блоков 158 данных из памяти 116. В одном варианте осуществления драйвер 110 устройства может предписать средству DMA (прямого доступа к памяти) из состава набора 114 микросхем или мультимедийного устройства 118 перенести блоки 158 данных из памяти 116 на мультимедийное устройство 118 для обработки. На этапе 224 набор 114 микросхем и/или мультимедийное устройство 118 может запросить монопольное использование совместно используемой шины 124 для мультимедийного устройства 118, и арбитр 126, 224 может предоставить запрашивающей стороне 114, 118 монопольное использование совместно используемой шины 124. Контроллер 136 схемы 102 помечания меткой времени на этапе 226 может определить, необходимо ли пометить событие предоставления меткой времени. В одном варианте осуществления контроллер 136 может определить, является ли обнаруженное событие предоставления представляющим интерес событием, которое контроллер 136 запрограммирован пометить меткой времени. В ответ на определение необходимости помечания события предоставления меткой времени, контроллер 136 может сохранить метку 132 времени и идентификатор 142 события для данного события в хранилище 138 событий (этап 228).

Мультимедийное устройство 118 на этапе 230 может принять блоки 158 данных и может обработать блоки 158 данных со скоростью обработки, управляемой опорным тактовым генератором 128. В частности, мультимедийное устройство 118 может сгенерировать аудиоотсчеты и/или видеокадры из блоков 158 данных и может воспроизвести эти аудиоотсчеты и/или видеокадры со скоростью, предписанной опорным тактовым генератором 128. На этапе 232 мультимедийное устройство 118 может определить, завершило ли оно обработку потока 152. Если мультимедийное устройство 118 решает обрабатывать дополнительные блоки 158 данных потока 152, то мультимедийное устройство 118 может возвратиться на этап 208 для того, чтобы сгенерировать сигнал прерывания, который указывает, что мультимедийное устройство 118 готово принять дополнительные блоки 158 данных. В противном случае мультимедийное устройство 118 может прекратить обработку потока 152.

Поскольку некоторые признаки изобретения были описаны со ссылкой на примерные варианты осуществления, описание не предназначено для того, чтобы рассматриваться в смысле ограничения. Различные модификации примерных вариантов осуществления, а также другие варианты осуществления изобретения, которые являются очевидными специалистам в области техники, к которой относится изобретение, также лежат в пределах объема изобретения.

Класс G06F1/14 устройства контроля времени, например в реальном масштабе времени

таймер -  патент 2213366 (27.09.2003)
таймер с контролем -  патент 2113007 (10.06.1998)
устройство для отсчета времени -  патент 2079165 (10.05.1997)
устройство для отсчета времени -  патент 2024920 (15.12.1994)
Наверх