способы одновременного выполнения нескольких задач в медиаплеерах
Классы МПК: | G06F9/46 устройства для мультипрограммирования |
Автор(ы): | ЛЮ Инин (CN) |
Патентообладатель(и): | НЕТАК ТЕКНОЛОДЖИ КО., ЛТД. (CN) |
Приоритеты: |
подача заявки:
2006-09-25 публикация патента:
20.02.2011 |
Изобретение относится к технологии воспроизведения медиаданных и, в частности, к способу одновременного выполнения нескольких задач в медиаплеере. Техническим результатом является повышение скорости работы устройства. Способ содержит этапы, на которых: делят блоком управления каждую из различных функций медиаплеера, которые являются независимыми друг другу, на множество задач; устанавливают блоком управления приоритет каждой из задач, причем задаче, выполняющейся в реальном времени или чаще, чем остальные, устанавливается более высокий приоритет; проверяют приоритет упомянутых каждой из задач и изменяют состояние задачи с «ГОТОВ» на «ВЫПОЛНЕНИЕ» в соответствии с приоритетом задачи посредством блока управления; и выполняют блоком управления задачи поочередно, используя интервалы времени, связанные с ними. 6 з.п. ф-лы, 7 ил.
Формула изобретения
1. Способ одновременного выполнения нескольких задач в медиаплеере, включающем в себя блок управления, содержащий этапы, на которых:
1) делят блоком управления каждую из различных функций медиаплеера, которые являются независимыми друг другу, на множество задач;
2) устанавливают блоком управления приоритет каждой из задач, причем задаче, выполняющейся в реальном времени или чаще, чем остальные, устанавливается более высокий приоритет;
3) проверяют приоритет упомянутых каждой из задач и изменяют состояние задачи с «ГОТОВ» на «ВЫПОЛНЕНИЕ» в соответствии с приоритетом задачи посредством блока управления; и
4) выполняют блоком управления задачи поочередно, используя интервалы времени, связанные с ними.
2. Способ одновременного выполнения нескольких задач в медиаплеере по п.1, в котором, когда все задачи находятся в состоянии «ГОТОВ», задача с более высоким приоритетом будет выполняться первой.
3. Способ одновременного выполнения нескольких задач в медиаплеере по п.1, в котором этап деления реализуется блоком управления путем создания дескриптора для упомянутых каждой из задач.
4. Способ одновременного выполнения нескольких задач в медиаплеере по п.3, в котором время выполнения упомянутых каждой из задач определяется установкой в дескрипторе такта системных часов упомянутых каждой из задач.
5. Способ одновременного выполнения нескольких задач в медиаплеере по п.3, в котором этап создания дескриптора для упомянутых каждой из задач включает в себя этапы, на которых:
1) создают дескриптор для упомянутых каждой из задач, причем дескриптор включает в себя данные, необходимые для описания свойств упомянутых каждой из задач;
2) создают массив дескриптора;
3) инициируют упомянутые каждую из задач, устанавливают приоритет для упомянутых каждой из задач; и
4) устанавливают состояние упомянутых каждой из задач как «ГОТОВ».
6. Способ одновременного выполнения нескольких задач в медиаплеере по п.1, в котором этап 2) дополнительно включает в себя этапы, на которых:
2-1) устанавливают блоком управления состояние упомянутых каждой из задач с различным приоритетом как «ГОТОВ»; и
2-2) устанавливают интервал времени для упомянутых каждой из задач, причем каждый интервал времени соответствует одной из задач согласно порядку приоритетов задач.
7. Способ одновременного выполнения нескольких задач в медиаплеере по п.3, в котором этап 3) дополнительно включает в себя этапы, на которых:
3-1) проверяют, существует ли текущая задача в состоянии «ВЫПОЛНЕНИЕ», если «да», модифицируют состояние текущей задачи с «ВЫПОЛНЕНИЕ» на «ГОТОВ»;
3-2) сканируют весь массив дескриптора для нахождения первой задачи с наивысшим приоритетом и в состоянии «ГОТОВ»;
3-3) если первая задача является текущей задачей, то изменяют состояние текущей задачи на «ВЫПОЛНЕНИЕ» и переходят к адресу кодов текущей задачи для выполнения текущей задачи; если первая задача не является текущей задачей, то сохраняют данные текущего системного поля в стек текущей задачи, копируют содержания стека первой задачи как данные текущего системного поля, изменяют состояние первой задачи с «ГОТОВ» на «ВЫПОЛНЕНИЕ» и переходят к адресу кодов первой задачи для выполнения первой задачи.
Описание изобретения к патенту
Область техники, к которой относится изобретение
Это изобретение относится к технологии воспроизведения медиаданных и, в частности, к способу выполнения нескольких задач в медиаплеере.
Уровень техники
Технологии электронной информации развиваются. Медиаплееры, например MP3-плееры, стали популярны благодаря своей многофункциональности, такой как проигрывание музыки, просмотр изображений, отображение текстов, ведение игр, прием FM-радио и т.д.
Однако такие устройства могут выполнять только одну функцию единовременно, при этом не имеет значения, как много функций имеет устройство. Пользователи не могут читать текст, просматривать изображение или играть в игры, в то же время проигрывая музыку или принимая FM-радио.
Фиг.1 - это блок-схема, иллюстрирующая способ выполнения задач обычным медиаплеером. Без механизма, выполняющего несколько задач одновременно, приложения в устройстве будут выполняться только в режиме однозадачности. Когда выполняется какая-нибудь определенная задача, ее выполнение занимает все ресурсы системы, например, управление CPU, доступ стеков и регистров и управление оборудованием, например, устройством внутренней памяти и периферийными устройствами. Если появляется необходимость в выполнении новой задачи, текущая задача должна остановиться для того, чтобы освободить ресурсы системы для выполнения новой задачи.
Упомянутый выше способ требует постоянного ввода и вывода исполнительных кодов между внешней и внутренней памятью. Перед выводом исполнительных кодов исполнительные параметры операционной среды текущей задачи будут сохраняться. Перед вводом исполнительных кодов исполнительные параметры операционной среды будут восстанавливаться как сохраненные ранее параметры. Таким образом, исполнительные параметры операционной среды должны часто считываться и записываться между высокоскоростным и низкоскоростным оборудованием, что определяет скорость исполнения всей системы и снижает ее.
Фиг.2 - это решение вышеупомянутой проблемы в предыдущем уровне техники. При добавлении функциональных кодов новой задачи в текущую задачу, работа и текущей и новой задач может выполняться поочередно. Пользователю кажется, что две или более задач выполняются одновременно. На самом деле все функциональные коды исполняемых задач вводятся в одну и ту же задачу и выполняются, используя цикличность интервалов времени.
Однако поскольку в модели с цикличностью интервалов времени выполняются различные функциональные коды без предоставления какого-либо приоритета каждой функции, то высокоскоростное выполнение кодов должно ждать до тех пор, пока закончится низкоскоростное выполнение кодов. В частности, если выполнение любой из двух функций должно ждать до того, как выполнится другая функция до определенного уровня, существует вероятность возникновения тупиковой ситуации.
Для этой цели настоящее изобретение предоставляет новый способ, который делает возможным выполнение нескольких задач на медиаплеерах.
Раскрытие изобретения
Задача настоящего изобретения состоит в предоставлении способа выполнения нескольких задач одновременно в устройствах воспроизведения медиаданных.
В настоящем изобретении предоставляется способ одновременного выполнения нескольких задач медиаплеером, используя цикличность интервалов времени. Медиаплеер содержит блок управления. Способ содержит этапы, на которых: делят блоком управления каждую из различных функций медиаплеера на множество задач; устанавливают блоком управления приоритет каждой из задач; проверяют приоритет упомянутых каждой из задач и изменяют состояние задачи с «ГОТОВ» на «ВЫПОЛНЕНИЕ» в соответствии с приоритетом задачи посредством блока управления; и выполняют блоком управления задачи поочередно, используя интервалы времени, связанные с ними.
В способе по настоящему изобретению, когда все задачи находятся в состоянии «ГОТОВ», задача с более высоким приоритетом будет выполняться первой.
В способе настоящего изобретения время выполнения упомянутых каждой из задач определяется установкой такта системных часов в дескрипторе упомянутых каждой из задач. А этап деления реализуется блоком управления путем создания дескриптора для упомянутых каждой из задач.
По настоящему изобретению множество задач будет пользоваться ресурсами CPU и системы по очереди, с тем чтобы исполняться поочередно в определенное время в соответствии с определенным алгоритмом блока управления. Поскольку все задачи выполняются за короткое время, то с точки зрения пользователя все задачи выполняются одновременно. Таким образом, достигается одновременное выполнение нескольких задач медиаплеером.
Краткое описание чертежей
Фиг.1 - это блок-схема, показывающая обычный способ выполнения задач в медиаплеерах.
Фиг.2 - это другая блок-схема, показывающая обычный способ выполнения задач в медиаплеерах.
Фиг.3 - это блок-схема, показывающая процесс создания дескриптора и инициализацию процесса в способе одновременного выполнения нескольких задач медиаплеером по настоящему изобретению.
Фиг.4 - это блок-схема, показывающая процесс тактового планирования в способе одновременного выполнения нескольких задач медиаплеером по настоящему изобретению.
Фиг.5 - это блок-схема, показывающая выполнение задачи воспроизведения звука и процесс бездействия по настоящему изобретению.
Фиг.6 - это блок-схема, показывающая выполнение процесса планирования ожидающей задачи по настоящему изобретению;
Фиг.7 - это блок-схема, показывающая выполнение процесса прерывания такта по настоящему изобретению.
Осуществление описания
Медиаплеер обычно снабжен блоком управления, входным блоком, блоком отображения и блоком вывода звука. Блок управления имеет встроенные программно-аппаратные средства, обеспечивающие функционирование медиаплеера.
Это изобретение предоставляет способ одновременного выполнения нескольких задач медиаплеером способом цикличности интервалов времени. Этот способ состоит из процесса деления каждой функции медиаплеера на множество задач, процесса установления приоритета каждой задачи, процесса создания дескриптора для каждой задачи, процесса инициализации, процесса тактового планирования, процесса выполнения задач, процесса бездействия задачи, процесса планирования задач в состоянии "ОЖИДАНИЕ" и процесса прерывания такта.
Как известно из предыдущего уровня техники, обычно медиаплеер имеет множество функций, например, воспроизведение звука, просмотр изображений, отображение текстов, игры, прием FM-радио и так далее. Каждая из этих функций делится на множество задач, которые управляются и выполняются с помощью встроенного программно-аппаратного обеспечения в блоке управления. Выполнение задач будет забирать ресурсы CPU и системы поочередно под управлением блока управления. Поскольку все задачи выполняются за короткое время, то с точки зрения пользователя все задачи выполняются одновременно. Таким образом, достигается одновременное выполнение нескольких задач медиаплеером.
По изобретению каждая задача получает приоритет в соответствии с конкретным алгоритмом. Различные задачи требуют различных ресурсов CPU и системных ресурсов. Например, дешифровка МП3 требует больше вычислительной способности, чем дешифровка изображения. Некоторые задачи должны производится в реальном времени, а другие не должны. Например, пользователя может беспокоить пауза МП3-плеера, но ему может быть безразлична задержка показа изображения. Кроме того, некоторые функции, типа МП3-проигрывания, могут использоваться чаще, чем другие, типа отображения текста. Следовательно, когда все задачи находятся в состоянии «ГОТОВ», задача наивысшего приоритета должна выполняться первой. Задача самого низшего приоритета никогда не будет выполняться до тех пор, пока задача более высокого приоритета не прекратится и отключится, освобождая ресурс ЦП и ресурсы системы. Таким способом различным задачам можно правильно выделить интервалы времени для того, чтобы улучшить эффективность использования ресурсов системы и избежать их потерю.
По настоящему изобретению разделение каждой функции на задачи и установка приоритетов выполняется созданием дескриптора для каждой задачи с помощью блока управления. Блок управления создает дескриптор, устанавливает приоритет и такт системных часов для каждой задачи с определенным алгоритмом. Все задачи первоначально устанавливаются в состояние «ГОТОВ». Блок управления загружает задачу наивысшего приоритета и изменяет ее состояние с «ГОТОВ» на «ВЫПОЛНЕНИЕ» так, что задача наивысшего приоритета выполняется в соответствии с тактом системных часов, как установлено в дескрипторе задачи.
По настоящему изобретению время выполнения задачи определяется тактом системных часов, как установлено в дескрипторе задачи так, что все задачи могут быть выполнены поочередно и циклично в соответствии с интервалами времени, соответственно выделенными для задач. Когда одна задача выполняется, она находится в состоянии «ВЫПОЛНЕНИЕ», в то время как состояние других задач «ГОТОВ». Только после того, как задача в состоянии «ВЫПОЛНЕНИЕ» завершается и переходит в режим ожидания до окончания своего такта, могут выполняться другие задачи. Выполнение текущей задачи не может прерываться другими задачами, находящимися в состоянии «ГОТОВ». В этот момент состояние задачи изменяется на «ГОТОВ». Приоритет каждой задачи проверяется снова для определения следующей задачи, которую надо выполнить. Если выполняемая в настоящий момент задача освобождает ресурс CPU и во время своего выполнения переходит в режим ожидания, приоритет данной задачи будет по-прежнему установлен как наивысший так, что она может выполняться непрерывно.
Например, медиаплеер имеет функции звукового воспроизведения, просмотра изображений, отображения текста, игры и приема FM-радио, каждая из которых разделена на множество задач так, что плеер может работать, выполняя множество задач. Первый приоритет «15» устанавливается для звукового воспроизведения. Второй приоритет «14» устанавливается для просмотра изображений, третий приоритет «13» - для отображения текста и так далее, и самый низкий приоритет устанавливается для задачи в состоянии «БЕЗДЕЙСТВИЕ». После включения и запуска медиаплеера блок управления проверяет приоритет каждой задачи, устанавливает состояние каждой задачи как «ГОТОВ» и назначает для каждой задачи интервал времени в 10 мсек. Таким образом, множество интервалов времени могут соответственно относится к множеству задач в соответствии с приоритетом. Когда команда пользователя введена, например, с помощью клавиатуры, сенсорного экрана и так далее, соответствующая задача, например «воспроизведение звука», выполняется в соответствии с предыдущими установками, и их состояние - это состояние «ВЫПОЛНЕНИЕ» внутри соответствующего интервала времени, в то время как состояние других задач - «ГОТОВ».
Когда пользователь хочет выполнить новую задачу, например просмотр изображений, блок управления проверяет приоритет этой новой задачи. Если приоритет новой задачи выше приоритета текущей задачи, новая задача будет выполнена немедленно согласно интервалу времени, соответствующему новой задаче, и состояние новой задачи будет изменено на «ВЫПОЛНЕНИЕ». Если приоритет новой задачи ниже приоритета текущей задачи, новая задача не будет выполнена до завершения текущей задачи.
Фиг.3 - это блок-схема, показывающая процесс создания дескриптора задачи и инициализацию процесса по настоящему изобретению.
На этапе S11 для каждой задачи создается дескриптор. Дескриптор включает данные, необходимые для описания таких свойств каждой задачи как, например, ID, ее приоритет, состояние, такт системных часов, первоначальный адрес исполнительных кодов, начальный адрес стека и размер стека.
Этап S12 предназначен для создания массива дескрипторов, который содержит адреса дескрипторов всех задач для облегчения управления.
На этапе S12 задачи инициализируются. Для каждой задачи устанавливается размер необходимого стека и приоритет, предоставляется пространство стека и ID, состояние устанавливается как «ГОТОВ», такт возвращается в начальное состояние, и записывается начальный адрес кодов исполнения, так же, как начальный адрес и размер стека. Таким способом инициализируются все задачи.
На этапе S12 процесс переключается на процесс тактового планирования.
Фиг.4 - это блок-схема, показывающая процесс тактового планирования по настоящему изобретению.
На этапе S21, если задача определяется как находящаяся в состоянии «ВЫПОЛНЕНИЕ», состояние задачи изменяется на «ГОТОВ». В противном случае процесс переходит к этапу S22.
На этапе S22 массив дескриптора сканируется полностью для нахождения задачи с наивысшим приоритетом и в состоянии «ГОТОВ».
На этапе S23, если существует какая-либо задача, соответствующая упомянутым выше требованиям, процесс переходит к этапу S24. В противном случае процесс переходит к этапу S26.
На этапе S24, если задача, соответствующая требованиям - это текущая задача, состояние текущей задачи изменяется на «ВЫПОЛНЕНИЕ» так, что текущая задача исполняется. Например, если текущая задача - это звуковое воспроизведение, осуществляется процесс воспроизведения звука. Также исполняются и другие задачи.
На этапе S25, если задача, соответствующая требованиям, не является текущей задачей, все данные текущего системного поля сохраняются в стек текущей задачи. Затем содержание стека задачи ГОТОВ с наивысшим приоритетом копируется как текущее системное поле, и состояние задачи с наивысшим приоритетом изменяется с «ГОТОВ» на «ВЫПОЛНЕНИЕ» так, что эта задача исполняется. Например, если задача с состоянием ГОТОВ и наивысшим приоритетом - это воспроизведение звука, то начинается процесс воспроизведения звука. Если задача с состоянием ГОТОВ и наивысшим приоритетом - это просмотр изображений, то осуществляется процесс просмотра изображений.
На этапе S26, если не найдено задач, соответствующих требованиям, процесс тактового планирования переходит к адресу задачи БЕЗДЕЙСТВИЕ, то есть исполняется задача БЕЗДЕЙСТВИЕ.
Фиг.5 - это блок-схема, показывающая исполнение задачи воспроизведения звука и задачи бездействия по настоящему изобретению.
На этапе S31 выполняется операция, соответствующая задаче воспроизведения звука.
На этапе S32 один раз выполняется цикл воспроизведения звука, и выполнение соответствующей операции завершается.
На этапе S33 процесс планирования ожидающей задачи осуществляется переходом к адресу программных кодов планирования задачи, которая ожидает.
Фиг.6 - это блок-схема, показывающая выполнение процесса планирования ожидающей задачи по настоящему изобретению.
На этапе S41 состояние текущей задачи изменяется с «ВЫПОЛНЕНИЕ» на «ОЖИДАЕТ», и данные текущего системного поля сохраняются в стек текущей задачи.
На этапе S42 массив дескриптора полностью сканируется для нахождения задачи с наивысшим приоритетом и в состоянии «ГОТОВ».
На этапе S43, если существует какая-либо задача, отвечающая упомянутым выше требованиям, процесс переходит к этапу S44. В противном случае процесс переходит к этапу S46.
На этапе S44 содержание стека задачи в состоянии «ГОТОВ» с наивысшим приоритетом копируется как текущее системное поле, и состояние задачи с наивысшим приоритетом изменяется с «ГОТОВ» на «ВЫПОЛНЕНИЕ» для исполнения этой задачи. Например, если задача в состоянии ГОТОВ с наивысшим приоритетом - это воспроизведение звука, начинается процесс воспроизведения звука. Если задача в состоянии ГОТОВ с наивысшим приоритетом - это просмотр изображений, то выполняется просмотр изображений.
На этапе S45, если не найдена задача, отвечающая требованиям, процесс переходит к адресу задачи БЕЗДЕЙСТВИЕ, то есть исполняется задача БЕЗДЕЙСТВИЕ.
Фиг.7 - это блок-схема, показывающая выполнение процесса прерывания такта по настоящему изобретению.
На этапе S51 выполняется требование прерывания такта.
На этапе S52 процесс тактового планирования осуществляется переходом к адресу кодов программы тактового планирования.
По настоящему изобретению различные задачи выглядят как различные модули. Для планирования всех задач используется единый процесс планирования, таким образом, исключается возможность отказа всей системы. Более того, поскольку одна функция выполняется во множестве модулей, то упрощается применение программного обеспечения и модулей. Поскольку множество сложных задач обрабатываются последовательно одна за другой, то упрощается разработка программ для разработчиков.
В настоящем изобретении, поскольку данные системного поля различных задач сохраняются в различные стеки, соединение всей системы упрощается и соответственно увеличивается надежность системы.
Практически, пользователь может модифицировать программы во встроенном программном и аппаратном обеспечении управляющего блока для установки приоритета и такта системных часов для каждой задачи. Приоритет каждой задачи может быть установлен от нуля до верхнего значения или от определенного номера до нуля. В обоих случаях может быть получена реализация выполнения множественных задач на устройстве воспроизведения звука.
Класс G06F9/46 устройства для мультипрограммирования