Tại sao không phát âm thanh dừng các tác vụ khác?


10

Nếu bộ xử lý chỉ có thể thực hiện một việc tại một thời điểm, tại sao tôi có thể phát nhạc liên tục mà vẫn có thể chạy các tác vụ khác?

Tôi hiểu hệ thống ngắt, nhưng không cần CPU liên tục xử lý âm thanh để nó không bị giật / giật?

Tôi đang hỏi về việc thực hiện cơ bản, câu hỏi này có liên quan đến đa luồng không? Làm thế nào để CPU 1 lõi, 1 luồng có thể đạt được đa nhiệm này?


"Jittery" Tôi có thể hiểu, nhưng "lag" nghe như thế nào? (PS, Đầu ra bộ chỉnh FM từ iPod nano của tôi làm chậm đầu ra của đài FM analog được điều chỉnh đến cùng một đài khoảng một phần tư giây, nhưng tôi không thể nghe thấy độ trễ nếu tôi chỉ nghe iPod.)
Solomon chậm

@jameslarge Nếu bạn đang chơi một trò chơi video, âm thanh bị trễ một phần tư giây sẽ cực kỳ đáng chú ý. Tương tự cho hội nghị truyền hình.
Derek Elkins rời SE

3
Như câu trả lời của Ariel chỉ ra, có rất nhiều sức mạnh xử lý trong một CPU khá cũ để xử lý công việc này. Tuy nhiên, tôi khá chắc chắn rằng nhiệm vụ này phần lớn đã và đang tiếp tục được xử lý bởi các bộ xử lý âm thanh. Công việc của CPU sau đó chỉ đơn giản là lấp đầy bộ đệm của bộ đồng xử lý âm thanh mà không yêu cầu bất kỳ quá trình xử lý "liên tục" nào của CPU, đặc biệt là đối với âm nhạc nơi tất cả dữ liệu đều có sẵn.
Derek Elkins rời SE

Tôi sẽ chọn DMAC, bộ xử lý card âm thanh và bộ đệm.
Ác

Câu trả lời:


9

Vì CPU hoạt động theo chu kỳ xung nhịp cố định, không có gì thực sự liên tục, chỉ có vẻ như vậy vì sự rời rạc đủ nhạy cảm.

Giả sử tốc độ xung nhịp CPU của bạn là . Nếu CPU chỉ dành một phần chu kỳ đồng hồ để xử lý âm thanh (và sử dụng các chu kỳ đồng hồ còn lại cho các nhiệm vụ liên quan) sau đó bạn có một sự chậm trễ của giữa mỗi "nhiệm vụ xử lý âm thanh" preformed bởi cpu (để đơn giản, chúng tôi giả sử cpu tạo ra quá trình xử lý này chỉ bằng một chu kỳ xung nhịp).1GHz= =109Hztt10-9S

Hãy nói rằng chúng tôi cho phép độ trễ (con người nghe được tần số trong phạm vi từ 20Hz đến 20Khz, vì vậy thính giác của con người sẽ không nhạy cảm với độ trễ như vậy), do đó chúng tôi cần yêu cầu , do đó CPU có thể xử lý đồng thời nhiệm vụ nữa trong khi vẫn giữ độ trễ .10-5St<10410410-5S


8

40 năm trước, bạn có thể đã có một máy tính mà CPU điều khiển loa trực tiếp. Những lần đó đã qua, từ lâu rồi.

Bạn có thể có một máy tính với một card âm thanh nguyên thủy. Một card âm thanh như vậy sẽ có bộ đệm cho các mẫu âm thanh stereo, bộ đệm đó có thể được lấp đầy, chức năng đầu ra sẽ được khởi động và card âm thanh bắt đầu tạo âm thanh từ các mẫu trong bộ đệm của nó, mà CPU không phải làm gì cả. Tất cả những gì CPU cần làm là lấp đầy bộ đệm bằng nhiều mẫu âm thanh hơn trước khi hết. Nếu bạn có bộ đệm một megabyte, đó là 250.000 mẫu âm thanh nổi chất lượng CD, khoảng sáu giây. Vì vậy, cứ sau vài giây, CPU lại phải lấp đầy các bộ đệm này.

Trong thực tế, máy tính của bạn sẽ có một cái gì đó cao cấp hơn nhiều. Về nguyên tắc là như vậy, nhưng bộ đệm có thể được lấp đầy trực tiếp bằng âm thanh ở định dạng mp3 hoặc aac, và card âm thanh sẽ tự giải mã dữ liệu này thành các mẫu âm thanh nổi. Nhiều khả năng nó có thể được lập trình để tạo ra tất cả các loại hiệu ứng khác nhau, từ âm lượng âm thanh, cải thiện chất lượng âm thanh, thay đổi cường độ hoặc tốc độ độc lập, tạo ra âm thanh vòm, v.v.

Đôi khi CPU không làm được gì nhiều, chỉ thỉnh thoảng làm đầy bộ đệm âm thanh. Phần còn lại được thực hiện bởi một cái gì đó khác. Tất nhiên khi tôi nói "card âm thanh", chúng đã thu nhỏ từ card âm thanh thành chip cho đến một bóng bán dẫn nhỏ trên một con chip lớn với nhiều chức năng khác nhau.

Đối với một nhà sản xuất thẻ như vậy, hãy xem https://en.wikipedia.org/wiki/Wolfson_Microelectronics như một điểm khởi đầu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.