Title:
Verbesserter Datentransfer in Audiocodeccontrollern
Kind Code:
A1


Abstract:
Eine Audiocodec-Steuertechnik mit verbesserten Mehrkanaldatenordnungsfähigkeiten wird bereitgestellt. Ein Audiocodec-Controller umfasst eine erste Schnittstelleneinrichtung zum Durchführen eines Datentransfers zu und von einem Audiocodec, eine zweite Schnittstelleneinrichtung zum Durchführen eines Datentransfers von einem externen Speicher und einen Datenpuffer zum Puffern von Daten, die von dem externen Speicher über die zweite Schnittstelleneinrichtung empfangen worden sind. Der Controller umfasst ferner ein Auffangregister zum Empfangen von Daten von dem Datenpuffer, die von dem Audiocodec angefordert worden sind, und zum temporären Speichern der empfangenen Daten. Die zweite Schnittstelleneinrichtung ist verbunden, um temporär gespeicherte Daten von dem Auffangregister zu empfangen. Der Betrieb des Audiocodec-Controllers kann in mehreren Betriebsmoden erfolgen, einschließlich vollratigen und halbratigen 2-, 4- und 6-Kanalmoden.



Inventors:
ZIEP NORBERT (DE)
BERNDT THOMAS (DE)
Application Number:
DE10219357A
Publication Date:
11/27/2003
Filing Date:
04/30/2002
Assignee:
ADVANCED MICRO DEVICES, INC.
International Classes:
G10H7/00 (IPC1-7): G06F13/00
Domestic Patent References:
DE69702336T2N/A



Foreign References:
5857083
Claims:
1. Audiocodec-Controller umfassend:

eine erste Schnittstelleneinrichtung (140) zum Durchf�hren eines Datentransfers zu und von einem Audiocodec (180, 190);

eine zweite Schnittstelleneinrichtung (130) zum Durchf�hren eines Datentransfers von einem externen Speicher (100); und

einen Datenpuffer (160) zum Puffern von Daten, die von dem externen Speicher �ber die zweite Schnittstelleneinrichtung empfangen worden sind,

wobei der Audiocodec-Controller weiterhin umfasst:

ein Auffangregister (200) zum Empfangen von Daten von dem Datenpuffer, die von dem Audiocodec angefordert worden sind, und zum tempor�ren Speichern der empfangenen Daten,

wobei die zweite Schnittstelleneinrichtung verbunden ist, um tempor�r gespeicherte Daten von dem Auffangregister zu empfangen.

2. Audiocodec-Controller nach Anspruch 1, wobei die zweite Schnittstelleneinrichtung eingerichtet ist zum wenigstens zweimaligen Zugreifen auf das Auffangregister, um die tempor�r gespeicherten Daten zu empfangen, ohne dass der Datenpuffer aus dem externen Speicher nachgef�llt werden muss.

3. Audiocodec-Controller nach Anspruch 2, wobei der Datentransfer zu dem Audiocodec den Transfer von Rahmen einschlie�t und die zweite Schnittstelleneinrichtung eingerichtet ist zum �bertragen der Daten, die beim wenigstens zweimaligen Zugreifen auf das Auffangregister empfangen worden sind, zu dem Audiocodec in wenigstens zwei Rahmen.

4. Audiocodec-Controller nach Anspruch 1, wobei der Datentransfer zu dem Audiocodec ein paketorientierter Datentransfer ist, w�hrend der Datentransfer von dem externen Speicher ein audiosampleorientierter Datentransfer ist.

5. Audiocodec-Controller nach Anspruch 1, wobei der Datentransfer zu dem Audiocodec ein Mehrkanalaudiodatentransfer ist.

6. Audiocodec-Controller nach Anspruch 5, wobei der Mehrkanalaudiodatentransfer einen Datentransfer in Bezug auf einen Kanal vorne links und einen Kanal vorne rechts enth�lt.

7. Audiocodec-Controller nach Anspruch 5, wobei der Mehrkanalaudiodatentransfer einen Datentransfer in Bezug auf einen Kanal hinten links und einen Kanal hinten rechts enth�lt.

8. Audiocodec-Controller nach Anspruch 5, wobei der Mehrkanalaudiodatentransfer einen Datentransfer in Bezug auf einen Vorne-Mitte-Kanal enth�lt.

9. Audiocodec-Controller nach Anspruch 5, wobei der Mehrkanalaudiodatentransfer einen Datentransfer in Bezug auf einen Subwoofer-Kanal enth�lt.

10. Audiocodec-Controller nach Anspruch 5, wobei der Mehrkanalaudiodatentransfer ein 2-Kanaldatentransfer in Bezug auf einen Kanal vorne links und einen Kanal vorne rechts ist.

11. Audiocodec-Controller nach Anspruch 5, wobei der Mehrkanalaudiodatentransfer ein 4-Kanal-Datentransfer in Bezug auf einen Kanal vorne links, einen Kanal vorne rechts, einen Kanal hinten links und einen Kanal hinten rechts ist.

12. Audiocodec-Controller nach Anspruch 5, wobei der Mehrkanalaudiodatentransfer ein 6-Kanal-Datentransfer in Bezug auf einen Kanal vorne links, einen Kanal vorne rechts, einen Kanal hinten links, einen Kanal hinten rechts, einen Vorne-Mitte-Kanal und einen Subwoofer-Kanal ist.

13. Audiocodec-Controller nach Anspruch 5, wobei der Mehrkanalaudiodatentransfer einen Transfer von Rahmen mit Zeitschlitzen enth�lt und jedem Kanal einer der Zeitschlitze zugewiesen ist.

14. Audiocodec-Controller nach Anspruch 1, betreibbar in wenigstens zwei verschiedenen Betriebsmoden.

