Se os processadores puderem executar apenas uma coisa de cada vez, como posso tocar música continuamente e ainda poder executar outras tarefas?
Entendo o sistema de interrupção, mas não é necessário que a CPU processe continuamente o áudio para que não pareça instável / lento?
Estou perguntando sobre a implementação subjacente. Esta questão está relacionada ao multiencadeamento? Como uma CPU de 1 núcleo e 1 thread consegue atingir essa multitarefa?
cpu
multi-tasking
Sonhe
fonte
fonte
Respostas:
Como a CPU trabalha em ciclos de clock fixos, nada é realmente contínuo, apenas parece porque a discretização é sensível o suficiente.
Suponha que a taxa de clock da CPU seja . Se a CPU dedicar apenas um ciclo de relógio em ao processamento de áudio (e utilizar os ciclos de relógio restantes para tarefas não relacionadas), haverá um atraso de entre todas as "tarefas de processamento de áudio" pré-formadas pela CPU (para simplificar, assumimos que a CPU pré-forma esse processamento usando apenas um ciclo de clock).1GHz=109Hz t ≈t⋅10−9s
Digamos que permitimos um atraso de (os seres humanos ouvem frequências na faixa de 20Hz a 20Khz, para que a audição humana não seja sensível a esse atraso), então precisamos exigir , para que a CPU possa manipular simultaneamente mais tarefas, mantendo um atraso de .10−5s t<104 104 10−5s
fonte
Há 40 anos, você pode ter um computador em que a CPU controlava o alto-falante diretamente. Esses tempos acabaram, há muito tempo.
Você pode ter um computador com uma placa de som primitiva. Essa placa de som terá um buffer para amostras de áudio estéreo, esse buffer poderá ser preenchido, a função de saída será iniciada e a placa de som começará a gerar áudio a partir das amostras em seus buffers, sem que a CPU precise fazer nada. Tudo o que a CPU precisa fazer é preencher os buffers com mais amostras de áudio antes que ele acabe. Se você possui um buffer de um megabyte, são 250.000 amostras estéreo com qualidade de CD, são cerca de seis segundos. Portanto, a cada poucos segundos, a CPU precisa preencher esses buffers novamente.
Na realidade, seu computador terá algo muito mais avançado. Em princípio, o mesmo, mas os buffers podem ser preenchidos diretamente com som no formato mp3 ou aac, por exemplo, e a placa de som decodificará esses dados em amostras estéreo por conta própria. Provavelmente, ele pode ser programado para produzir todos os tipos de efeitos diferentes, desde o volume do som, melhorando a qualidade do som, alterando o tom ou a velocidade independentemente, gerando som surround e assim por diante.
A CPU não faz muito, apenas preenchendo os buffers de som de tempos em tempos. O resto é feito por outra coisa. É claro que quando digo "placa de som", elas diminuíram de placas de som para chips até um pequeno fragmento de transistores em um chip massivo com várias funcionalidades diferentes.
Para um fabricante de tais cartões, consulte https://en.wikipedia.org/wiki/Wolfson_Microelectronics como ponto de partida.
fonte