Чому відтворення аудіо не зупиняє інші завдання?


10

Якщо процесори можуть одночасно виконувати лише одне, то чому я можу постійно відтворювати музику і все ще мати змогу виконувати інші завдання?

Я розумію систему переривань, але чи не потрібно, щоб процесор постійно обробляв аудіо, щоб він не звучав трепетно ​​/ мляво?

Я запитую про основну реалізацію, чи пов’язане це питання з багатопотоковою резьбою? Як 1-ядерний 1-потоковий процесор може досягти цього багатозадачності?


Я можу зрозуміти, що "тьмяний"? (PS, вихід FM-тюнера з мого iPod nano відстає від виходу аналогового FM-радіо, налаштованого на ту ж станцію, приблизно на чверть секунди, але я не чую відставання, якщо слухаю iPod поодинці.)
Соломон повільно

@jameslarge Якщо ви грали у відеоігри, щось подібне на чверть секунди відставання в звуку було б надзвичайно помітним. Аналогічно для відеоконференцій.
Дерек Елкінс покинув SE

3
Як вказується у відповіді Аріеля, для цього завдання в достатній кількості старого процесора достатньо потужності для обробки. Однак я впевнений, що цим завданням значною мірою займаються і продовжують займатися аудіокопроцесори. Завдання CPU полягає в тому, щоб просто заповнити буфери аудіо-копроцесорів, що не вимагає будь-якої "постійної" обробки процесором, особливо для музики, де всі дані доступні заздалегідь.
Дерек Елкінс покинув SE

Я б вибрав DMAC, одиниці обробки звукових карт та буфери.
Зло

Відповіді:


9

Оскільки процесор працює у фіксованих тактових циклах, насправді нічого не є безперервним, здається лише тим, що дискретизація досить чутлива.

Припустимо, ваша тактова частота процесора дорівнює . Якщо процесор тільки присвячує один в тактах для обробки аудіо (і використовує інші такти для незв'язаних задач) , то у вас є затримка між кожною «аудіо завданнями обробки» попередньо від CPU (для простоти, ми припускаємо, що процесор здійснює цю обробку, використовуючи лише один тактовий цикл).1GHz=109Hztt109s

Скажімо, ми допускаємо затримку (люди чують частоти в діапазоні від 20 Гц до 20 кГц, тому слух людини не буде чутливим до такої затримки), тоді нам потрібно вимагати , тож процесор може одночасно впоратися з завданнями, зберігаючи затримку .105st<104104105s


8

40 років тому, можливо, у вас був комп’ютер, де процесор безпосередньо керував динаміком. Ті часи минули, давно.

У вас може бути комп’ютер із примітивною звуковою карткою. Така звукова карта буде мати буфер для стереозвукових зразків, цей буфер може бути заповнений, функція виводу буде запущена, і звукова карта почне генерувати звук із зразків у своїх буферах, без того, щоб процесор нічого робити. Все, що потрібно зробити, це заповнити буфери більшою кількістю зразків звуку, перш ніж його закінчиться. Якщо у вас є один мегабайтний буфер, це 250 000 стерео-зразків якості CD, це приблизно шість секунд. Тому кожні кілька секунд процесору доводиться знову заповнювати ці буфери.

Насправді ваш комп'ютер матиме щось набагато досконаліше. У принципі те саме, але, наприклад, буфери можуть заповнюватися безпосередньо звуком у форматі mp3 або aac, і звукова карта сама декодує ці дані на стерео-зразки. Швидше за все, це може бути запрограмовано для отримання різного роду різних ефектів, починаючи з гучності звуку, покращуючи якість звуку, змінюючи висоту тону чи швидкості самостійно, генеруючи об'ємний звук тощо.

Процесор не дуже працює, просто час від часу заповнюючи буфери звуку. Решта робиться чимось іншим. Звичайно, коли я кажу "звукова карта", вони зменшилися від звукових карт до мікросхем до крихітного блоку транзисторів на масивному чіпі з безліччю різних функціональних можливостей.

Для одного виробника таких карток дивіться https://en.wikipedia.org/wiki/Wolfson_Microelectronics як вихідну точку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.