15. Audiocodec-Controller nach Anspruch 14, wobei die wenigstens zwei Betriebsmoden verschiedene Datentransfermoden des Datentransfers zu dem Audiocodec betreffen.

16. Audiocodec-Controller nach Anspruch 15, wobei sich die Datentransfermoden in der Anzahl unterst�tzter Audiokan�le unterscheiden.

17. Audiocodec-Controller nach Anspruch 16, wobei die Datentransfermoden einen 2-Kanal-Datentransfermodus, einen 4-Kanal-Datentransfermodus und einen 6-Kanal-Datentransfermodus enthalten.

18. Audiocodec-Controller nach Anspruch 16, wobei der Datenpuffer eingerichtet ist zum Puffern der Daten, die von dem externen Speicher empfangen worden sind, in wenigstens zwei verschiedenen Konfigurationen, wobei jede Konfiguration eine der wenigstens zwei verschiedenen Datentransfermoden betrifft.

19. Audiocodec-Controller nach Anspruch 18, wobei der Datenpuffer eingerichtet ist zum Puffern von Gruppen von Audiodatensamples, wobei die Anzahl von Audiodatensamples in jeder Gruppe der Anzahl unterst�tzter Audiokan�le entspricht.

20. Audiocodec-Controller nach Anspruch 15, wobei sich die Datentransfermoden in den unterst�tzten Transferraten unterscheiden.

21. Audiocodec-Controller nach Anspruch 20, wobei die Datentransfermoden einen vollratigen Modus und einen halbratigen Modus enthalten.

22. Audiocodec-Controller nach Anspruch 20, wobei der Datentransfer zu dem Audiocodec den Transfer von Rahmen enth�lt und sich die unterst�tzten Transferraten in der Anzahl von Rahmen unterscheiden, die verwendet werden, um Audiodaten bez�glich eines Audiosamples zu �bertragen.

23. Audiocodec-Controller nach Anspruch 14, wobei die wenigstens zwei verschiedenen Betriebsmoden Samplingmoden sind.

24. Audiocodec-Controller nach Anspruch 1, wobei der Datenpuffer ein FIFO- Puffer ist.

25. Audiocodec-Controller nach Anspruch 24, wobei der Datentransfer zu dem Audiocodec ein Mehrkanaldatentransfer ist und der FIFO-Puffer eine Vielzahl von Puffereinheiten umfasst, die jeweils Daten bez�glich eines individuellen Kanals puffern.

26. Audiocodec-Controller nach Anspruch 24, wobei der FIFO-Puffer eingerichtet ist zum Puffern von Audiodatensamples, die eine Breite von einem Wort aufweisen.

27. Audiocodec-Controller nach Anspruch 26, wobei der FIFO-Puffer eingerichtet ist, dass auf ihn doppelwortweise zugegriffen wird.

28. Audiocodec-Controller nach Anspruch 1, weiterhin umfassend:

einen Datenpuffercontroller (170) zum Steuern des Datenpuffers, um Daten zu puffern, die von der zweiten Schnittstelleneinrichtung empfangen worden sind.

29. Audiocodec-Controller nach Anspruch 28, wobei der Datenpuffer ein FIFO-Puffer ist.

30. Audiocodec-Controller nach Anspruch 28, weiterhin umfassend:

einen zweiten Datenpuffer (150) zum Puffern von Daten, die von dem Audiocodec �ber die erste Schnittstelleneinrichtung empfangen worden sind,

wobei der Datenpuffercontroller weiterhin eingerichtet ist zum Steuern des zweiten Datenpuffers, um Daten zu puffern, die von der ersten Schnittstelleneinrichtung empfangen worden sind.

31. Audiocodec-Controller nach Anspruch 28, wobei der Datenpuffercontroller eingerichtet ist zum �berpr�fen einer Unterlaufbedingung des Datenpuffers und zum Steuern des Datenpuffers, um nachgef�llt zu werden, wenn die Unterlaufbedingung eintritt.

32. Audiocodec-Controller nach Anspruch 1, verbindbar mit dem externen Speicher �ber einen Datenbus, wobei die zweite Schnittstelleneinrichtung eingerichtet ist zum Agieren als Busmaster-Controller.

33. Audiocodec-Controller nach Anspruch 1, wobei die erste Schnittstelleneinrichtung eingerichtet ist zum Durchf�hren eines Datentransfers zu und von zwei Audiocodecs.

34. Audiocodec-Controller nach Anspruch 33, wobei die Daten�bertragungen von beiden Audiocodecs Rahmen mit Zeitschlitzen enthalten, wobei die Zeitschlitze des Audiodatentransfers von einem der Audiocodecs und die Zeitschlitze des Audiodatentransfers von dem anderen der Audiocodecs orthogonal sind.

35. Audiocodec-Controller nach Anspruch 1, wobei der Datentransfer zu und von dem Audiocodec den Transfer von Rahmen mit Zeitschlitzen zum �bertragen von Audiosampledaten enth�lt und die L�nge der Zeitschlitze gr��er als die L�nge der Audiosampledaten ist.

36. Audiocodec-Controller nach Anspruch 35, wobei die Audiosampledaten innerhalb der Zeitschlitze in den h�chstwertigen Bits �bertragen werden.

37. Audiocodec-Controller nach Anspruch 1, n�mlich ein AC '97-gem��er (AC: Audio Codec) digitaler Controller.

38. Integrierter Schaltkreischip mit einer Audiocodec-Steuerfunktionalit�t, wobei der integrierte Schaltkreischip umfasst:

eine erste Schnittstellenschaltung (140) zum Durchf�hren eines Datentransfers zu und von einem Audiocodec (180, 190);

