(57)【要約】  ＦＩＦＯ（１２）に書き込まれるデータを読み取る際にこうむるジッタの量を、ＦＩＦＯを読み取りクロック・パルスによって周波数ｘでクロッキングすることによって削減することが可能であり、そのとき、ｘは整数であり、ｆｎは、データを書き込むようメモリがクロッキングされる周波数である。読み取りアドレスをＦＩＦＯにｆｎ程度の周波数で入力して、メモリが読み取りクロッキング・パルスによってクロッキングされる場合に読み取って連続した位置に記憶されているサンプルの読み取りを可能にするよう、メモリにおいて連続した位置を識別する。少なくとも１つの連続した読み取りアドレスの持続時間は、メモリ容量を所定の閾値未満に維持するようメモリ利用度ステータスに応じて改変される。
2007524893.tif 000002
【特許請求の範囲】
【請求項１】
データをメモリから読み取って、削減されたジッタを達成する方法であって、
連続した読み取りクロック・パルスを前記メモリにｘｆｎの周波数で入力する工程を備え、ｘは整数であり、ｆｎは、データを書き込むよう前記メモリがクロッキングされる周波数であり、
更に、連続した読み取りアドレスを前記メモリにｆｎ程度の周波数で入力して、前記メモリが読み取りクロッキング・パルスによってクロッキングされる場合に読み取って連続した位置に記憶されているサンプルの読み取りを可能にするよう前記メモリにおいて連続した位置を識別する工程と、
少なくとも１つの連続した読み取りアドレスの持続時間をメモリ利用度ステータスに応じて改変して、メモリ容量を少なくとも１つの所定の閾値内に維持する工程とを備えることを特徴とする方法。
【請求項２】
請求項１記載の方法であって、前記少なくとも１つの読み取りアドレスの前記持続時間を延長して非整数サンプルの読み取りを繰り返す工程を更に備えることを特徴とする方法。
【請求項３】
請求項２記載の方法であって、２つ以上の読み取りアドレスの持続時間を延長して２つ以上の非整数のサンプルの読み取りを繰り返す工程を更に備えることを特徴とする方法。
【請求項４】
請求項１記載の方法であって、前記少なくとも１つの読み取りアドレスの前記持続時間を短縮して、非整数のサンプルの読み取りを飛ばす工程を更に備えることを特徴とする方法。
【請求項５】
請求項４記載の方法であって、２つ以上の読み取りアドレスの持続時間を短縮して、２つ以上の非整数サンプルの読み取りを飛ばす工程を更に備えることを特徴とする方法。
【請求項６】
請求項１記載の方法であって、前記連続した読み取りクロック・パルスを前記メモリに前記周波数ｆｎの４倍の周波数で入力する工程を更に備えることを特徴とする方法。
【請求項７】
記憶されているデータを読み取って、削減されたジッタを達成するシステム装置であって、
データが書き込まれ、データが読み取られるメモリと、
連続した読み取りクロック・パルスを前記メモリにｘｆｎの周波数で入力するクロックとを備え、ｘは整数であり、ｆｎは、データを書き込むよう前記メモリがクロッキングされる周波数であり、
更に、連続した読み取りアドレスを前記メモリにｆｎ程度の周波数で入力して、前記メモリが読み取りクロッキング・パルスによってクロッキングされる場合に読み取って連続した位置に記憶されているサンプルの読み取りを可能にするよう前記メモリにおいて連続した位置を識別し、かつ、少なくとも１つの連続した読み取りアドレスの持続時間をメモリ利用度ステータスに応じて改変して、メモリ容量を少なくとも１つの所定の閾値内に維持するメモリ・アドレス生成器を備えることを特徴とするシステム装置。
【請求項８】
請求項７記載の装置であって、前記メモリ・アドレス生成器が、前記少なくとも１つの読み取りアドレスの前記持続時間を延長して非整数サンプルの読み取りを繰り返すことを特徴とする装置。
【請求項９】
請求項８記載の装置であって、前記メモリ・アドレス生成器が、２つ以上の読み取りアドレスの持続時間を延長して２つ以上の非整数のサンプルの読み取りを繰り返すことを特徴とする装置。
【請求項１０】
請求項７記載の装置であって、前記メモリ・アドレス生成器が、前記少なくとも１つの読み取りアドレスの前記持続時間を短縮して、非整数のサンプルの読み取りを飛ばすことを特徴とする装置。
【請求項１１】
請求項１０記載の装置であって、前記メモリ・アドレス生成器が、２つ以上の読み取りアドレスの持続時間を短縮して、２つ以上の非整数サンプルの読み取りを飛ばすことを特徴とする装置。
【請求項１２】
請求項７記載の装置であって、システム・クロックが、連続した読み取りクロック・パルスを前記メモリに前記周波数ｆｎの４倍の周波数で入力することを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、読み取りクロックと書き込みクロックが非同期である場合に、データをメモリ装置から読み取り、データをメモリ装置に後に書き込む際のジッタを削減する手法に関する。
【背景技術】
【０００２】
先入先出装置（ＦＩＦＯ）などの今日のディジタル・メモリは、システム・クロックによって生成される周期的なクロック信号に応じて動作する。ＦＩＦＯ装置では、連続した位置へのデータの書き込みは、連続した書き込みクロック・パルスを受信すると行われる。同様に、データによって先行にして書き込まれた連続した位置の各々からのデータの読み取りは、連続した読み取りクロック・パルスを受信すると行われる。読み取りクロックと書き込みクロックとの間の動的な位相差及び周波数差によってジッタが発生する。読み取りクロック周波数を増加させることによってジッタの発生を削減することになる。しかし、ＦＩＦＯなどの装置では、読み取りクロック周波数を増加させることは、書き込みクロック周波数における相当する増加なしで装置の読み取り速度が速すぎることにつながり得る。書き込みクロック周波数を増加させることによって、この課題を解決することになる。しかし、書き込みクロック周波数を増加させることは常にできるものでない。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
よって、上記欠点を解決する、メモリ装置に書き込まれたデータをアクセスする手法に対する必要性が存在する。
【課題を解決するための手段】
【０００４】
簡潔に述べれば、好ましい実施例によって、ジッタを削減して、メモリ装置からデータを読み取る方法を備える。方法は、ｘｆｎの周波数で入力される連続した読み取りクロック・パルスを入力すると開始され、そのとき、ｘは整数であり、ｆｎは書き込みクロック周波数である。各々が特定の持続時間の、ひと続きの読み取りアドレスをメモリに入力して、データが読み取られる連続した相当する位置を識別する。ひと続きのアドレスのうちの少なくとも１つの持続時間は、データが読み取られる速度に応じて非整数サンプルを飛ばすか繰り返すよう改変して、そのデータが読み出される速度があまり速くないようにする一方で、ジッタを削減して、メモリの読み取りを行うことを可能にする。
【発明を実施するための最良の形態】
【０００５】
〔実施例〕
図１は、データの読み取りと書き込みとを同時に行うよう動作する先入先出型のメモリ１２から構成されるメモリ回路１０を表す。ＦＩＦＯ１２は、記憶するデータを受け取る（書き込む）書き込みデータ入力１４と、書き込みアドレスを受け取る書き込みアドレス・バス１６とを有する。書き込みアドレス・バス１６上で受け取られる各書き込みアドレスは、書き込みデータ入力１４に存在するデータを受け取るよう、ＦＩＦＯ１２における相当する記憶位置を規定する。ＦＩＦＯ１２は、周期的なクロック・パルスを受信するとデータを相当する記憶位置に書き込む一方、ＦＩＦＯは、書き込みイネーブル信号を所定の論理状態で、書き込みイネーブル入力１９で受信する。実際には、書き込みクロック・パルスは周波数ｆｎを有する。
【０００６】
ＦＩＦＯ１２は、アドレスが読み取りアドレス・バス２４上に存在する記憶位置から読み取られるデータをＦＩＦＯが出力する読み取りデータ出力２２を有する。ＦＩＦＯ１２は、読み取りクロック入力２４で受信される周期的な読み取りクロック・パルスを受信すると相当する記憶位置から読み取る一方、ＦＩＦＯは読み取りイネーブル信号を所定の論理状態で、読み取りイネーブル入力２８で受信する。システム・クロック２５が読み取りクロック・パルスをＦＩＦＯ１２に供給する一方、マルチビット・カウンタ３０は読み取りアドレスを生成する。
【０００７】
本願の原理の一特徴によれば、マルチビット・カウンタ３０は、ＦＩＦＯ１２に入力される連続した読み取りアドレスの少なくとも１つの持続時間を、ＦＩＦＯ調節論理ブロック３２によって判定される、ＦＩＦＯのファイル利用度ステータスによって変更する。ブロック３２は、ＦＩＦＯメモリ１２の利用度をＦＩＦＯからのファイル利用度信号に応じて判定する。これに応じて、ブロック３２はマルチビット・カウンタ３０を制御するようクロック・イネーブル信号を供給し、マルチビット・カウンタ３０は同様に、ジッタを削減するよう、ＦＩＦＯ１２を読み取る速度を書き込む速度に対して判定する。
【０００８】
ＦＩＦＯの読み取りクロック周波数を増加させることによってジッタの発生、すなわち、連続した読み取り間の、サンプル値における不確実性が削減されることになる。しかし、読み取りクロックを増加させることは、ＦＩＦＯの読み取り速度が速すぎることにつながり得る。すなわち、読み取りクロック周波数が書き込みクロック周波数を超えることによって、ＦＩＦＯのデータがなくなり、無効な出力データにつながることをもたらし得る。逆に、書き込みクロック周波数が読み取りクロック周波数を超えることによって通常、ＦＩＦＯが充填される速度が速すぎることをもたらす。従来は、読み取りクロック周波数と書き込みクロック周波数との差異の管理では、ＦＩＦＯから読み取られるサンプル全部を繰り返すか飛ばし、完全なジッタ・サンプルを出力データに付加することが余儀なくされていた。
【０００９】
従来技術のジッタ管理手法の欠点がよりよく分かるよう、読み取りクロック・パルスと書き込みクロック・パルスとの同期がとれているＦＩＦＯメモリのタイミング図群を表す図２を参照することとする。図２の行（ａ）に見られるように、書き込みクロック・パルス周期は１／ｆｎである。（行（ｂ）に示す）入力データ・ストリームが、図２の行（ａ）における４番目の書き込みクロック・パルスによって状態において変化することとする。ＦＩＦＯの書き込みイネーブル入力が所定の論理レベルに留まる一方、ＦＩＦＯは、連続した記憶位置に入力ストリームのサンプルを、連続した書き込みアドレスを受け取ると書き込む。読み取りイネーブル信号を所定の論理レベルで受信すると、ＦＩＦＯは、アドレスがＦＩＦＯ読み取りアドレス入力に存在する記憶位置に記憶されているサンプルを読み出す。図２の行（ｅ）は、図２の行（ｆ）上に存在する読み取りアドレスに相当する記憶位置の各々でのＦＩＦＯから読み取られるデータを表す。読み取りクロック信号と書き込みクロック信号との同期がとられた状態に留まっている限り、繰り返すことも飛ばすことも必要でない。
【００１０】
前述のように、書き込みクロック周波数が読み取りクロック周波数を超えることによって、ＦＩＦＯ１２を充填する速度が速すぎることをもたらし得る。この問題がないようにする１つの手法は、図３に示す、ＦＩＦＯの読み取り中にサンプルを廃棄するか飛ばすことを必要とする。図３の行（ａ）はＦＩＦＯから読み取られるデータのストリームを表す一方、図３の行（ｂ）はＦＩＦＯに入力されるひと続きの読み取りアドレスを表す。書き込みクロック周波数が読み取りクロック周波数を超える場合、廃棄すること又は飛ばすことを行わなければ読み出されることになるサンプルを廃棄するか飛ばすことによって「追いつく」必要性が存在する。例として、図３の行（ｂ）の記憶位置ｎ＋３でのサンプル値が飛ばされる。１サンプル分飛ばすことによって、クロック・サイクル全体分ジッタが増加する。逆に、読み取りクロック周波数が書き込みクロック周波数を超えることによって、ＦＩＦＯを読み取る速度が速すぎることをもたらし得る。この問題がないようにするには通常、ＦＩＦＯが少なくとも１つのサンプルの読み取りを繰り返すことを必要とする。図４の行（ａ）はＦＩＦＯから読み取られるデータのストリームを表す一方、図４の行（ｂ）は、少なくとも１つのアドレス（ｎ＋１）を繰り返してサンプルの読み出しを減速させた、ひと続きの読み取りアドレスのＦＩＦＯへの入力を表す。サンプルを繰り返すことによって、１つのクロック周期全体分ジッタが増加する。
【００１１】
上記のように、ＦＩＦＯ調節論理ブロック３２は、クロック・イネーブル信号のマルチビット・カウンタ３０への送信のタイミングを変更し、それによってマルチビット・カウンタが読み取りアドレスの持続時間を変更して、必要に応じて非整数サンプルを飛ばさせるか繰り返させる。図１における表に見られるように、ＦＩＦＯメモリ１２の利用度が許容できる（すなわち、ＦＩＦＯメモリから読み取る速度とＦＩＦＯメモリに書き込む速度がほぼ同じである状態に留まる）場合、ＦＩＦＯ調節論理ブロック３２は、クロック・イネーブル信号をマルチビット・カウンタ３０に４つのクロック・サイクル毎に送信する！ＦＩＦＯＡｄｊｕｓｔＳｅｑｕｅｎｃｅ（ＦＩＦＯ調節シーケンス）を実行する。サンプルを飛ばすことも繰り返すこともこのシーケンス中には行われないことになる。ＦＩＦＯメモリ１２が空き状態になったかほぼ空き状態になったということをＦＩＦＯ調節論理ブロック３２が検出する場合、ブロックは、ＦＩＦＯＡｄｊｕｓｔＳｅｑｕｅｎｃｅ＆Ｒｅｐｅａｔ（調節シーケンス及び繰り返し）を開始して、マルチビット・カウンタにクロック・イネーブルをシステム・クロック生成器２５からの第１のクロックの後に供給する。このことによって、非整数のサンプルが繰り返される。逆に、ＦＩＦＯメモリが満杯であるかほぼ満杯であるということをＦＩＦＯ調節論理ブロック３２が検出する場合、ブロックは、ＦＩＦＯＡｄｊｕｓｔＳｅｑｕｅｎｃｅ＆Ｄｒｏｐ（調節シーケンス及び廃棄）を開始し、その間にはクロック・イネーブルをマルチビット・カウンタ３０に３番目のクロック・サイクル後に送信し、それによって非整数のサンプルが飛ばされることになる。
【００１２】
そのようなジッタの削減が上記手法によって達成される方法は、図５を参照することによって最も良く理解することが可能である。図５の行（ａ）は、書き込みクロック周波数の整数の倍数ｘで生成される連続した読み取りクロック・パルスを表す。すなわち、読み取りクロック周波数はｘｆｎに等しい。図示した実施例では、ｘは４に等しいが、他の整数値ｘも考えられる。ＦＩＦＯ１２が読み取りクロック・パルスをシステム・クロック２５から周波数ｘｆｎで受信する一方、マルチビット・カウンタ３０は読み取りアドレスをＦＩＦＯ１２にずっと遅い速度、通常、ｆｎ程度の周波数で入力する。そのような状況下では、ＦＩＦＯは同じサンプルをｘ回出力することになる。
【００１３】
データの読み取りと書き込みとの間で同期がとれていないことを補正するよう、マルチビット・カウンタ３０は、非整数のサンプルをＦＩＦＯ１２の利用度ステータスによって飛ばすか繰り返して、オーバフロー又はアンダフローを阻止し、よって、ＦＩＦＯ容量を所定の閾値限度によって維持するよう１つ又は複数のアドレスの長さを変更する。行（ｃ）に示すように、少なくとも１つの読み取りアドレス（例えば、読み取りアドレス（ｎ＋２））の持続時間（長さ）を、図５の行（ｂ）に示すように、非整数のサンプル（例えば、１／４サンプル）を飛ばすよう、飛ばして、ＦＩＦＯ１２からのデータの読み取りがデータの書き込みに対して遅延している場合に補正する。図５の行（ｅ）を参照すれば、少なくとも１つの読み取りアドレス（例えば、読み取りアドレス（ｎ＋２））の持続時間を、図５の行（ｄ）に示すように、非整数のサンプル（例えば、１／４サンプル）を繰り返すよう延長して、ＦＩＦＯ１２からのデータの書き込みがデータの読み取りに対して遅延している場合に補正する。上記のようにして読み取りクロック周波数を増加させることによって、サンプルを繰り返すか飛ばすことによってもたらされるジッタは、図３及び図４に示した従来技術の手法による場合におけるクロック・パルス全体ではなく、クロック・サイクルの１／ｘとなる。この手法は、非整数のサンプルしか飛ばさず、非整数のサンプルしか繰り返さないので、そのように飛ばすことや繰り返すことはより頻繁に行われることを要する可能性があることになるが、それは各サイクル中に行われる補正が少ないからである。
【００１４】
上記では、ＦＩＦＯなどのメモリ装置にデータを書き込むことと、そのようなメモリ装置からデータを後に読み取ることに関してジッタを削減する手法を記載している。
【図面の簡単な説明】
【００１５】
【図１】ジッタを削減して、データの読み出しを可能にする、本願の原理の好ましい実施例によるメモリ回路の構成略図である。
【図２】読み取りクロック・パルスと書き込みクロック・パルスとの同期がとれていることによってデータ・サンプルが飛ばされないＦＩＦＯメモリのタイミング図群である。
【図３】読み取りクロック・パルスと書き込みクロック・パルスが非同期であり、データ・サンプルを飛ばすことを必要とするＦＩＦＯメモリのタイミング図群である。
【図４】読み取りクロック・パルスと書き込みクロック・パルスが非同期であり、データ・サンプルを繰り返すことを必要とするＦＩＦＯメモリのタイミング図群である。
【図５】読み取りクロック周波数が書き込みクロックの倍数であり、本願の原理によって、非整数サンプルを必要に応じて飛ばすか繰り返して、ＦＩＦＯの読み取り速度が速すぎないようにする、図１のＦＩＦＯメモリのタイミング図群である。
【図１】
2007524893.tif 000003
2007524893.tif 000004
【図５】
2007524893.tif 000005