eine zweite Schnittstellenschaltung (130) zum Durchf�hren eines Datentransfers von einem externen Speicher (100); und

einen Datenpuffer (160) zum Puffern von Daten, die von dem externen Speicher �ber die zweite Schnittstellenschaltung empfangen worden sind,

wobei der integrierte Schaltkreischip weiterhin umfasst:

ein Auffangregister (200) zum Empfangen von Daten von dem Datenpuffer, die von dem Audiocodec angefordert worden sind, und zum tempor�ren Speichern der empfangenen Daten,

wobei die zweite Schnittstellenschaltung verbunden ist, um tempor�r gespeicherte Daten von dem Auffangregister zu empfangen.

39. Audiocodec-Steuerverfahren, umfassend:

Empfangen (1120) von Daten von einem externen Speicher (100);

Puffern (1120) der empfangenen Daten in einem Datenpuffer (160);

Speichern (310) gepufferter Daten tempor�r in einem Auffangregister (200) in �bereinstimmung mit einer Anforderung von einem Audiocodec (180, 190); und

�bertragen (330, 1050) tempor�r gespeicherter Daten von dem Auffangregister zu dem Audiocodec unabh�ngig von einem Betrieb des Datenpuffers.

40. Verfahren nach Anspruch 39, wobei der Schritt des �bertragens tempor�r gespeicherter Daten umfasst:

wenigstens zweimaliges Zugreifen auf das Auffangregister, ohne dass der Datenpuffer aus dem externen Speicher nachgef�llt werden muss.

41. Verfahren nach Anspruch 40, wobei der Schritt des �bertragens von Daten zu dem Audiocodec den Transfer von Rahmen enth�lt und der Schritt des wenigstens zweimaligen Zugreifens auf das Auffangregister umfasst:

�bertragen der tempor�r gespeicherten Daten zu dem Audiocodec in wenigstens zwei Rahmen.

42. Verfahren nach Anspruch 39, wobei der Datentransfer zu dem Audiocodec ein paketorientierter Datentransfer ist, w�hrend der Datentransfer von dem externen Speicher ein audiosampleorientierter Datentransfer ist.

43. Verfahren nach Anspruch 39, wobei der Datentransfer zu dem Audiocodec ein Mehrkanalaudiodatentransfer ist.

44. Verfahren nach Anspruch 43, wobei der Mehrkanalaudiodatentransfer einen Datentransfer in Bezug auf einen Kanal vorne links und einen Kanal vorne rechts enth�lt.

45. Verfahren nach Anspruch 43, wobei der Mehrkanalaudiodatentransfer einen Datentransfer in Bezug auf einen Kanal hinten links und einen Kanal hinten rechts enth�lt.

46. Verfahren nach Anspruch 43, wobei der Mehrkanalaudiodatentransfer einen Datentransfer in Bezug auf einen Vorne-Mitte-Kanal enth�lt.

47. Verfahren nach Anspruch 43, wobei der Mehrkanalaudiodatentransfer einen Datentransfer in Bezug auf einen Subwoofer-Kanal enth�lt.

48. Verfahren nach Anspruch 43, wobei der Mehrkanalaudiodatentransfer ein 2-Kanal-Datentransfer in Bezug auf einen Kanal vorne links und einen Kanal vorne rechts ist.

49. Verfahren nach Anspruch 43, wobei der Mehrkanalaudiodatentransfer ein 4-Kanal-Datentransfer in Bezug auf einen Kanal vorne links, einen Kanal vorne rechts, einen Kanal hinten links und einen Kanal hinten rechts ist.

50. Verfahren nach Anspruch 43, wobei der Mehrkanalaudiodatentransfer ein 6-Kanal-Datentransfer in Bezug auf einen Kanal vorne links, einen Kanal vorne rechts, einen Kanal hinten links, einen Kanal hinten rechts, einen Vorne-Mitte-Kanal und einen Subwoofer-Kanal ist.

51. Verfahren nach Anspruch 43, wobei der Mehrkanalaudiodatentransfer den Transfer von Rahmen mit Zeitschlitzen enth�lt und jedem Kanal einer der Zeitschlitze zugewiesen ist.

52. Verfahren nach Anspruch 39, wobei der Schritt des �bertragens von Daten zu dem Audiocodec in �bereinstimmung mit einem von wenigstens zwei verschiedenen Datentransfermoden durchgef�hrt wird.

53. Verfahren nach Anspruch 52, wobei sich die Datentransfermoden in der Anzahl unterst�tzter Audiokan�le unterscheiden.

54. Verfahren nach Anspruch 53, wobei die Datentransfermoden einen 2- Kanal-Datentransfermodus, einen 4-Kanal-Datentransfermodus und einen 6-Kanal-Datentransfermodus enthalten.

55. Verfahren nach Anspruch 53, wobei der Schritt des Pufferns der empfangenen Daten in dem Datenpuffer umfasst:

Anwenden eines von wenigstens zwei verschiedenen Datenpufferkonfigurationen,

wobei jede Konfiguration einen der wenigstens zwei verschiedenen Datentransfermoden betrifft.

56. Verfahren nach Anspruch 55, wobei der Schritt des Anwendens der Datenpufferkonfigurationen umfasst:

Puffern von Gruppen von Audiodatensamples,

wobei die Anzahl von Audiodatensamples in jeder Gruppe der Anzahl unterst�tzter Audiokan�le entspricht.

57. Verfahren nach Anspruch 39, wobei der Schritt des �bertragens von Daten zu dem Audiocodec in �bereinstimmung mit einem von wenigstens zwei verschiedenen Transferratenmoden durchgef�hrt wird.

58. Verfahren nach Anspruch 57, wobei die Transferratenmoden einen vollratigen Modus und einen halbratigen Modus enthalten.

59. Verfahren nach Anspruch 57, wobei der Datentransfer zu dem Audiocodec den Transfer von Rahmen enth�lt und sich die wenigstens zwei verschiedenen Transferratenmoden in der Anzahl von Rahmen unterscheiden, die verwendet werden, um die Audiodaten in Bezug auf einen Audiosample zu �bertragen.

60. Verfahren nach Anspruch 39, wobei der Datentransfer zu dem Audiocodec ein Mehrkanaldatentransfer ist und der Schritt des Pufferns der empfangenen Daten in dem Datenpuffer umfasst:

Puffern von Daten in Bezug auf jeden einzelnen Kanal in einer separaten Puffereinheit einer Vielzahl von FIFO-Puffereinheiten des Datenpuffers.

61. Verfahren nach Anspruch 39, wobei die gepufferten Daten Audiodatensamples mit einer Breite von einem Wort sind.

62. Verfahren nach Anspruch 60, wobei der Schritt des Pufferns der empfangenen Daten in dem Datenpuffer umfasst:

doppelwortweises Zugreifen auf den Datenpuffer.

63. Verfahren nach Anspruch 39, weiterhin umfassend:

Steuern des Datenpuffers, um eine Unterlaufbedingung des Datenpuffers zu �berpr�fen und den Datenpuffer nachzuf�llen, wenn die Unterlaufbedingung eintritt.

64. Verfahren nach Anspruch 39, eingerichtet zum Durchf�hren eines Datentransfers zu und von zwei Audiocodecs, wobei die Datentransfers von beiden Audiocodecs Rahmen mit Zeitschlitzen enthalten, wobei die Zeitschlitze des Audiodatentransfers von einem der Audiocodecs und die Zeitschlitze des Audiodatentransfers von dem anderen der Audiocodecs orthogonal sind.

65. Verfahren nach Anspruch 39, wobei der Datentransfer zu und von dem Audiocodec den Transfer von Rahmen mit Zeitschlitzen zum �bertragen von Audiosampledaten enth�lt und die L�nge der Zeitschlitze gr��er als die L�nge der Audiosampledaten ist.

66. Verfahren nach Anspruch 65, wobei die Audiosampledaten innerhalb der Zeitschlitze in den h�chstwertigen Bits �bertragen werden.

67. Verfahren nach Anspruch 39, n�mlich zum Steuern von AC '97-gem��en (AC: Audio Codec) Audiocodecs.

Description:
HINTERGRUND DER ERFINDUNG 1. Gebiet der Erfindung

Die Erfindung betrifft allgemein Audiocodec-Controller wie etwa AC '97- Controller (AC: Audio Codec) und insbesondere den Datentransfer zwischen solchen Controllern und einem Audiocodec.

2. Beschreibung des Standes der Technik

Aktuelle Computersysteme wie etwa Personalcomputer sind gew�hnlich mit Audiof�higkeiten ausgestattet und enthalten Soundkarten und Lautsprecher.

PC-Audiohardware (PC: Personal Computer) und Audioanwendungen schreiten schnell fort und es gibt eine Menge faszinierender neuer Anwendungen einschlie�lich 3D-Spielen mit Positionsaudio, DVD-Playback, Internettelefonieren, Spracherkennungssoftware usw. Viele dieser neuen Anwendungen erfordern aufwendige Soundkarten w�hrend andere Anwendungen mit preiswerter Hardware verwendet werden k�nnen.

Viele Motherboards enthalten auf dem Board einen speziellen Soundchip zum Bereitstellen eingebauter Audiof�higkeiten. Andere Motherboards k�nnen eine solche Funktionalit�t bereitstellen, ohne einen speziellen integrierten Schaltkreischip vorsehen zu m�ssen, der all diese Audiosignalverarbeitung durchf�hrt. Stattdessen k�nnen solche Motherboards Schaltkreise gem�� der AC '97-Spezifikation enthalten. Die AC '97-Funktionalit�t kann von einem Chipsatz auf dem Motherboard durchgef�hrt werden, z. B. von einem Southbridge-Bauelement.

Die AC '97-Spezifikation definiert eine Audiocodec-Architektur und eine digitale Schnittstelle, die speziell zur Implementierung einer Audio- und Modem-I/O-Funktionalit�t in Mainstream-PC-Systemen entworfen wurde. In einer solchen Architektur wird eine Schnittstelle bereitgestellt, die es erm�glicht, dass Audiodaten in einem eher preiswerten Zusatzchip verarbeitet werden, der einen Analog-zu-digital-Wandler zusammen mit einigen zus�tzlichen Analogschaltkreisen enth�lt. Die wirkliche Audiodatenverarbeitung wird jedoch von der CPU (Central Processing Unit, zentrale Verarbeitungseinheit) des Computersystems durchgef�hrt. Eine AC '97 Architektur ist in Fig. 1 gezeigt. Das System enth�lt einen Audiocodec- Controller 110, auf den im folgenden auch als Digitalcontroller Bezug genommen wird, und einen Satz von z. B. zwei Codecs 180, 190. Die Codecs 180, 190 k�nnen auf einer Platine oder Karte 120 liegen und es kann einen prim�ren Codec 180 und einen sekund�ren Codec 190 geben. Die Codecs k�nnen Audio-Codecs, Modem-Codecs oder kombinierte Audio/Modem- Codecs sein und beide Codecs 180, 190 k�nnen in einem oder in zwei physikalisch separaten integrierten Schaltkreischips bereitgestellt werden.

Die Codecs 180, 190 f�hren eine Digital-zu-analog-Wandlung und Analog-zu- digital-Wandlung, Mischung und analoge Eingabe/Ausgabe (I/O) f�r Audiozwecke (oder Modemzwecke) durch und funktionieren stets alle Slaves des Audiocodec-Controllers 110. Der Controller ist typischerweise entweder ein PCI-Beschleuniger (PCI: Peripheral Component Interconnect) oder ein Controller, der in einem Core-Logic-Chipsatz integriert daherkommt. Die digitale Verbindung, die den Audiocodec-Controller 110 mit den Codecs 180, 190 verbindet, ist eine bidirektionale serielle TDM-Format-Schnittstelle (TDM: Time Division Multiplexing) mit f�nf Leitungen, die als AC-Link bezeichnet wird. Der AC-Link unterst�tzt Verbindungen zwischen einem einzelnen Audiocodec-Controller 110 und bis zu vier Codecs 180, 190.

Der Audiocodec-Controller 110 ist weiterhin mit dem Hostspeicher 100 des Computersystems verbunden, z. B. mittels eines PCI-Busses. In dem Audiocodec-Controller 110 gibt es jeweilige Schnittstellen-Controller 130, 140 zum Steuern des Datentransfers an beiden Schnittstellen. Das bedeutet, dass der digitale Controller 110 einen Busmaster-Controller 130 und einen AC-Link- Schnittstellen-Controller 140 umfasst.

Wie aus Fig. 1 ersehen werden kann, umfasst der Audiocodec-Controller 110 weiterhin einen Eingabe-FIFO-Puffer (FIFO: First In First Out) 150 und einen Ausgabe-FIFO-Puffer 160, die von einem FIFO-Controller 170 gesteuert werden. Die Puffer 150, 160 speichern Daten in Bezug auf einen der zwei unabh�ngigen Datenstr�me des hereinkommenden und herausgehenden Verkehrs. Das bedeutet, dass der Busmaster-Controller 130 auf den Hostspeicher 100 zugreift, um Audiodaten zu empfangen, die von einem der Codecs 180, 190 ben�tigt werden. Die empfangenen Daten werden in dem Ausgabe-FIFO-Puffer 160 gespeichert und dort dem AC-Link-Schnittstellen- Controller 140 verf�gbar gemacht, um an den Codec 180, 190 gesendet zu werden. Der Eingabe-FIFO-Puffer 150 f�hrt die entsprechende Funktion bez�glich des Datenstroms durch, der seinen Ursprung bei den Codecs 180, 190 hat.

In solchen Audio-Subsystemen k�nnen mehr als zwei Kan�le in Verwendung sein. Insbesondere in 6-Kanal-Konfigurationen kann es separate Audiokan�le f�r vorne links, vorne rechts, hinten links, hinten rechts, vorne Mitte und Subwoofer geben. In solchen F�llen wird die Behandlung des Ausgabe-FIFO- Puffers 160 durch den FIFO-Controller 170 ziemlich schwierig und insbesondere der AC-Link-Schnittstellen-Controller 140 muss mit komplizierten Hardwareschaltungen ausgestattet sein, um auf den Ausgabe- FIFO-Puffer 160 zuzugreifen, wenn er die seriellen Daten f�r den AC-Link erstellt. Dies kann zu signifikanten Schaltkreisentwicklungskosten und Herstellungskosten f�hren.

�BERSICHT �BER DIE ERFINDUNG

Eine verbesserte Audiocodec-Steuertechnik wird bereitgestellt, bei der der Datentransfer insbesondere unter Audio-Mehrkanalbedingungen effizienter und zuverl�ssiger durchgef�hrt werden kann.

In einer Ausgestaltung wird ein Audiocodec-Controller bereitgestellt, der eine erste Schnittstelleneinrichtung umfasst zum Durchf�hren eines Datentransfers zu und von einem Audiocodec, eine zweite Schnittstelleneinrichtung zum Durchf�hren eines Datentransfers von einem externen Speicher und einem Datenpuffer zum Puffern von Daten, die von dem externen Speicher �ber die zweite Schnittstelleneinrichtung empfangen worden sind. Der Audiocodec- Controller umfasst weiterhin ein Auffangregister zum Empfangen von Daten von dem Datenpuffer, die von dem Audiocodec angefordert wurden, und zum tempor�ren Speichern der empfangenen Daten. Die zweite Schnittstelleneinrichtung ist verbunden, um tempor�r gespeicherte Daten von dem Auffangregister zu empfangen.

In einer anderen Ausgestaltung wird ein integrierter Schaltkreischip bereitgestellt, der eine Audiocodec-Steuerfunktionalit�t aufweist. Der integrierte Schaltkreischip umfasst eine erste Schnittstellenschaltung zum Durchf�hren eines Datentransfers zu und von einem Audiocodec, eine zweite Schnittstellenschaltung zum Durchf�hren eines Datentransfers von einem externen Speicher und einen Datenpuffer zum Puffern von Daten, die von dem externen Speicher �ber die zweite Schnittstellenschaltung empfangen worden sind. Der integrierte Schaltkreischip umfasst weiterhin ein Auffangregister zum Empfangen von Daten von dem Datenpuffer, die von dem Audiocodec angefordert worden sind, und zum tempor�ren Speichern der empfangenen Daten. Die zweite Schnittstellenschaltung ist verbunden, um tempor�r gespeicherte Daten von dem Auffangregister zu empfangen.

In einer weiteren Ausgestaltung kann ein Audiocodec-Steuerverfahren bereitgestellt werden. Das Verfahren umfasst das Empfangen von Daten von einem externen Speicher, das Puffern der empfangenen Daten in einem Datenpuffer, das tempor�re Speichern gepufferter Daten in einem Auffangregister in �bereinstimmung mit einer Anforderung von Audiocontroller und das �bertragen tempor�r gespeicherter Daten von dem Auffangregister zu dem Audiocodec unabh�ngig von einem Betrieb des Datenpuffers.

KURZE BESCHREIBUNG DER ZEICHNUNGEN

Die beigef�gten Zeichnungen sind in die Beschreibung eingef�gt und bilden einen Teil derselben zum Zwecke der Erl�uterung der Prinzipien der Erfindung. Die Zeichnungen sind nicht als die Erfindung nur auf die verdeutlichten und beschriebenen Beispiele beschr�nkend zu verstehen, wie die Erfindung gemacht und verwendet werden kann. Weitere Merkmale und Vorteile werden aus der folgenden und genaueren Beschreibung der Erfindung ersichtlich werden, wie in den beigef�gten Zeichnungen verdeutlicht, in denen:

Fig. 1 ein Systemdiagramm ist; das die Komponenten eines herk�mmlichen AC '97-Systems verdeutlicht;

Fig. 2 ein Systemdiagramm ist, das ein AC '97-gem��es System gem�� einer Ausgestaltung verdeutlicht;

Fig. 3 ein Flussdiagramm ist, das den Hauptprozess des Durchf�hrens eines Audio-Out-Datentransfers gem�� einer Ausgestaltung verdeutlicht;

Fig. 4 eine Sequenz von Datenrahmen auf dem AC-Link in einer vollratigen 2-Kanal-Konfiguration verdeutlicht;

Fig. 5 eine Sequenz von Datenrahmen auf dem AC-Link in einer halbratigen 2-Kanal-Konfiguration verdeutlicht;

Fig. 6 eine Sequenz von Datenrahmen auf dem AC-Link in einer vollratigen 4-Kanal-Konfiguration verdeutlicht;

Fig. 7 eine Sequenz von Datenrahmen auf dem AC-Link in einer halbratigen 4-Kanal-Konfiguration verdeutlicht;

Fig. 8 eine Sequenz von Datenrahmen auf dem AC-Link in einer vollratigen 6-Kanal-Konfiguration verdeutlicht;

Fig. 9 eine Sequenz von Datenrahmen auf dem AC-Link in einer halbratigen 6-Kanal-Konfiguration verdeutlicht;

Fig. 10 ein Flussdiagramm ist, das den Prozess des Betriebs eines Audiocodec-Controllers gem�� einer Ausgestaltung verdeutlicht; und

Fig. 11 ein Flussdiagramm ist, das ein Beispiel der FIFO-Behandlung verdeutlicht, die in dem Prozess von Fig. 10 durchgef�hrt wird.

DETAILLIERTE BESCHREIBUNG DER ERFINDUNG

Die verdeutlichten Ausgestaltungen der vorliegenden Erfindung werden unter Bezugnahme auf die Zeichnungen beschrieben werden, in denen gleiche Elemente und Strukturen mit gleichen Bezugzeichen angegeben werden.

Wird nun auf die Zeichnungen und insbesondere auf Fig. 2 Bezug genommen, die ein Audiosystem gem�� einer Ausgestaltung verdeutlicht, so unterscheidet sich das System von dem von Fig. 1 haupts�chlich darin, dass ein Auffangregister ("capture register") 200 im Audio-Out-Datenpfad bereitgestellt wird. Das Auffangregister 200 ist mit dem Ausgabe-FIFO-Puffer 160verbunden, um von dem Puffer Daten zu empfangen, die zuvor von einem der Codecs 180, 190 angefordert worden sind. Weiterhin ist das Auffangregister 200 mit dem AC-Link-Schnittstellen-Controller 140 verbunden, um Daten an den Schnittstellen-Controller 140 zu liefern, die in dem Auffangregister 200 tempor�r gespeichert sind. Somit kann die Bereitstellung des Auffangregisters 200 ohne eine erforderliche Modifikation des FIFO-Controllers 170 eine effiziente Durchf�hrung eines paketorientierten Datentransfers auf dem AC- Link gestatten, obwohl der Ausgabe-FIFO-Puffer 160 noch auf sampleorientierter Basis gesteuert wird. Dies wird aus der detaillierteren Beschreibung unten weiter ersichtlich werden, wo Beispiele von Betriebmoden und Betriebsverfahren in dem Audiocodec-Controller 210 von Fig. 2 gezeigt sind.

Es sind mehrere Konfigurationen des Audio-Subsystems der vorliegenden Ausgestaltung m�glich, um den Audioverkehr als 2-, 4- oder 6-Kanal- Datenstrom durchzuf�hren. In dem 2-Kanal-Modus hat der prim�re Codec 180 zwei Kan�le, w�hrend ein sekund�rer Codec 190 entweder nicht existiert oder sich in einem Leerlaufmodus befindet. In der 4-Kanal-Version kann der prim�re Codec 180 vier Kan�le haben, wobei der sekund�re Codec 190 nicht existiert oder sich im Leerlauf befindet. Alternativ k�nnen der prim�re Codec 180 sowie der sekund�re Codec 190 jeweils zwei Kan�le haben. In entsprechender Weise k�nnen zwei verschiedene 6-Kanal-Versionen existieren: eine, bei der der prim�re Codec 180 zwei Kan�le und der sekund�re Codec 190 vier Kan�le hat, und die andere, bei der der prim�re Codec 180 vier Kan�le und der sekund�re Codec 190 zwei Kan�le hat.

Der Ausgabe-FIFO-Puffer 160 kann in sechs Puffereinheiten unterteilt sein, von denen jede der Speicherung von Daten in Bezug auf einen der m�glichen Audio-Out-Kan�le dient: vorne links, vorne rechts, hinten links, hinten rechts, vorne Mitte und Subwoofer. Alternativ kann der Ausgabe-FIFO-Puffer 160 Daten, die vom Host-Speicher 100 empfangen worden sind, in ziemlich genau derselben Weise speichern, als w�ren die Daten im Host-Speicher 100gespeichert. In der vorliegenden Ausgestaltung speichert der Ausgabe-FIFO- Puffer 160 ein Sample (eine Probe oder Abtastung) f�r jeden Kanal, wobei ein Sample durch ein Wort von 16 Bits dargestellt wird. Da der Audiocodec- Controller 210 der vorliegenden Ausgestaltung 2-, 4- und 6-Kanal- Konfigurationen unterst�tzt, ist die Anzahl an Kan�len zu jeder Zeit gerade, so dass jeglicher Zugriff auf den Ausgabe-FIFO-Puffer 160 doppelwortweise durchgef�hrt werden kann. Da ein Wort ein Sample repr�sentiert, wird auf den Ausgabe-FIFO-Puffer 160 auf sample-orientierte Weise zugegriffen. Die folgende Tabelle zeigt am Beispiel einer 6-Kanal-Konfiguration die Art des Auffangens von Daten-Samples in dem Host-Speicher 100 und dem Ausgabe- FIFO-Puffer 160:





Bei der Vorbereitung des Datentransfers �ber den AC-Link m�ssen die Samples neu geordnet werden, da die Zuweisung von Samples auf Zeitschlitze in dem seriellen Datenstrom zu den Codecs 180, 190 von einer Mehrkanal-Konfiguration zu einer anderen verschieden sein kann. Ein Beispiel einer entsprechenden Sample-Reihenfolge ist in der Tabelle unten gezeigt:





Wie daraus ersichtlich ist, erwartet der Audio-Busmaster-Controller 130 bei einem gegebenen 2-, 4- oder 6-Kanal-Audiostrom, dass jegliche Sample- Zusammensetzung mit dem Vorne-links-Sample beginnt. Jedoch h�ngt die Sample-Reihenfolge dann von der spezifischen Kanalkonfiguration ab. Durch die Bereitstellung des Auffangregisters 200 kann jedem m�glichen Datenreihenfolgeerfordernis in den verschiedenen Mehrkanalanwendungen leicht gen�ge getan werden und der paketorientierte Datentransfer auf dem AC-Link kann einfach durch Multiplexieren der tempor�r gespeicherten konsistenten Daten hinsichtlich der Zeitschlitze durchgef�hrt werden.

Wird nun zu Fig. 3 �bergangen, so ist der Hauptprozess der Durchf�hrung des Audio-Out-Datentransfers gezeigt. In Schritt 300 empf�ngt der Audiocodec- Controller 210 eine Anforderung von dem prim�ren oder einem (optionalen) sekund�ren Codec 180, 190 nach Audiosamples. Die angeforderten Samples werden dann aus dem Ausgabe-FIFO-Puffer 160 in das Auffangregister 200 gelesen (Schritt 310). Schlie�lich werden die Samples an den Codec im Schritt 330 gesendet.

Wie aus dem Flussdiagramm von Fig. 3 ersehen werden kann, kann es verschiedene Betriebsmoden geben, die die Art und Weise beeinflussen k�nnen, wie die angeforderten Daten an den Codec gesendet werden. Die Betriebsmoden k�nnen ein variabler Sample-Modus, ein Down-Sample-Modus etc. sein. Dar�ber hinaus k�nnen die Betriebsmoden Transfermoden sein, die sich in der Anzahl unterst�tzter Kan�le oder Transferraten unterscheiden. Der Ausgabe-FIFO-Puffer 160 kann dann die Daten, die er vom Host-Speicher 100 empf�ngt, in wenigstens zwei verschiedenen Konfigurationen puffern, wobei jede Konfiguration zu einen der Datentransfermoden geh�rt. Der Ausgabe- FIFO-Puffer 160 kann weiterhin Gruppen von Audiodatensamples puffern, wobei die Anzahl von Audiodatensamples in jeder Gruppe der Anzahl unterst�tzter Audiokan�le entspricht. Zus�tzlich k�nnen die Samplepaare (Doppelw�rter) f�r die Kan�le vorne links/vorne rechts, vorne Mitte/Subwoofer und hinten links/hinten rechts durch Programmierung jeweils gegeneinander ausgetauscht (Swapping) werden.

Da der Audiocodec-Controller 210 der vorliegenden Ausgestaltung in verschiedenen Betriebsmoden betrieben werden kann, enth�lt der in Fig. 3 gezeigte Prozess einen Schritt 320 des Bestimmens des Betriebsmodus, und der Sendeschritt 330 wird abh�ngig von dem bestimmten Modus durchgef�hrt.

In einer anderen Ausgestaltung wird der Betriebsmodus von dem Treiber ganz zu Anfang des Prozesses geladen und konfiguriert. Dar�ber hinaus kann der Schritt 320 des Bestimmens des Betriebsmodus vor dem Schritt 310 des Lesens der angeforderten Samples aus dem Ausgabe-FIFO-Puffer 160 in das Auffangregister 200 durchgef�hrt werden. Dies gestattet es sogar, den Schritt 310 abh�ngig von dem bestimmten Betriebsmodus zu machen.

Ein Beispiel daf�r, wie das Senden von Samples �ber den AC-Link abh�ngig von einem Betriebsmodus durchgef�hrt werden kann, wird nun unter Bezug auf die Fig. 4 bis 9 diskutiert.

In diesen Figuren werden in 2-, 4- und 6-Kanal-Konfigurationen Datentransfermoden angewendet, die sich in den unterst�tzten Transferraten unterscheiden. In dem vollratigen Transfermodus werden alle Samples in einem Rahmen gesendet. In dem halbratigen Transfermodus werden zwei Rahmen verwendet, wobei die Samples f�r vorne links, vorne Mitte und hinten links in einem Rahmen und die Samples f�r vorne rechts, hinten rechts und Subwoofer in dem folgenden Rahmen �bertragen werden. Genauer gesagt verdeutlicht Fig. 4 den Fall einer 2-Kanal-Konfiguration, bei der die Daten im vollratigen Modus �bertragen werden. Fig. 5 ist das entsprechende Diagramm, das den halbratigen Modus verdeutlicht, und die Fig. 6 und 7 bzw. 8 und 9 betreffen die 4-Kanal-Konfiguration bzw. 6-Kanal-Konfiguration.

In dem Beispiel halbratiger Daten�bertragungen wird das Auffangregister 200 aus dem Ausgabe-FIFO-Puffer 160 mit den Audiosamples aller Kan�le der jeweiligen Konfiguration gef�llt. Der AC-Link-Schnittstellen-Controller 140 wird jedoch veranlasst, auf das Auffangregister 200 zweimal zuzugreifen, um die tempor�r gespeicherten Daten in einem Rahmen und dann die verbleibenden Samples in dem folgenden Rahmen zu �bertragen. Das bedeutet, dass das Auffangregister 200 einen paketorientierten Datentransfer �ber den AC-Link unabh�ngig von dem Betrieb des Ausgabe-FIFO-Puffers 160 erm�glicht.

In der vorliegenden Ausgestaltung gestattet der AC-Link-Schnittstellen- Controller 140 weiterhin das Senden von Einwortsamples, d. h. 16-Bit- Samples, �ber den seriellen AC-Link, obwohl die Zeitschlitze 20 Bit breit sind. In diesem Fall werden die 16-Bit-Samples als die 16 h�chstwertigen Bits jedes 20-Bit-Schlitzes �bertragen, wobei die niedrigen Bits bei einlaufenden Daten verworfen und bei Ausgabedaten mit Nullen gef�llt werden. Dar�ber hinaus kann der AC-Link-Schnittstellen-Controller 140, wenn es einen optionalen sekund�ren Codec 190 in dem System gibt, Eingangsschlitze in vollst�ndig orthogonaler Weise zuweisen, was bedeutet, dass keine zwei Datenschlitze am selben Ort auf beiden Codec-Signalen g�ltig sein werden.

Wird nun zu Fig. 10 �bergegangen, so ist eine andere Ausgestaltung des Betriebs des Audiocodec-Controllers 210 gezeigt. In Schritt 1000 �berpr�ft der Controller 210, ob der Codec 180, 190 bereit ist. Ist dies der Fall, so werden die g�ltigen Schlitzanforderungen im Schritt 1010 gespeichert und der Betriebsmodus im Schritt 1020 festgestellt. Es wird dann in Schritt 1030 �berpr�ft, ob Samples in dem Auffangregister 200 vorhanden sind. Sind keine Samples vorhanden, so wird eine FIFO-Behandlungsroutine 1040 zum Nachf�llen des Auffangregisters 200 durchgef�hrt. Schlie�lich werden ein oder mehrere Rahmen an den Codec 180, 190 abh�ngig von dem Betriebsmodus gesendet, der zuvor festgestellt worden ist (Schritt 1050).

W�hrend die FIFO-Behandlungsroutine 1040 in dem Flussdiagramm von Fig. 10 als direkt vor der Sendung der Rahmen durchgef�hrt gezeigt wird, kann die FIFO-Behandlung auch vollkommen unabh�ngig von dem in Fig. 10 gezeigten Prozess durchgef�hrt werden. Dar�ber hinaus kann die FIFO- Behandlungsroutine eine Pufferunterlaufregelung (Pufferunterschreitungsregelung, "under-run policy") enthalten, die garantiert, dass existierende Daten gehalten werden, bis die neuen Daten verf�gbar sind. Somit ist f�r jedes neue Paket, das von dem Codec 180, 190 angefordert wird, ein definierter und stabiler Datenstatus f�r den Codec ohne jegliche Datenverf�lschung und Inkonsistenz erzielbar.

Fig. 11 zeigt ein Beispiel einer FIFO-Behandlungsroutine. In Schritt 1100 bestimmt der FIFO-Controller 170, ob der Ausgabe-FIFO-Puffer 160 in eine Unterlaufbedingung eingetreten ist. Ist dies der Fall, so fordert der Busmaster- Controller 130 neue Daten vom Host-Speicher 100 an (Schritt 1110), und die angeforderten Daten werden in Schritt 1120 empfangen.

W�hrend die Erfindung in Bezug auf physikalische Ausgestaltungen, die in �berreinstimmung damit konstruiert worden sind, beschrieben worden ist, wird Fachleuten ersichtlich sein, dass zahlreiche Modifikationen, Variationen und Verbesserungen der vorliegenden Erfindung im Lichte der obigen Lehren und innerhalb des Umfangs der beigef�gten Anspr�che gemacht werden k�nnen, ohne von der Idee und dem beabsichtigten Umfang der Erfindung abzuweichen. Zus�tzlich sind solche Bereiche, in denen davon ausgegangen wird, dass sich Fachleute auskennen, hier nicht beschrieben worden, um die hierin beschriebene Erfindung nicht unn�tig zu verschleiern. Es ist demgem�� zu verstehen, dass die Erfindung nicht durch die spezifisch verdeutlichten Ausgestaltungen, sondern nur durch den Umfang der beigef�gten Anspr�che beschr�nkt ist.