糾錯裝置的製作方法
2023-10-08 04:54:04
專利名稱:糾錯裝置的製作方法
技術領域:
本發明涉及進行伴隨於糾正在編碼數據中發生的錯誤的處理的裝置,特別涉及對由2維構成的塊碼進行高速糾錯的裝置。
在磁碟和光碟等作為記錄媒體的數據存儲裝置中,會由於記錄媒體上的劃傷和汙漬而引起數據錯誤。為了使恢復這樣的錯誤數據成為可能,在將數據記錄到記錄媒體上時,把用於糾錯的代碼(以下稱之為「糾錯碼」或「奇偶校驗數據」)附加到數據中,在進行再現時利用糾錯碼檢測出錯誤的數據,並進行將其糾正為正確數據的處理。在這種附加糾錯碼及糾錯處理(以下將這兩種處理合稱為「伴隨糾錯的處理」)中,為了提高其糾錯能力,在大多數系統中採用Reed-Solomon碼作為糾錯碼,並採用乘積碼作為數據的構成方法。
圖1示出了乘積碼。對於由k1×k2個字節構成的信息數據,在行方向上(以下稱為「C1序列」)上附加m1位元組的奇偶校驗數據,在列方向上(以下稱為「C2序列」)上附加m2位元組的奇偶校驗數據。在由這些信息數據、C1個奇偶校驗數據及C2個奇偶校驗數據構成了一個作為糾錯最大單位的數據塊時,其字節數為n1×n2位元組。通常,作為將信息數據和奇偶校驗數據存儲到DRAM等存儲器中的方法,使C1序列中的存儲器地址加1以便於進行存儲。由此,構成C1序列的代碼串的數據被存儲到地址連續的存儲區域中,但構成C2序列的代碼串的數據則被存儲到地址不連續的存儲區域中。構成乘積碼的各個代碼被簡稱為「數據」。
圖2示出了與C1代碼串對應的糾錯流。首先對第1行的代碼串進行糾錯。接著對第2行的代碼串進行糾錯。對全部n2行重複這樣的操作。即,在列方向上逐行進行掃描該行中的全部數據並進行糾錯的操作。所謂「掃描」就是在從存儲區域中讀出作為錯誤檢測和糾正的對象的數據時的讀出順序。並且,在「錯誤檢測」中不包含所謂的糾錯處理,但在「糾錯」中包含作為其前置處理的錯誤檢測。
圖3示出了與C2代碼串對應的糾錯流。首先對第1列的代碼串進行糾錯。接著對第2列的代碼串進行糾錯。對全部n1列重複這樣的操作。即,在行方向上逐列進行掃描該列中的全部數據並進行糾錯的操作。
圖4是沿著上述流向進行糾錯的現有糾錯裝置的構成示意圖。其中,d1到d100是100位元組的信息數據,p1到p10是10位元組的奇偶校驗數據,並且這些數據構成了1個代碼串。
從存儲器中讀出這些信息數據及奇偶校驗數據並順序輸入到出錯位生成裝置900中。出錯位生成裝置900在輸入一個數據時進行預定的運算,到完成了全部輸入構成1個代碼串的信息數據d1~d100和奇偶校驗數據p1~p10時為止,生成10個出錯位。在這10個出錯位中存在非零數的情況下,由於在該代碼串中發生了錯誤,所以錯誤位置·錯誤數值運算裝置901利用這些出錯位計算出錯誤位置和錯誤數值。其中,錯誤位置是表示代碼串中的第幾個數據是錯誤數據的信息,錯誤數值表示錯誤的大小。最後,錯誤數據更新裝置902通過這些錯誤位置和錯誤數值,從存儲器中讀出該代碼串中的錯誤數據,並將糾正後的數據回寫到原來的位置上。在每個代碼串中重複上述操作。
如上所述,現有的糾錯裝置通過在對C1序列進行逐行掃描和糾錯時,對C2序列進行逐列掃描和糾錯,進行對一個數據塊的全部代碼串的糾錯。
但是,隨著最近以光碟驅動器裝置為代表的數據存儲裝置對處理速度高速化的要求越來越嚴格,現有的糾錯裝置適應這樣的要求是非常困難的。
為了滿足這樣的嚴格要求,雖然考慮到在1臺數據存儲裝置內並列設計多個糾錯裝置,卻過度增大了電路規模而顯著降低了性能價格比。
本發明鑑於上述問題,其目的是提供以較小的電路規模高速執行伴隨於糾錯的處理的糾錯裝置。
為了達到上述目的,根據本發明的第一項發明,一種反覆執行伴隨於對構成R行L列的塊碼的行方向及列方向的代碼串糾錯的運算的糾錯裝置,其特徵在於,包括存儲裝置,用於存儲所述塊碼;運算裝置,用於以所述塊碼的1行或1列代碼串為單位進行誤碼糾正所需要的運算;傳輸裝置,具有行方向傳輸部件,用於在R1為大於2小於R的整數時,對R行分別按順序反覆進行如下操作讀出存儲在所述存儲裝置中的塊碼的R1行代碼串並將其傳輸到所述運算裝置中,
所述行方向傳輸部件在L1為大於2小於L的整數時,一邊在行方向上只移位L1個代碼,一邊反覆進行R1行L1列傳輸所述R1行L1列傳輸是指按順序對所述R1行中的各行進行連續讀出並列的L1個代碼並將其傳輸到所述運算裝置中;所述運算裝置在代碼是從所述行方向傳輸部件傳送來的情況下,對傳送來的每L1個代碼並列進行對所述R1行代碼串的所述運算,來構成與所述R1行不同行的代碼串。
由此,行方向上的糾錯是對多個代碼串並列進行並在行方向上分割多行代碼串,並使得到的多個小數據塊分別按照Z字形掃描順序進行糾錯。即,按照一邊換行一邊只對各行的一部分代碼反覆掃描的順序並列地進行糾錯,因此與單純的一邊換行一邊對各行全部代碼反覆掃描的並列處理相比,雖然需要以相同的速度進行掃描和糾錯,但降低了輸入到各行的糾錯電路中的代碼的平均輸入速度,並縮小了每行的糾錯電路中所必需的隊列緩衝器等的電路規模。而且,由於各行的掃描在同一行中是連續的並且以編碼為對象,所以在塊碼被存儲在具有2維地址的DRAM等存儲區域中的情況下,可以對同一行地址中的連續列地址進行訪問,從而使高速掃描成為可能。
並且,根據本發明的第2項發明,在本發明的第1項發明的糾錯裝置中,所述塊碼為乘積碼,在構成所述塊碼的行方向及列方向的代碼串中分別包含信息代碼和糾錯碼,所述運算裝置包括用於以1行或1列代碼串為單位,檢測是否存在誤碼的錯誤檢測裝置,和用於在通過所述錯誤檢測裝置檢測出存在誤碼的情況下,將與該誤碼相當的所述存儲裝置中的代碼重寫成糾正後的值的誤碼更新裝置,所述運算裝置在代碼是從所述行方向傳輸部件傳送來的情況下,對傳送來的每L1個代碼並列進行對所述R1行代碼串的所述運算,來構成與所述R1行不同行的代碼串。
由此,由於依據本發明的糾錯裝置能夠適用於對乘積碼糾錯中的行方向上的錯誤檢測,從而提高了光碟等的讀出裝置及數據通信中的接收裝置等執行對接收的乘積碼進行糾錯的裝置的錯誤檢測速度。
並且,根據本發明的第3項發明,在本發明的第2項發明的糾錯裝置中,在所述存儲裝置中,屬於所述塊碼同一行的代碼被存入具有連續地址的存儲區域中,所述行方向傳輸部件從所述存儲裝置的具有連續地址的存儲區域中連續讀出所述L1個代碼。
由此,為了從存儲裝置中讀出屬於同一行的代碼,增加輸出到存儲裝置中的地址,從而縮短了從存儲裝置中讀出的時間。
並且,根據本發明的第4項發明,在本發明的第3項發明的糾錯裝置中,所述存儲裝置為動態隨機存取存儲器,所述行方向傳輸部件以頁面模式從所述存儲裝置中讀出所述L1個代碼。由此,為了從存儲裝置中讀出屬於同一行的代碼,在將1個RAS地址輸出到存儲裝置中之後連續輸出CAS地址,從而謀求DRAM的命中頁的讀出速度高速化。
並且,根據本發明的第5項發明,在本發明的第4項發明的糾錯裝置中,由所述行方向傳輸部件執行的傳輸是通過對所述存儲裝置的直接存儲器訪問而產生的傳輸。
由此,由於作為能夠在錯誤檢測裝置中並列處理的對象的全部代碼被連續從存儲裝置中讀出和輸入,從而避免了在由錯誤檢測裝置對1個較小的數據塊進行錯誤檢測時中斷代碼串的輸入,有效地實現基於流水線處理的糾錯。
並且,根據本發明的第6項發明,在本發明的第2項發明的糾錯裝置中,所述錯誤檢測裝置包括R1個用於進行對1個代碼串的錯誤檢測的單位錯誤檢測部件和用於在從所述行方向傳輸部件傳送代碼的情況下,反覆進行將每次傳送的L1個代碼分別按順序分配到所述R1個單位錯誤檢測部件中的分配部件,所述R1個單位錯誤檢測部件分別相互獨立並且與所述行方向傳輸部件所執行的傳輸並行地進行所述錯誤檢測。
由此,在行方向上的糾錯中,各個單位錯誤檢測裝置以一次L1個代碼的頻率從分配裝置輸入R1次代碼並在從分配裝置向其它單位錯誤檢測裝置輸入代碼期間進行錯誤檢測,從而減輕了對各個單位錯誤檢測裝置要求的處理能力並削減了電路規模。
並且,根據本發明的第7項發明,在本發明的第6項發明的糾錯裝置中,所述R1個單位錯誤檢測部件分別在將來自所述分配部件的L1個代碼反覆進行分配的情況下,在比該重複周期更短的周期內,完成對L1個代碼的錯誤檢測。
由此,在列方向上的糾錯中,對於各個單位錯誤檢測裝置來說,代碼的輸入率(在單位時間內輸入的代碼個數)在處理能力(單位時間內接受錯誤檢測處理的代碼個數)的範圍之內,從而縮小了各個單位錯誤檢測裝置的輸入段中所必需的隊列緩衝器的大小。
並且,根據本發明的第8項發明,在本發明的第7項發明的糾錯裝置中,所述R1個單位錯誤檢測部件分別具有用於對1個代碼串計算出多個出錯位的積和運算電路。
由此,依據本發明的糾錯裝置是適用於Reed-Solomon碼的裝置。
並且,根據本發明的第9項發明,在本發明的第2項發明的糾錯裝置中,在所述L除以所述L1所得的商為D、餘數為E時,所述行方向傳輸部件在一邊在行方向上只移位L1個代碼一邊重複D次所述的R1行L1列傳輸之後,對所述R1行分別按順序對各行連續讀出並列的E個代碼並將其傳輸到所述錯誤檢測裝置中,所述錯誤檢測裝置在進行了預定次數的對每L1個代碼的所述錯誤檢測之後,進行對每E個代碼的所述錯誤檢測。
由此,即使構成乘積碼的行方向上的碼長是一次連續讀出的代碼數L1的倍數,直到各代碼串的結尾,都可以無問題地並列執行糾錯,從而實現了與乘積碼的大小無關的柔性糾錯裝置。
並且,根據本發明的第10項發明,在本發明的第2項發明的糾錯裝置中,所述傳輸裝置包括列方向傳輸部件,用於在L2為大於2小於L的整數時,對L列按順序反覆進行如下操作讀出存儲在所述存儲裝置中的塊碼的L2列代碼串並將其傳輸到錯誤檢測裝置中,所述列方向傳輸部件一邊在行方向上只移位L2個代碼,一邊反覆進行R行L2列傳輸所述R行L2列傳輸是指按順序對各行進行連續讀出並列的L2個代碼並將其傳輸到所述錯誤檢測裝置中,所述錯誤檢測裝置在從所述列方向傳輸部件傳送代碼的情況下,將每次傳送來的L2個代碼並列進行對所述L2列代碼串的錯誤檢測,作為屬於相對應的所述L2列代碼串的代碼。
由此,對多個代碼串並列執行行方向上的糾錯和列方向上的糾錯,而且,按照一邊換行一邊只對各行的一部分代碼反覆掃描的順序執行對列方向的糾錯。這樣,與單純的一邊換行一邊對各行的全部代碼反覆掃描的並列處理相比,雖然需要以相同的速度進行掃描和糾錯,但降低了輸入到各行的糾錯電路中的代碼的平均輸入速度,並縮小了每行的糾錯電路中所必需的隊列緩衝器等的電路規模。
並且,根據本發明的第11項發明,在本發明的第10項發明的糾錯裝置中,所述R1和所述L2為R1=L2=j,所述錯誤檢測裝置包括j個用於進行對1個代碼串的錯誤檢測的單位錯誤檢測部件和用於在從所述行方向傳輸部件傳送代碼的情況下,反覆進行將每次傳送的L1個代碼分別按順序分配到所述j個單位錯誤檢測部件中,並在從所述列方向傳輸部件傳送代碼的情況下,反覆進行將傳送的L2個代碼分別分配到相對應的所述j個單位錯誤檢測部件中的分配部件,所述j個單位錯誤檢測部件分別相互獨立並且與所述行方向傳輸部件和所述列方向傳輸部件所執行的傳輸並行地進行所述錯誤檢測。
由此,作為行方向糾錯中的並列處理對象的行數與作為列方向糾錯中的並列處理對象的列數相等,從而各方向的糾錯中所需要的單位錯誤檢測裝置的個數相同,無論進行哪個方向上的糾錯,都能夠充分利用錯誤檢測裝置的能力。
並且,根據本發明的第12項發明,在本發明的第11項發明的糾錯裝置中,所述j個單位錯誤檢測部件分別在將來自所述分配部件的L1個代碼反覆進行分配的情況下,在比該重複周期更短的周期內,完成對L1個代碼的錯誤檢測,在將來自所述分配部件的L2個代碼中的一個反覆進行分配的情況下,在比該重複周期更短的周期內,完成對所分配的1個代碼的錯誤檢測。
由此,在列方向糾錯中,對於各個單位錯誤檢測裝置來說,代碼的輸入率(在單位時間內輸入的代碼個數)在處理能力(單位時間內接受錯誤檢測處理的代碼個數)的範圍之內,從而縮小了各個單位錯誤檢測裝置的輸入段中所必需的隊列緩衝器的大小。
並且,根據本發明的第13項發明,在本發明的第12項發明的糾錯裝置中,所述R1、所述L1和所述L2為R1=L1=L2=j。
由此,在行方向及列方向中的任一方向上的糾錯中,乘積碼的讀出順序相同,從而使與對存儲裝置的訪問相關的傳輸裝置的控制電路簡單化。並且,根據本發明的第14項發明,一種反覆執行伴隨於對構成R行L列的塊碼的行方向及列方向的代碼串糾錯的運算的糾錯裝置,其特徵在於,包括存儲裝置,用於存儲所述塊碼;運算裝置,用於以所述塊碼的1行或1列代碼串為單位進行誤碼糾正所需要的運算;傳輸裝置,具有列方向傳輸部件,用於在L2為大於2小於L的整數時,對L列按順序反覆進行如下操作讀出存儲在所述存儲裝置中的塊碼的L2列代碼串並將其傳輸到運算裝置中,所述列方向傳輸部件一邊在行方向上只移位L2個代碼,一邊反覆進行對所述R行分別按順序進行的R行L2列傳輸,所述R行L2列傳輸是指對各行連續讀出並列的L2個代碼並將其傳輸到所述運算裝置中;其中所述運算裝置在從所述列方向傳輸部件傳送代碼的情況下,將每次傳送來的L2個代碼並列進行對所述L2列代碼串的所述運算,作為屬於相對應的所述L2列代碼串的代碼。
由此,列方向上的糾錯是對多個代碼串並列進行並在行方向上分割多行代碼串,並使得到的多個小數據塊分別按照Z字形掃描順序進行糾錯。即,按照一邊換行一邊只對各行的一部分代碼反覆掃描的順序並列地進行糾錯,因此與單純的一邊換列一邊對各列全部代碼反覆掃描的並列處理相比,雖然需要以相同的速度進行掃描和糾錯,但降低了輸入到各列的糾錯電路中的代碼的平均輸入速度,並縮小了每行的糾錯電路中所必需的隊列緩衝器等的電路規模。而且,由於各行的掃描在同一行中是連續的並且以編碼為對象,所以在塊碼被存儲在具有2維地址的DRAM等存儲區域中的情況下,可以對同一行地址中的連續列地址進行訪問,從而使高速掃描成為可能。
而且,由於進行行方向糾錯的糾錯裝置所具備的上述特徵構成要素也適用於列方向糾錯,所以能夠得到與行方向糾錯相關的糾錯裝置相同的效果。
而且,為了達到上述目的,根據本發明的第23項發明的一種用於在對從外部的第一裝置接收的代碼進行必要的糾錯後輸出到外部的第二裝置的糾錯裝置,其特徵在於,存儲裝置,具有用於存儲所述代碼的存儲區域;錯誤檢測裝置,用於以預定數目的代碼為單位,檢測是否存在錯誤的代碼;
糾錯裝置,用於以預定數目的代碼為單位,糾正所述存儲裝置中的錯誤代碼;第一傳輸裝置,用於將從所述第一裝置輸出的代碼並行傳輸到所述存儲裝置和所述錯誤檢測裝置中,在將該代碼存入所述存儲裝置的同時,在所述錯誤檢測裝置中進行所述檢測;第二傳輸裝置,用於將通過所述錯誤檢測裝置檢測出存在錯誤代碼的所述預定數目的代碼從所述存儲裝置傳輸到所述糾錯裝置,並在所述糾錯裝置中對該代碼進行所述糾正;第三傳輸裝置,用於將通過所述錯誤檢測裝置或所述糾錯裝置檢測出不存在錯誤代碼或錯誤代碼經過糾正的預定數目的代碼從所述存儲裝置傳輸到所述第二裝置;傳輸控制裝置,用於控制所述第一~第三傳輸裝置,以使其分別排他地執行所述代碼傳輸。
由此,在從第一裝置輸出的代碼被存儲在存儲裝置中的同時接受錯誤檢測處理,從而與現有的在被暫時存入存儲裝置之後讀出並輸入到糾錯裝置中的處理順序相比,在縮短了糾錯所要求的整個處理時間的同時減少了對存儲裝置的訪問次數,並實現了高速的低功耗糾錯裝置。
並且,根據本發明的第24項發明,在本發明的第23項的發明的糾錯裝置中,所述錯誤檢測裝置具有檢測結果記錄部件,用於記錄是否存在錯誤代碼的檢測結果,所述糾錯裝置通過參照記錄在所述檢測結果記錄部件中的檢測結果,控制第二傳輸裝置以便僅僅將檢測出存在錯誤代碼的所述預定數目的代碼從所述存儲裝置中傳輸到所述糾錯裝置中。
由此,在存入存儲裝置的同時進行的錯誤檢測中,對於沒有檢測出錯誤的代碼,跳過了所謂從存儲裝置向糾錯裝置傳輸及通過糾錯裝置糾錯的兩個處理,從而在使糾錯高速化的同時,避免了對存儲裝置的無效訪問。
並且,根據本發明的第25項發明,在本發明的第24項的發明的糾錯裝置中,所述第一裝置按順序反覆輸出構成R行L列塊碼的行方向代碼串,所述塊碼為乘積碼,在構成所述塊碼的行方向及列方向的代碼串中分別包含信息代碼和糾錯碼,
所述糾錯裝置對行方向及列方向的代碼串進行糾錯,在對行方向的代碼串進行糾錯的情況下,通過參照記錄在所述檢測結果記錄部件中的檢測結果,控制第二傳輸裝置以便僅僅將檢測出存在錯誤代碼的行方向的代碼串從所述存儲裝置中傳輸到所述糾錯裝置中。
由此,依據本發明的糾錯裝置能夠用於要求高速執行對乘積碼的糾錯的光碟等讀出裝置和數據通信中的接收裝置中。
並且,根據本發明的第26項發明,在本發明的第25項的發明的糾錯裝置中,所述錯誤檢測裝置將對構成1個塊碼的全部行方向的代碼串的檢測結果存入並記錄到所述檢測結果記錄部件中,所述糾錯裝置在對列方向的代碼串進行糾錯的情況下,通過參照記錄在所述檢測結果記錄部件中的檢測結果,控制第二傳輸裝置以便僅僅將檢測出存在錯誤代碼的構成塊碼的列方向的代碼串從所述存儲裝置中傳輸到所述糾錯裝置中。
由此,在構成1個塊碼的行方向上的全部代碼串中,在沒有檢測出錯誤的情況下,跳過對該塊碼的列方向上的代碼串的錯誤檢測及糾錯處理,從而在從光碟等記錄媒體中連續讀出的塊碼中的錯誤發生率較小的情況下,增大了相應的平均讀出速度。
並且,根據本發明的第27項發明,在本發明的第23項的發明的糾錯裝置中,所述第二傳輸裝置具有行方向傳輸部件,用於在R1為大於2小於R的整數時,對R行按順序反覆進行如下操作從所述存儲裝置中讀出檢測出存在錯誤代碼的R1行代碼串並將其傳輸到所述糾錯裝置中,所述行方向傳輸部件在L1為大於2小於L的整數時,一邊在行方向上只移位L1個代碼,一邊反覆進行R1行L1列傳輸所述R1行L1列傳輸是指按順序對所述R1行中的各行進行連續讀出並列的L1個代碼並將其傳輸到所述糾錯裝置中;所述糾錯裝置在代碼是從所述行方向傳輸部件傳送來的情況下,對傳送來的每L1個代碼並列進行對所述R1行代碼串的糾錯,作為構成與所述R1行不同行的代碼串。
由此,對多個行方向的糾錯不僅被並列執行,而且是通過反覆對較小的數據塊糾錯而進行的,從而與單純的並列執行糾錯的情況相比,雖然以同一速度進行掃描和糾錯,但降低了糾錯裝置中被要求的處理能力並縮小了電路規模。
並且,根據本發明的第28項發明,在本發明的第27項的發明的糾錯裝置中,所述第二傳輸裝置還具有列方向傳輸部件,用於在L2為大於2小於L的整數時,對L列按順序反覆進行如下操作從所述存儲裝置中讀出檢測出存在錯誤代碼的塊碼的L2列代碼串並將其傳輸到所述糾錯裝置中,所述列方向傳輸部件一邊在行方向上只移位L2個代碼,一邊反覆進行R行L2列傳輸,所述R行L2列傳輸是指按順序對所述R行中的各行進行連續讀出並列的L2個代碼並將其傳輸到所述糾錯裝置中,所述糾錯裝置在從所述列方向傳輸部件傳送代碼的情況下,將每次傳送來的L2個代碼並列進行對所述L2列代碼串的糾錯,作為屬於相對應的所述L2列代碼串的代碼。
由此,並列執行行方向上的糾錯和列方向上的糾錯,從而以較小的電路規模實現了高速的糾錯裝置。
並且,根據本發明的第29項發明,在本發明的第23項的發明的糾錯裝置中,由所述第一傳輸裝置執行的從所述第一裝置向所述存儲裝置的代碼傳輸、由所述第二傳輸裝置執行的從所述存儲裝置向所述糾錯裝置的代碼傳輸及由所述第三傳輸裝置執行的從所述存儲裝置向所述第二裝置的代碼傳輸為由對所述存儲裝置的直接存儲器訪問所執行的傳輸,所述傳輸控制裝置在由所述第一~第三傳輸裝置執行的DMA傳輸中,以最高的優先度執行由第一傳輸裝置進行的DMA傳輸,在需要執行由所述第一傳輸裝置執行的DMA傳輸的情況下,在正在執行所述第一~第三傳輸裝置的DMA傳輸中的任一個時,在完成這個執行中的DMA傳輸後執行由所述第一傳輸裝置執行的DMA傳輸在沒有執行所述第一~第三傳輸裝置的DMA傳輸中的任一個時,立刻執行由所述第一傳輸裝置執行的DMA傳輸。
由此,最優先執行對存儲裝置的緩衝,從而在將依據本發明的糾錯裝置用於光碟驅動器等讀出裝置中的情況下,光拾取器可以連續讀出光碟上的代碼。
並且,根據本發明的第30項發明,在本發明的第29項的發明中的糾錯裝置,所述傳輸控制裝置在由所述第一~第三傳輸裝置執行的DMA傳輸中,以最低的優先度執行由第二傳輸裝置進行的DMA傳輸,在需要執行由所述第二傳輸裝置執行的DMA傳輸的情況下,只有在沒有執行所述第一~第三傳輸裝置的DMA傳輸中的任一時,才執行由所述第二傳輸裝置執行的DMA傳輸。
由此,通過考慮到由與對存儲裝置的緩衝並列的錯誤檢測而導致的糾錯高速化和由對多個代碼串進行並列處理而導致的糾錯高速化的高效調度,使對存儲裝置的排他性訪問控制成為可能。
並且,根據本發明的第31項發明,在本發明的第30項的發明的糾錯裝置中,所述糾錯裝置在根據通過所述第二傳輸裝置傳輸的代碼串確定錯誤代碼和糾正後的值之後,在所述傳輸控制裝置的控制下,將所述存儲裝置中所對應的錯誤代碼重寫成糾正後的值,所述傳輸控制裝置只有在不執行所述第一~第三傳輸裝置的DMA傳輸中的任一個時,才執行由所述糾錯裝置進行的錯誤代碼的重寫。
由此,能夠更平衡地對與1個存儲裝置資源相對應的4種訪問進行排他性控制,實現較高性能價格比的糾錯裝置。
而且,為了達到上述目的,根據本發明的第32項發明的一種用於在對從外部的第一裝置接收的代碼進行必要的糾錯後輸出到外部的第二裝置的糾錯裝置,其特徵在於,存儲裝置,具有用於存儲所述代碼的存儲區域;糾錯裝置,用於以預定數目的代碼為單位,檢測錯誤代碼並糾正對應的所述存儲裝置中的錯誤代碼;代碼選擇裝置,用於選擇從所述第一裝置傳送的代碼和從所述存儲裝置傳送的代碼中的任一個,送至所述糾錯裝置中,並在所述糾錯裝置中進行所述檢測和糾正;第一傳輸裝置,用於將從所述第一裝置輸出的代碼並行傳輸到所述存儲裝置和所述代碼選擇裝置中,在將該代碼存入所述存儲裝置的同時,在所述代碼選擇裝置中進行選擇並將其送至糾錯裝置,在所述錯誤檢測裝置中對該代碼進行所述檢測和糾正;第二傳輸裝置,用於將預定數目的代碼從所述存儲裝置傳輸到所述代碼選擇裝置,在所述代碼選擇裝置中選擇該代碼並將其送至所述糾錯裝置中,在所述糾錯裝置中對該代碼進行所述檢測和糾正;第三傳輸裝置,用於將通過所述糾錯裝置檢測出不存在錯誤代碼或錯誤代碼經過糾正的預定數目的代碼從所述存儲裝置傳輸到所述第二裝置;傳輸控制裝置,用於控制所述第一~第三傳輸裝置,以使其分別排他地執行所述代碼傳輸。
由此,從第一裝置輸出的代碼在被存入存儲裝置的同時,通過選擇裝置被輸入到糾錯裝置中,從而與現有的在被暫時存入存儲裝置之後讀出並輸入到糾錯裝置中的處理順序相比,在縮短了糾錯所要求的整個處理時間的同時減少了對存儲裝置的訪問次數,並實現了高速的低功耗糾錯裝置。
並且,根據本發明的第33項發明,在本發明的第32項的發明的糾錯裝置中,所述第一裝置按順序反覆輸出構成R行L列塊碼的行方向代碼串,所述塊碼為乘積碼,在構成所述塊碼的行方向及列方向的代碼串中分別包含信息代碼和糾錯碼,所述第一傳輸裝置,將從所述第一裝置輸出的代碼並行傳輸到所述存儲裝置和所述代碼選擇裝置中,在將該代碼存入所述存儲裝置的同時,在所述代碼選擇裝置中進行選擇並將其送至糾錯裝置,在所述錯誤檢測裝置中對該代碼進行所述檢測和糾正;所述第二傳輸裝置,將所述塊碼的列方向代碼串從所述存儲裝置傳輸到所述代碼選擇裝置,在所述代碼選擇裝置中選擇該代碼並將其送至所述糾錯裝置中,在所述糾錯裝置中對該代碼進行所述檢測和糾正。
由此,實現了能夠適用於要求高速執行對乘積碼的糾錯的光碟等讀出裝置和數據通信中的接收裝置等中的糾錯裝置。
並且,根據本發明的第34項發明,在本發明的第33項的發明的糾錯裝置中,所述糾錯裝置包括用於以行方向或列方向的代碼串為單位,檢測是否存在錯誤代碼的錯誤檢測部件,和用於在通過所述錯誤檢測部件檢測出存在錯誤代碼的情況下,將與該錯誤代碼相對應的所述存儲裝置中的代碼重寫成糾正後的值的代碼更新部件,所述錯誤檢測部件包括用於記錄對通過所述第一傳輸裝置從所述第一裝置傳輸來的行方向代碼串的錯誤檢測結果的行方向檢測結果記錄部件,和用於記錄對通過所述第二傳輸裝置從所述存儲裝置傳輸來的列方向代碼串的錯誤檢測結果的列方向檢測結果記錄部件,所述錯誤代碼更新部件利用記錄在所述行方向檢測結果記錄部件及所述列方向檢測結果記錄部件中的檢測結果,重寫所述存儲裝置中的代碼。
由此,將行方向的糾錯結果和列方向的糾錯結果進行單獨保存,從而利用這些結果進行後續處理的代碼更新裝置等可以以更慢的速度進行處理。
並且,根據本發明的第35項發明,在本發明的第34項的發明的糾錯裝置中,所述錯誤檢測部件在進行行方向的錯誤檢測的情況下,將對構成1個塊碼的全部行方向代碼串的檢測結果存入和記錄到所述行方向檢測結果記錄部件中,在進行列方向糾錯的情況下,通過參照記錄在所述檢測結果記錄部件中的檢測結果,控制第二傳輸裝置以便僅僅將檢測出存在錯誤代碼的構成塊碼的列方向的代碼串從所述存儲裝置中傳輸到所述糾錯裝置中。
由此,在構成1個塊碼的行方向上的全部代碼串中,在沒有檢測出錯誤的情況下,跳過對該塊碼的列方向上的代碼串的錯誤檢測及糾錯處理,增大了相應的平均讀出速度。
並且,根據本發明的第36項發明,在本發明的第35項的發明的糾錯裝置中,所述傳輸控制裝置一邊以構成這些代碼串的部分代碼為單位切換由所述第一傳輸裝置執行的從所述第一裝置向所述代碼選擇裝置的1行代碼串的傳輸和由所述第二傳輸裝置執行的從所述存儲裝置向所述代碼選擇裝置的1列代碼串的傳輸,一邊交互地執行,所述錯誤檢測部件通過以所述部分代碼為單位,交互地切換對由所述第一傳輸裝置從所述第一裝置傳輸來的行方向代碼串的錯誤檢測和對由所述第二傳輸裝置從所述存儲裝置傳輸來的列方向代碼串的錯誤檢測,並列進行對各代碼串的錯誤檢測,並將各自的結果記錄到行方向檢測結果記錄部件及列方向檢測結果記錄部件中,所述錯誤代碼更新部件通過順序參照記錄在所述行方向檢測結果記錄部件和所述列方向檢測結果記錄部件中的檢測結果,順序地進行行方向上的所述存儲裝置中的代碼重寫和列方向上的所述存儲裝置中的代碼重寫。
由此,代碼更新裝置可以按照並列進行行方向糾錯和列方向糾錯的順序進行操作,從而削減了電路規模。
並且,根據本發明的第37項發明,在本發明的第32項的發明的糾錯裝置中,所述第二傳輸裝置還具有列方向傳輸部件,用於在L2為大於2小於L的整數時,對L列按順序反覆進行如下操作從所述存儲裝置中讀出檢測出存在錯誤代碼的塊碼的L2列代碼串並經過所述代碼選擇裝置將其傳輸到所述糾錯裝置中,所述列方向傳輸部件一邊在行方向上只移位L2個代碼,一邊反覆進行R行L2列傳輸,所述R行L2列傳輸是指按順序對所述R行中的各行進行連續讀出並列的L2個代碼並將其傳輸到所述糾錯裝置中,所述糾錯裝置在從所述列方向傳輸部件傳送代碼的情況下,將每次傳送來的L2個代碼並列進行對所述L2列代碼串的糾錯,作為屬於相對應的所述L2列代碼串的代碼。
由此,不僅並列執行對多個行方向的糾錯,而且還反覆執行對小數據塊的糾錯,從而與單純進行並列處理的情形相比,雖然需要以相同的速度進行掃描和糾錯,但是降低了糾錯裝置中所要求的處理能力,並縮小了電路規模。
而且,把向存儲器裝置的存取作為DMA,其中設置一定的優先順序來進行調度,由此能夠更平衡地對與1個存儲裝置資源相對應的4種訪問進行排他性控制,實現性能價格比較高的糾錯裝置。
(插入定型文1)
圖1示出了乘積碼的數據結構。
圖2示出了按照每行的順序進行C1序列的糾錯時的處理順序。
圖3示出了按照每列的順序進行C2序列的糾錯時的處理順序。
圖4示出了現有的糾錯裝置的糾錯處理順序。
圖5是本發明第一實施例中的糾錯裝置100的構成示意圖。
圖6是裝置100的總線控制器2的詳細結構示意圖。
圖7是裝置100的數據分配器51的詳細結構示意圖。
圖8是裝置100的1個出錯位生成器52(53、54、55)的詳細結構示意圖。
圖9是裝置100中的主要處理(數據輸入、糾錯、數據輸出)的時序圖。
圖10示出了在進行C1序列的糾錯時讀出緩衝存儲器1內的乘積碼的順序。
圖11示出了在按照圖10所示的順序從緩衝存儲器1傳輸數據時,數據分配器51的操作。
圖12示出了C1序列的糾錯中通過從緩衝存儲器1向糾錯器5的數據傳輸與4個出錯位生成器52~55的積和運算時序。
圖13示出了在進行C2序列的糾錯時讀出緩衝存儲器1內的乘積碼的順序。
圖14示出了在按照圖13所示的順序從緩衝存儲器1傳輸數據時,數據分配器51的操作。
圖15示出了C2序列的糾錯中通過從緩衝存儲器1向糾錯器5的數據傳輸與4個出錯位生成器52~55的積和運算時序。
圖16示出了對C1序列的端數部分進行的處理時序。
圖17示出了對C2序列的端數部分進行的處理時序。
圖18示出了以兩列在C1方向上進行糾錯時,從緩衝存儲器讀出數據的順序。
圖19示出了以兩列在C1方向上進行糾錯時數據分配器的操作。
圖20示出了以兩列在C1方向上進行糾錯時數據傳輸與出錯位計算的時序。
圖21示出了以兩列在C2方向上進行糾錯時,從緩衝存儲器讀出數據的順序。
圖22示出了以兩列在C2方向上進行糾錯時數據分配器的操作。
圖23示出了以兩列在C2方向上進行糾錯時數據傳輸與出錯位計算的時序。
圖24是本發明第二實施例中的光碟讀取裝置2000的結構示意圖。
圖25是裝置2000的光碟控制器2100的詳細結構示意圖。
圖26是裝置2000的總線控制器2180的詳細結構示意圖。
圖27示出了通過裝置2000的總線調配控制器2182的3個排他性DMA傳輸的控制例。
圖28是裝置2000的糾錯器2130的詳細結構示意圖。
圖29是示出了光碟控制器2100內的處理過程的時序圖。
圖30是圖29所示的時序圖的更詳細的示圖。
圖31是示出了在進行C1序列的糾錯時糾錯器2130內的行單位處理過程的時序圖。
圖32示出了在糾正圖31所示的代碼串時,訪問存儲在緩衝存儲器2110中的乘積碼的順序。
圖33示出了在以4個代碼串並行對圖31所示的C1序列糾錯時,從磁碟接口2120讀出數據的順序。
圖34示出了對圖31所示的序列C1的端數部分的讀出順序。
圖35是本發明第三實施例中的光碟讀取裝置3000的結構示意圖。
圖36是裝置3000的光碟控制器3100的詳細結構示意圖。
圖37是裝置3000的糾錯器3130的詳細結構示意圖。
圖38是示出了在連續處理多個數據塊的數據時光碟控制器3100內的處理過程的時序圖。
圖39是圖38所示的時序圖的更詳細的示圖。
圖40是示出了在糾錯器2130內的行方向及列方向上的單位處理過程的時序圖。
以下,參照附圖詳細說明本發明的實施例。
(第一實施例)第一實施例涉及對行方向及列方向中的任一方向上的4個代碼串並列進行糾錯的高速糾錯裝置。
圖5是本發明第一實施例中的糾錯裝置100的構成示意圖。裝置100是包含在光碟驅動器裝置中並用於對從光碟中讀出的數據進行糾錯的裝置,由緩衝存儲器1、包含在該緩衝存儲器1中的進行訪問的3個處理塊(磁碟接口部件12、糾錯部件5及主機接口部件13)以及進行訪問的排他性控制的總線控制器2構成。圖中的箭頭表示作為糾錯對象的數據的流向。裝置100採用Reed-Solomon碼作為糾錯碼類型,採用乘積碼作為代碼結構。
緩衝存儲器1是利用二維地址(行地址和列地址)具有特定存儲區域的DRAM等半導體存儲器,具有暫時存儲多個作為糾錯對象的數據塊的存儲容量。
磁碟接口部件12是將從光碟等記錄媒體中讀出的數據接著寫入緩衝存儲器1中的接口電路。
糾錯部件5是用於順序讀出從磁碟接口部件12寫入緩衝存儲器1中的數據並檢測是否發生了錯誤,如果發現錯誤,就在緩衝存儲器1上進行糾錯的電路。具體地,糾錯部件5是對4個代碼串同時並列執行糾錯的電路,由數據分配部件51、4個出錯位生成部件52~55、錯誤位置·錯誤數值運算部件56及錯誤數據更新部件57構成。
數據分配部件51將從緩衝存儲器1傳輸來的數據分配到4個出錯位生成部件52~55中的一個中。此時,這樣進行分配以便於屬於同一代碼串中的數據被輸入到同一出錯位生成部件中。4個出錯位生成部件52~55都是相同的電路,分別在輸入了所分配的數據時就進行積和運算,當包含10個奇偶校驗數據的1個代碼串被全部輸入之後,生成10個出錯位。
錯誤位置·錯誤數值運算部件56分別對4個出錯位生成部件52~55依次判斷所生成的10個出錯位中是否存在非零數,如果存在,就利用這些出錯位計算出錯誤位置和錯誤數值。具體地,以10個出錯位為基礎,利用歐基裡德算法等方法算出用於確定錯誤位置多項式和錯誤數值多項式的各項係數,然後利用鏈查尋和調用法等方法算出該錯誤位置多項式的根(錯誤位置)並利用錯誤數值多項式算出錯誤數值。
錯誤數據更新部件57根據由錯誤位置·錯誤數值運算部件56算出的錯誤位置,讀出緩衝存儲器1中的錯誤數據,計算讀出的錯誤數據與由錯誤位置·錯誤數值運算部件56算出的錯誤數值的異或邏輯和,將得出的數值回寫到緩衝存儲器2110中的原位置上。就該糾錯部件5而言,只有出錯位計算電路(出錯位生成部件52~55)被並列化,而對於與其相連的電路(錯誤位置·錯誤數值運算部件56及錯誤數據更新部件57)並沒有被並列化,關於出錯位計算,無論發生錯誤與否,對1個數據都要進行10次積和運算,但對於以後的計算處理,只要根據在1個代碼串中生成的10個出錯位進行計算就可以了,從而建設了運算次數。
主機接口部件13是用於在糾錯部件5的處理結束之後,從緩衝存儲器1讀出數據並將該數據輸出到計算機等主機中的接口電路。
總線控制器2是在緩衝存儲器1與3個處理塊12、5、13中的任一個之間,通過8位數據總線進行數據傳輸的控制電路,包括用於排他地控制對緩衝存儲器1進行訪問的總線調配控制部件22,生成並輸出用於對緩衝存儲器1進行訪問的地址的地址生成部件21,以及在磁碟接口部件12、糾錯部件5及主機接口部件13中的任一個與緩衝存儲器1之間進行總線連接並通過DMA(DirectMemory Access)進行數據傳輸的DMA通道部件23。
圖6是總線控制器2的詳細結構示意圖。在本圖中,3個DMA通道23a~23b是構成圖5所示的DMA通道部件的DMA控制器。這個總線控制器2具有排他性地許可與緩衝存儲器1相對應的3個DMA的功能。即,總線調配控制部件22在接收到來自在磁碟接口部件12、糾錯部件5及主機接口部件13的訪問緩衝存儲器1的請求時,根據預定的優先順序和調度順序,只允許其中之一的請求。
具體地,總線調配控制部件22通過啟動第一DMA通道23a,對磁碟接口部件12輸出允許進行數據傳輸的控制信號,從地址生成部件21生成緩衝存儲器1的寫入地址,進行將從磁碟接口部件12向緩衝存儲器1的「數據輸入」,即從光碟等記錄媒體讀出的數據通過磁碟接口部件12存入緩衝存儲器1中的數據傳輸。同樣地,總線調配控制部件22通過啟動第二DMA通道23b,對糾錯部件5輸出允許進行數據傳輸的控制信號,從地址生成部件21生成緩衝存儲器1中的讀出或寫入地址,進行「用於糾錯的數據傳輸」,即將存在緩衝存儲器1中數據讀出到糾錯部件5,將糾正後的數據從糾錯部件5回寫到緩衝存儲器1中的數據傳輸。而且,總線調配控制部件22通過啟動第三DMA通道23c,對主機接口部件13輸出允許進行數據傳輸的控制信號,從地址生成部件21生成緩衝存儲器1中的讀出地址,進行將從緩衝存儲器1向主機接口部件13的「數據輸出」,即存在糾錯後的緩衝存儲器1中的數據通過主機接口部件13輸出到主機等中的數據傳輸。
在這3種DMA傳輸中,地址生成部件21對緩衝存儲器1進行頁面模式下的高速訪問。具體地,在命中頁的範圍內,確定並原樣輸出對緩衝存儲器1的行地址(RAS),使列地址(CAS)增加所需要的數據個數。
圖7是數據分配部件51的詳細結構示意圖。數據分配部件51由用於將從總線控制器2傳送來的數據穿過4個出錯位生成部件52~55之一的選擇器51a和用於根據來自總線控制器2的指示,控制選擇器51a的分配的切換控制部件51b構成。切換控制部件51b通過內部的計數邏輯電路等,在數據被輸入到選擇器51a的同時將控制信號輸出到選擇器51a中,但是在進行行方向的糾錯和列方向的糾錯的情況下,如後所述,以不同的順序控制選擇器51a。
圖8是1個出錯位生成器52(53、54、55)的詳細結構示意圖。出錯位生成部件52由一次最多存儲8個輸入的數據的FIFO(First-In First-Out)形式的隊列緩衝器62和與該隊列緩衝器62並聯的10種出錯位運算部件63~65構成。各出錯位運算部件63~65是反覆進行積和運算的電路,由用於存儲1個積和值的寄存器68、用於讀出存在寄存器68中的積和值,與固有的係數進行乘法運算的伽羅瓦域乘法器66以及對該乘法運算的結果和下次輸入的1個代碼進行加法運算的伽羅瓦域加法器67構成。
在從隊列緩衝器62中讀出最早輸入的1個數據d時,該數據d被並列輸入到10個出錯位運算部件63中,根本進行1次積和運算d+Sn×αn,將該結果作為新的Sn存入寄存器68中。例如,由100位元組的信息數據d1~d100和10個奇偶校驗數據p1~p10構成的代碼串被順序輸入到出錯位生成部件52中,並經過隊列緩衝器62被並列地提供給10個出錯位運算部件63~65。此時,在第一出錯位運算部件63中,首先在輸入第一信息數據d1時將該d1原樣保存在寄存器68中,接著在輸入信息數據d2時進行積和運算d2+d1×α0,該結果被保存到寄存器68中。
這樣每輸入1個代碼,就進行1次積和運算,到輸入了最後的奇偶校驗數據p10時,保存在寄存器68中的數據就變成了S0出錯位。與此同時,在其它出錯位運算部件64~65中也進行著同樣的運算,因此在最後的奇偶校驗數據被輸入到這10個出錯位運算部件63~65中之後,最後同時生成了從S0到S9這10種出錯位。
下面,說明具有以上結構的糾錯裝置100的操作。
圖9是裝置100中的主要處理(數據輸入、糾錯、數據輸出)中作為處理對象的數據的時序圖。即,示出了在對利用圖1所示的乘積碼的代碼串進行連續的多個數據塊處理時的處理流向。圖中的第n數據塊與圖1所示的1個乘積碼的全部數據相對應。圖中的「數據輸入」、「糾錯」及「數據輸出」與上述總線控制器2的「數據輸入」、「用於糾錯的數據傳輸」及「數據輸出」相對應。
首先,在第1周期進行第1數據塊的數據輸入,在第2周期並列進行第2數據塊的數據輸入和第1數據塊的糾錯,在第3周期並列進行第3數據塊的數據輸入、第2數據塊的糾錯和第數據塊的數據輸出。在第4周期以後,與第3周期一樣,並列進行新數據塊的數據輸入,前一輸入數據塊的糾錯和糾錯結束後的數據塊的數據輸出。
這樣,總線控制器2控制3種數據傳輸(從磁碟接口部件12向緩衝存儲器1的數據傳輸、緩衝存儲器1與糾錯部件5之間的數據傳輸以及從緩衝存儲器1向主機接口部件13的數據傳輸)以便於對各數據塊的數據實施流水線處理。即,3種數據傳輸都以緩衝存儲器1為傳輸目的地或傳輸源,但緩衝存儲器1隻有1個輸入輸出埠,因此總線控制器2通過在這3種數據傳輸中設計優先順序,而只瞬時許可數據傳輸中的一種,通過將這3種數據傳輸按時間分割進行切換,從表面上控制了3種數據傳輸的並行。
圖10示出了在進行C1序列的糾錯時讀出緩衝存儲器1內的乘積碼的順序。總線調配控制部件22在啟動第二DMA通道23b,並通知糾錯部件5傳送用於C1序列糾錯的數據之後,按照預定的順序將讀出地址從地址生成部件21輸出到緩衝存儲器1,如下所述,將存在緩衝存儲器1中的數據傳輸到糾錯部件5中。
即,總線控制器2首先從緩衝存儲器1中連續讀出第1行4個字節的數據d1~d4並傳輸到糾錯部件5中。接著連續讀出並傳輸第2行4個字節的數據d5~d8。接著連續讀出並傳輸第3行4個字節的數據d9~d12。接著連續讀出並傳輸第4行4個字節的數據d13~d16。至此再次返回第1行,同樣連續讀取和傳輸4個字節的數據d17~d20。下面通過重複同樣的讀出和傳輸,在完成從第1行到第4行的全部數據的讀出和傳輸時,對從第5行到第8行的4行數據重複同樣的處理。如此對1個數據塊的全部行重複並列讀出和傳輸4行數據的處理。
總線控制器2以DMA模式進行對行方向上連續4個字節的數據讀出和傳輸,以作為時間上不可分的處理連續進行。即,此期間禁止用於其它處理(數據輸入、數據輸出)的對緩衝存儲器1的訪問。這是由於在行方向上連續的數據通常被存儲在緩衝存儲器1的連續地址中,因而能夠利用由DRAM頁命中進行的高速訪問。
圖11示出了在按照圖10所示的順序從緩衝存儲器1傳輸數據時,糾錯部件5的數據分配器51的操作。切換控制部件51b在從總線控制器2接收開始對C1序列糾錯的指示時,通過控制選擇器51a,將從總線控制器2傳送來的數據如下進行分配。
即,數據分配部件51對最先傳輸的屬於第1行的4個字節數據d1~d4進行分配以將其輸入到出錯位生成部件52中,對接著傳輸的屬於第2行的4個字節數據d5~d8進行分配以將其輸入到出錯位生成部件53中,對接著傳輸的屬於第3行的4個字節數據d9~d12進行分配以將其輸入到出錯位生成部件54中,對接著傳輸的屬於第4行的4個字節數據d13~d16進行分配以將其輸入到出錯位生成部件55中。同樣地,再將接著傳輸的屬於第1行的數據d17~d20輸入出錯位生成部件52中。這樣,數據分配部件51在C1序列的糾錯中,一邊以4個字節為單位按照4個出錯位生成部件52~55的順序切換出錯位生成部件,一邊從緩衝存儲器1經過總線控制器2輸入反覆以4個字節為單位傳送的數據。
圖12示出了C1序列的糾錯中通過從緩衝存儲器1向糾錯器5的數據傳輸與4個出錯位生成器52~55的積和運算時序。
從緩衝存儲器1讀出具有連續地址的4個字節的數據d1~d4、d5~d8等並將其傳輸到糾錯部件5中分別需要時間t1,以4個字節為單位的數據傳輸以時間t2為間隔進行重複。從完成以4個字節為單位的數據傳輸之後到開始以接著的4個字節為單位的數據傳輸,需要時間,這是因為要考慮到由於這4個字節分別屬於不同的行而在讀出新的4個字節數據時可能產生每次DRAM的頁面錯誤。即,假設在訪問4個字節中的第1位元組時總線控制器2必須將新的行地址輸出到緩衝存儲器1中。
4個出錯位生成部件52~55分別進行第1行~第4行的出錯位計算,但在4×t2的時間內對輸入的4個字節的數據進行必要的4個積和運算。例如,執行第1行出錯位計算的出錯位生成部件52在4×t2的時間內對輸入的4個字節數據d1~d4進行積和運算。從出錯位生成部件52的角度出發,這是由於最先輸入的4個字節數據為d1~d4,接著輸入的4個字節數據為d17~d20,它們的時間間隔為4×t2,因而只要在這個時間內完成4個字節的積和運算就可以。然後,為了維持這樣的運算速度,在各出錯位生成部件52~55的前面所設計的隊列緩衝器62中所存儲的數據量最大為4個字節,即使在瞬間也不能超過4個字節。
這樣,各出錯位生成部件52~55隻要以每1個字節t2時間的速度就可以完成積和運算,與數據傳輸速度(4位元組/t2)相比,只需已1/4的速度進行出錯位計算即可。而且,由於對不同的多個代碼串,一邊以較小的節距(4個字節為單位)切換代碼串,一邊進行並列處理,所以與處理每1代碼串的方法相比,在降低了每1代碼串所要求的出錯位計算速度的同時,還縮小了隊列緩衝器的大小。換言之,這意味著能夠使從緩衝存儲器1到糾錯部件5的實際數據傳輸速度(整個糾錯速度)比原來更高速,並且與簡單地設置多個糾錯電路相比,能夠以更小的電路規模進行4列糾錯。
通過增加同一代碼串中連續讀出的數據數,可以謀求利用DRAM頁命中的數據傳輸的高速化。此時,希望增加糾錯的並列度。通過隨增加糾錯並列處理的並列度而增加存儲器地址的連續傳輸字節數,與每1代碼串的處理負荷相對應的電路規模減輕了負擔並實現了高效的糾錯並列化。
現在參照圖13~圖15說明在進行C2序列的糾錯時本裝置100的操作。
圖13示出了在進行C2序列的糾錯時讀出緩衝存儲器1內的乘積碼的順序。總線調配控制部件22在啟動第二DMA通道23b,並通知糾錯部件5傳送用於C2序列糾錯的數據之後,按照預定的順序將讀出地址從地址生成部件21輸出到緩衝存儲器1,如下所述,將存在緩衝存儲器1中的數據傳輸到糾錯部件5中。
即,總線控制器2首先從緩衝存儲器1中連續讀出第1行4個字節的數據d1~d4並傳輸到糾錯部件5中。接著連續讀出並傳輸第2行4個字節的數據d5~d8。以下,同樣地,對第1列~第4列的全部數據反覆從各行讀出並傳輸4個字節的數據。由此,完成C2序列的4個代碼串的數據傳輸。同樣地,再對第5列~第8列的全部數據反覆讀出並傳輸4個字節的數據。由此,對1個數據塊的全部列重複進行並列讀出並傳輸4列數據的處理。
與C1序列的數據傳輸相同,總線控制器2以DMA模式進行對行方向上連續4個字節的數據讀出和傳輸,就象連續進行時間不可分的處理一樣。即,此期間通過禁止用於其它處理(數據輸入、數據輸出)的對緩衝存儲器1的訪問而利用了根據DRAM頁命中的高速訪問。
圖14示出了在按照圖13所示的順序從緩衝存儲器1傳輸數據時,糾錯部件5的數據分配器51的操作。切換控制部件51b在從總線控制器2接收開始對C2序列糾錯的指示時,通過控制選擇器51a,將從總線控制器2傳送來的數據如下進行分配。
即,數據分配部件51對最先傳輸的屬於第1行的4個字節數據d1~d4進行分配以將各數據按照順序輸入到出錯位生成部件52~55中。具體地,將數據d1送到出錯位生成部件52中,將數據d2送到出錯位生成部件53中,將數據d3送到出錯位生成部件54中,將數據d4送到出錯位生成部件55中。對接著傳輸的屬於第2行的數據d5~d8同樣分配以將各數據按照順序輸入到出錯位生成部件52~55中。這樣,數據分配部件51在C2序列的糾錯中,重複將以4個字節為單位反覆傳送的數據的各個字節分配到4個出錯位生成部件52~55中的處理。
由此,屬於第1列的數據d1、d5、...被輸入到出錯位生成部件52中,屬於第2列的數據d2、d6、...被輸入到出錯位生成部件53中,屬於第3列的數據d3、d7、...被輸入到出錯位生成部件54中,屬於第4列的數據d4、d8、...被輸入到出錯位生成部件55中。同樣,屬於第5列的數據被輸入到出錯位生成部件52中,屬於第6列的數據被輸入到出錯位生成部件53中,屬於第7列的數據被輸入到出錯位生成部件54中,屬於第8列的數據被輸入到出錯位生成部件55中。
圖15示出了C2序列的糾錯中通過從緩衝存儲器1向糾錯器5的數據傳輸與4個出錯位生成器52~55的積和運算時序。
從緩衝存儲器1讀出具有連續地址的4個字節的數據d1~d4、d5~d8等並將其傳輸到糾錯部件5中分別需要時間t1,在時間t2的間隔內重複以4個字節為單位的數據傳輸,這與圖12中所示的C1情況相同。
4個出錯位生成部件52~55分別進行第1列~第4列的出錯位計算,但在t2的時間內進行關於1個字節的數據的1次積和運算。例如,執行第1行的出錯位計算的出錯位生成部件52在t2時間內對最先輸入的1個字節數據d1進行積和運算,在t2時間內對接著輸入的1個字節數據d5進行積和運算。從出錯位生成部件52的角度出發,這是由於在時間t2中,1個字節的數據被輸入。然後,為了維持這樣的運算速度,在各出錯位生成部件52~55的前面所設計的隊列緩衝器62中所存儲的數據量最大為1個字節,即使在瞬間也不能超過1個字節。
這樣,各出錯位生成部件52~55隻要以每1個字節t2時間的速度就可以完成積和運算,可以理解,這與進行C1序列的糾錯時的處理速度相同。而且,在此C2序列的糾錯中,向各個出錯位生成部件52~55的數據輸入與叢發進行的C1序列不同,是均勻進行的(通常以1位元組/t2的速度輸入數據),所以沒有必要在各出錯位生成部件52~55的前面設置隊列緩衝器。
如上所述,在第一實施例中,由於糾錯部件5中的並列處理的並列度與在從緩衝存儲器1讀出具有連續地址的數據(乘積碼的同一行中的連續數據)並將其傳輸到糾錯部件5時的數據量相等,所以在C1序列和C2序列兩個方向上的糾錯中,從緩衝存儲器1讀出數據的速度與通過在各出錯位生成部件進行積和運算的速度之間的關係同等,從而縮小了在各出錯位生成部件前面所需要的隊列緩衝器的大小。由此,對於C1序列和C2序列兩個方向上的糾錯,用於充分發揮出錯位生成部件能力的總線控制器2的控制順序也被共享,實現了能夠以較小的電路規模進行高速糾錯的糾錯裝置。
即,能夠更平衡地實施C1序列的糾錯和C2序列的糾錯,削減了糾錯裝置中所需要的電路的冗餘度。
雖然圖10及圖13中所示的讀出順序是以行方向上的代碼串的字節數是4的倍數為前提的,但是即使在與之不同的情況下,本裝置100也能夠進行正確的糾錯。例如,在行方向上的代碼串的長度為其字節數除4還餘2的情況下,只要將緩衝存儲器1內的乘積碼的讀出順序作如下變動即可。
圖16示出了在行方向上的代碼串的長度為其字節數除4還餘2的情況下,進行C1序列的糾錯時緩衝存儲器1內的乘積碼的讀出順序。總線控制器2針對4行代碼串,對除去各代碼串最後的2個字節以外的部分按照前面所述的順序重複連續4個字節的讀出和傳輸操作,而對最後的2個字節進行讀出和傳輸各代碼串的2個字節的操作。與之相伴,數據分配部件51也進行同樣的操作,即,將反覆以4個字節為單位從緩衝存儲器1中傳送來數據以4個字節為單位分別分配到4個出錯位生成部件52~55中,將以2個字節為單位被傳送來的數據以2個字節為單位分別分配到4個出錯位生成部件52~55中即可。
同樣,圖17示出了在列方向上的代碼串的長度為其字節數除4還餘2的情況下,進行C2序列的糾錯時緩衝存儲器1內的乘積碼的讀出順序。總線控制器2對除去最後2列的代碼串,從最先輸入的4列開始,重複4個字節的數據讀出和傳輸操作,而對最後2列代碼串,反覆讀出和傳輸2個字節。與之相伴,數據分配部件51也進行同樣的操作,即,將反覆以4個字節為單位從緩衝存儲器1中傳送來數據以4個字節為單位分別分配到4個出錯位生成部件52~55中,將以2個字節為單位被傳送來的數據以2個字節為單位分別分配到4個出錯位生成部件52~55中即可。
象這樣變更總線控制器2用的讀出順序以及數據分配部件51用的分配順序可以通過具體地變更總線控制器2中總線調配控制部件22用的控制順序和數據分配部件51中切換控制部件b用的控制順序容易地實現。
第一實施例是用於並列執行對應於4個代碼串的出錯位計算的糾錯裝置,但是本發明並不僅限於這樣的並列度,例如,2列和8列的糾錯裝置也是可以的。即,在第一實施例中,糾錯部件5具有4個出錯位生成部件52,但是也可以根據需要設置為2個和8個。
圖18、圖19和圖20用於說明在以2列進行糾錯的糾錯裝置中,C1序列的糾錯操作,分別示出了數據從緩衝存儲器中讀出的順序、以該順序輸入數據時的糾錯部件中的數據分配部件的操作以及該情況下進行數據傳輸和出錯位計算的時序。
同樣,圖21、圖22和圖23用於說明在以2列進行糾錯的糾錯裝置中,C2序列的糾錯操作,分別示出了數據從緩衝存儲器中讀出的順序、以該順序輸入數據時的糾錯部件中的數據分配部件的操作以及該情況下進行數據傳輸和出錯位計算的時序。
在第一實施例中,對讀取記錄在光碟等記錄媒體中的數據、從讀出的數據串中查找錯誤、進行糾正以及將糾正後的數據傳輸到主計算機中的數據流向進行了說明,但另一方面,本發明也能夠用於從主計算機輸出數據、在該數據中附加用於糾錯的奇偶校驗碼以及寫入光碟等記錄媒體中的數據流向。本發明是這樣一種技術對於暫時存儲在設置於記錄媒體和主計算機之間的數據總線中途的緩衝存儲器中的乘積碼,通過有效地讀出構成該乘積碼的全部代碼串並將其傳輸到第三裝置(除記錄媒體和主計算機之外的處理裝置),可以在第三裝置中通過高速且小規模的電路對C1序列和C2序列進行代碼處理。
具體地,可以進行如下變更將糾錯部件5中的4個出錯位生成部件52~55和錯誤位置·錯誤數值運算部件56置換為奇偶校驗數據生成電路,將錯誤數據更新部件57置換為奇偶校驗數據寫入電路。從而實現了能夠高速執行在向記錄媒體寫入數據時附加糾錯碼和在從記錄媒體中讀出數據時糾正錯誤數據的所謂「糾錯伴隨處理」的糾錯裝置。
在第一實施例中,總線控制器2通過1次DMA傳輸進行從緩衝存儲器1向糾錯部件5的4位元組數據的傳輸,在這次DMA傳輸與下次DMA傳輸期間允許除對傳輸緩衝存儲器1進行訪問之外的數據傳輸,但是也可以通過1次DMA傳輸進行16位元組數據的傳輸。由此,在C1序列的糾錯中,通過1次DMA傳輸可以將圖10中所示的16位元組數據d1~d16從緩衝存儲器1傳輸到糾錯部件5中,在此期間禁止插入緩衝存儲器1中用於訪問的其它數據的傳輸,因而16位元組數據的傳輸時間,即分別向4個出錯位生成部件52~55中的每一個提供4個字節的數據所需要的時間被大致固定,在顯著降低了出錯位計算的處理速度的情況下,避免了向糾錯部件5進行的數據傳輸成為瓶頸。
在第一實施例中,糾錯裝置100內部的數據總線寬度為8位,但也可以是32位數據總線。此時,通過1次存儲器訪問從緩衝存儲器1中讀出4位元組數據並傳輸到糾錯部件5中。然後,數據分配部件51在進行C1序列的糾錯時,將32位數據按照每8位進行分割,分別分配到4個出錯位生成部件52~55中即可。
在第一實施例中,在糾錯部件5中只有出錯位計算被並列執行,但也可以對與其連接的錯誤位置·錯誤數值運算部件56和錯誤數據更新部件57進行並列化。由此,即使在出錯位計算中發生大量錯誤的情況下,也能夠確保一定的糾正處理。
(第二實施例)第二實施例涉及這樣的高速光碟讀取裝置分離錯誤檢測和糾錯,在將數據存入緩衝存儲器的同時並行執行錯誤檢測,通過將該結果反映到糾錯中,避免了從緩衝存儲器向糾錯部件傳輸沒有發生錯誤的數據。
圖24是本發明第二實施例中的光碟讀取裝置2000的結構示意圖。光碟讀取裝置2000是用於讀取記錄在光碟2010中的數據,並在對讀出的數據進行糾錯後將該數據傳輸到主計算機2070中的裝置,由光拾取器2020、放大器2030、前端處理機2040、光碟控制部件2100、旋轉電動機2050、伺服控制器2060和系統控制部件2080構成。
系統控制部件2080是用於通過光碟控制部件2100接收來自主計算機2070的數據請求的命令,解釋該命令,控制伺服控制器2060及光碟控制部件2100並實現與數據請求相應的功能的微處理器。
旋轉電動機2050用於旋轉光碟2010,伺服控制器2060用於以來自前端處理機2040的信息為基礎接收系統控制部件2080的指示,並控制旋轉電動機2050的旋轉及光拾取器2020的鏡頭位置。
光碟2010為DVD-ROM,光拾取器2020用於通過鏡頭光線的反射光讀取記錄在光碟2010中的數據並將其轉換為電信號,放大器2030用於放大光拾取器2020的輸出信號並將其輸出到前端處理機2040中。
前端處理機2040用於根據輸入的信號,在伺服控制器2060、旋轉電動機2050及光拾取器2020中進行反饋控制,將穩定的信號輸出到光碟控制部件2100中,包括均衡器、AGC(自動增益控制電路)、PLL(Phase Locked Loop)等。而且前端處理機2040輸出到光碟控制部件2100中的信號為調製數據。
光碟控制部件2100將來自主計算機2070的數據請求命令通知給系統控制部件2080,根據系統控制部件2080的控制,對從前端處理機2040輸入的信號進行解調,取出所需要的數據,進行糾錯並將數據輸出到主計算機2070中。
在圖24中,粗箭頭表示記錄在光碟2010中的數據到達主計算機2070中的流程。即,記錄在光碟2010中的數據經過光拾取器2020、放大器2030、前端處理機2040以及光碟控制部件2100而到達主計算機2070。而且,記錄在光碟2010中的數據結構與第一實施例中的數據結構相同,採用圖1所示的乘積碼並採用Reed-Solomon碼為糾錯碼。
圖25是光碟控制器2100的詳細結構示意圖。光碟控制部件2100是用於對從前端處理機2040傳送來的信號進行解調並糾錯,然後將其送到主計算機2070中的電路,包括緩衝存儲器2110、磁碟接口部件2120、糾錯部件2130、主機接口部件2140、第一傳輸部件2150、第二傳輸部件2160、第三傳輸部件2170、總線控制器2180、錯誤檢測部件2190和錯誤代碼串存儲部件2200。圖25中的粗箭頭表示在向緩衝存儲器2110的由DMA傳輸執行的數據寫入以及從緩衝存儲器2110的由DMA傳輸執行的數據讀出中的數據通路。
緩衝存儲器2110是利用二維地址(行地址和列地址)具有特定存儲區域的DRAM等半導體存儲器,具有暫時存儲多個圖1所示的乘積碼的存儲容量。
磁碟接口部件2120在對從前端處理機2040輸入的信號進行解調後,將得到的數據輸出到第一傳輸部件2150中以將數據存入緩衝存儲器2110中。在將從磁碟接口部件2120輸出的數據通過第一傳輸部件2150傳輸到緩衝存儲器2110中的同時,將該數據並行輸入到錯誤檢測部件2190中。
對於經過第一傳輸部件2150從磁碟接口部件2120傳送來的數據,錯誤檢測部件2190判斷C1序列中的每個代碼串中是否存在錯誤,在檢測出錯誤的情況下,將該代碼串的編號存入由RAM構成的錯誤代碼串存儲部件2200中。該錯誤檢測部件2190還計算出每1列代碼串中一定個數的出錯位,判斷這些出錯位中是否存在非零數,如果存在非零數,則斷定有錯誤發生。具體地,錯誤檢測部件2190由第一實施例中的糾錯部件5所具有的4個出錯位生成部件52~55之一(圖8所示的電路)和用於判斷所生成的出錯位是否全部為零的與門電路構成。
糾錯部件2130以從磁碟接口部件2120傳輸並存入緩衝存儲器2110的乘積碼中產生了錯誤的數據為對象,進行C1序列及C2序列的糾錯。具體地,糾錯部件2130參照存在錯誤代碼串存儲部件2200中的編號,只以發生了錯誤的C1序列的代碼串或發生了錯誤的數據塊的C2序列代碼串為對象,糾正緩衝存儲器2110中的錯誤數據。
主機接口部件2140是用於通過第三傳輸部件2170,從緩衝存儲器2110中讀出完成了由糾錯部件2130所執行的處理的數據並將其輸出到主計算機2070中的接口電路。
第一傳輸部件2150是DMA控制器,用於接收總線控制器2180對來自磁碟接口部件2120的傳輸請求的許可通知,同時並列進行從磁碟接口部件2120向緩衝存儲器2110的DMA數據傳輸和向錯誤檢測部件2190的同一數據的傳輸。
第二傳輸部件2160是DMA控制器,用於接收總線控制器2180對來自糾錯部件2130的傳輸請求的許可通知,進行從緩衝存儲器2110向糾錯部件2130的DMA數據傳輸。
第三傳輸部件2170是DMA控制器,用於接收總線控制器2180對來自主機接口部件2140的傳輸請求的許可通知,進行從緩衝存儲器2110向主機接口部件2140的DMA數據傳輸。
總線控制器2180按照預定優先順序,控制這3個傳輸部件2150、2160和2170,以便於排他性地執行分別由第一傳輸部件2150、第二傳輸部件2160和第三傳輸部件2170進行的DMA傳輸並控制在重寫緩衝存儲器2110中的錯誤數據時由糾錯部件2130對緩衝存儲器2110的普通(非DMA)訪問。
圖26是總線控制器2180的詳細結構示意圖。總線控制器2180由生成並輸出用於對緩衝存儲器1進行訪問的地址的地址生成部件2181、將第一傳輸部件2150、第二傳輸部件2160、第三傳輸部件2170以及糾錯部件2130中的任一個與緩衝存儲器2110進行總線連接的總線切換部件2183以及按照預定優先順序,對這3個傳輸部件2150、2160、2170及總線切換部件2183進行控制以便於排他地執行這3個傳輸部件2150、2160、2170的DMA傳輸及糾錯部件2130對緩衝存儲器2110的訪問的總線調配控制部件2182構成。
地址生成部件21在這3個DMA傳輸中,對緩衝存儲器1進行頁面模式下的高速訪問。具體地,在命中頁的範圍內,確定並原樣輸出對緩衝存儲器1的行地址(RAS),僅使列地址(CAS)增加所需要的數據個數並輸出。
圖27是表示由總線調配控制部件2182進行的3個排他的DMA傳輸的調度示例,即由第一傳輸部件2150進行的從磁碟接口部件2120向緩衝存儲器2110的DMA傳輸(DMA#1)、由第二傳輸部件2160進行的從緩衝存儲器2110向糾錯部件2130的DMA傳輸(DMA#2)以及由第三傳輸部件2170進行的從緩衝存儲器2110向主機接口部件2140的DMA傳輸(DMA#3)的時序圖。在本圖中,橫軸表示經過的時間,三角形印記表示對個DMA傳輸的請求的發生,劃有剖面線的四邊形表示DMA傳輸在執行中。
總線調配控制部件2182在最高的優先級下允許執行DMA#1,在最低的優先級下允許執行DMA#2。即,總線調配控制部件2182在沒有任何一個DMA傳輸處於執行當中的情況下,不管與各DMA相對應的請求的產生順序如何,只要產生了與DMA#1相對應的請求,就最優先地執行DMA#1,如果沒有產生與DMA#1相對應的請求,就執行DMA#3,只有在與DMA#1相對應的請求和與DMA#3相對應的請求都沒有產生時從執行DMA#2。但是,在連續產生與DMA#1相對應的請求並且還產生了其他的與DMA#2或DMA#3相對應的請求時,不連續執行DMA#1,而是執行其他的DMA#2或DMA#3。
對於糾錯部件2130在重寫緩衝存儲器2110中的錯誤數據時所進行的對緩衝存儲器2110的普通訪問,總線調配控制部件2182執行與DMA#3相同的處理。即,在與DMA#1相對應的請求和與DMA#3相對應的請求都沒有產生時,允許糾錯部件2130對緩衝存儲器2110所進行的普通訪問。
圖28是示出了與糾錯部件2130的詳細結構相關聯的其他構成部件的電路圖。糾錯部件2130是用於針對構成圖1所示的乘積碼的C1序列及C2序列中預先檢測出錯誤的代碼串,執行每1行或1列代碼串糾錯的電路,由C1代碼串傳輸請求部件2135、出錯位計算部件2131、歐基裡德計算部件2132、鏈計算部件2133以及錯誤數據更新部件2134構成。
C1代碼串傳輸請求部件2135向第二傳輸部件2160提出請求以便從緩衝存儲器2110中讀出包含了存在錯誤代碼串存儲部件2200中的錯誤的C1序列的代碼串。
出錯位計算部件2131是用於在通過總線控制器2180、第二傳輸部件2160而從緩衝存儲器中取得了包含來自C1代碼串傳輸請求部件2135的請求中所具有的錯誤的C1代碼串之後,計算該代碼串的出錯位的電路,其計算結果被提供給歐基裡德計算部件2132。
另外,此出錯位計算部件2131是用於計算出每1行或1列代碼串中的出錯位的電路,與第一實施例中的糾錯部件5所具有的4個出錯位生成部件52~55之一(圖8所示的電路)相同。即,在乘積碼的大小為k1=k2=100位元組、m1=m2=10位元組的情況下,出錯位計算部件2131由用於對輸入的數據進行暫時緩衝存儲的隊列緩衝器和10個用於分別計算出10個出錯位的積和運算電路組成,各積和運算電路由用於存儲1個積和值的寄存器、用於讀出存儲在該寄存器中的積和值並將其與固有的係數相乘的伽羅瓦域乘法器以及用於將相乘的結果與下次輸入的1個數據相加的伽羅瓦域加法器組成。
歐基裡德計算部件2132是用於根據從出錯位計算部件2131中傳送來的出錯位,利用歐基裡德算法,計算出用於確定錯誤位置多項式和錯誤數值多項式各項係數的電路,計算出的係數被提供給鏈計算部件2133。
鏈計算部件2133是利用來自歐基裡德計算部件2132的係數,通過鏈查尋和調用法等方法算出所確定的錯誤位置多項式的根的電路,將其運算結果與來自歐基裡德計算部件2132的用於確定錯誤數值多項式的係數一起提供給錯誤數據更新部件2134。
錯誤數據更新部件2134在利用來自鏈計算部件2133的錯誤位置和錯誤數值多項式,求出位於該錯誤位置上的錯誤數值之後,通過總線控制器2180讀取緩衝存儲器2110內該錯誤位置上的信息數據或奇偶校驗數據,計算它們的異或邏輯和,將得出的值回寫到緩衝存儲器2110內的原位置上。
另外,由第二傳輸部件2160進行的從緩衝存儲器2110向出錯位計算部件2131的數據傳輸是通過由DMA傳輸進行的存儲器訪問而進行的,但是緩衝存儲器2110與錯誤數據更新部件2134之間的數據傳輸是通過由總線控制器2180進行的普通(非DMA)存儲器訪問而進行的。這是由於通過糾錯而成為重寫對象的數據不受存儲在緩衝存儲器2110內的連續地址上的數據限制。而且,構成糾錯部件2130的4個電路2131~2134在分別進行同步並列處理,即進行流水線方式下的順序處理。
圖29是示出了在連續處理多個數據塊的數據的情況下,光碟控制器2100內的處理過程的時序圖。在本圖中,第1數據塊到第5數據塊是分別存儲在緩衝存儲器2110中的1個數據塊的數據。而且,「緩衝」表示由第一傳輸部件2150進行的從磁碟接口部件2120向緩衝存儲器2110的數據傳輸,「錯誤檢測」表示由第一傳輸部件2150進行的從磁碟接口部件2120向錯誤檢測部件2190的數據傳輸和在錯誤檢測部件2190中進行的錯誤檢測,「糾錯」表示由第二傳輸部件2160進行的從緩衝存儲器2110向糾錯部件2130的數據傳輸和在糾錯部件2130中進行的糾錯,「主機傳輸」表示由第三傳輸部件2170進行的從緩衝存儲器2110向主機接口部件2140的數據傳輸。
如本圖所示,將與同一數據塊相對應的緩衝及錯誤檢測、對完成了緩衝及錯誤檢測的數據塊的糾錯以及對完成了糾錯的數據塊的主機傳輸作為流水線順序且並列地執行。例如,在周期t5,在從磁碟接口部件向緩衝存儲器2110傳輸和存儲第5數據塊的同時,在錯誤檢測部件2190中進行錯誤檢測,從緩衝存儲器2110向糾錯部件2130傳輸第4數據塊並進行糾錯,從緩衝存儲器2110向主機接口部件2140傳輸第3數據塊。
另外,在本圖中,並列進行3種用於訪問緩衝存儲器2110的數據傳輸,但這是從數據塊這個大方面的數據傳輸觀點上出發而表現出來的,從構成數據塊的各數據的角度考慮(瞬時地),只能執行其中一種數據傳輸。這樣的排他性數據傳輸及上述流水線控制,如圖27中的時序圖所示,是通過按照預定的優先順序,將由3個傳輸部件2150、2160、2170進行的數據傳輸以較小的時間單位進行切換並許可而實現的。
而且,在本圖中,不對第3數據塊進行糾錯就是在錯誤檢測過程中,這個數據塊中沒有發現任何錯誤。即,由於在錯誤檢測部件2190中沒有對第3數據塊檢測出任何錯誤,所以接收該通知的糾錯部件2130不進行與對該數據塊的糾錯相關的一切處理。即,通過糾錯部件2130將上述意思通知總線控制器2180,對屬於第3數據塊的全部代碼串,不進行由第二傳輸部件2160執行的從緩衝存儲器2110向糾錯部件2130的數據傳輸。
這樣,在並列進行對同一數據塊的緩衝和錯誤檢測,並在該錯誤檢測中沒有檢測到錯誤的情況下,由於通知了糾錯部件2130,所以能夠避免糾錯部件2130對不需要糾錯的數據進行從緩衝存儲器2110讀出的所謂無效數據傳輸。即,若在現有技術中,對於從光碟讀出的全部數據,進行存入緩衝存儲器、從緩衝存儲器中讀出以進行錯誤檢測·糾正、從緩衝存儲器中讀出以將該數據輸出到主計算機的所謂3種數據傳輸,但在本第二實施例中,對於沒有發生錯誤的數據,只進行存入緩衝存儲器和從緩衝存儲器中讀出以將數據輸出到主計算機的所謂2種數據傳輸。
圖30是圖29所示的時序圖的更詳細的示圖,在與錯誤檢測和糾錯這2個處理相關的過程中分別示出了C1序列及C2序列的處理。其中,在錯誤檢測中,僅對C1序列進行,而在糾錯中,先對C1序列進行1次糾錯,接著對C2序列進行1次糾錯。
具體地,在周期T1,錯誤檢測部件2190對於通過第一傳輸部件2150從磁碟接口部件2120傳送來的第1數據塊,檢查C1序列的代碼串中是否發生錯誤。如果檢測出錯誤的發生,錯誤檢測部件2190就將發生了錯誤的代碼串的編號記錄到代碼串存儲部件2200中。
其中,錯誤檢測部件2190之所以對C1序列進行錯誤檢測,是因為從磁碟接口部件2120向緩衝存儲器2110的數據傳輸是按照從第1行到第n2行,反覆在行方向上掃描乘積碼的順序而進行的,因而使C1序列的錯誤檢測變得很容易。而之所以對C2序列不進行錯誤檢測,是因為對以前的C1序列糾錯的結果如果存在1次糾錯都不能進行的代碼串,就需要執行C2序列的糾錯,因此根本沒有必要執行C2序列的錯誤檢測。
接著在周期T2,糾錯部件2130首先從緩衝存儲器2110中讀出C1序列的代碼串並對其進行糾錯。但是,糾錯部件2130通過參照存儲在錯誤代碼串存儲部件2200中的編號,從緩衝存儲器2110中只讀出檢測出錯誤的C1序列的代碼串並對其進行糾錯。然後,在完成了對全部檢測出錯誤的C1序列的代碼串的糾錯之後,在該C1序列中存在沒有進行1次糾錯的代碼串的情況下,接著從緩衝存儲器2110中順序讀出構成該數據塊的全部C2序列的代碼串並對其進行糾錯。關於C2序列,對構成數據塊的全部代碼串進行糾錯是由於錯誤檢測部件2190隻對C1序列進行了錯誤檢測,而不確定C2序列的代碼串中是否有錯誤所致。
圖31是示出了在進行C1序列的糾錯時糾錯部件2130內的行單位處理過程的時序圖。其中,示出了在通過錯誤檢測部件2190在第1行、第4行、第6行及第11行中檢測錯誤時的由出錯位計算部件2131、歐基裡德計算部件2132、鏈計算部件2133及錯誤數據更新部件2134執行的並列處理。
由於錯誤檢測部件2190在第2行、第3行、第5行、第8~10行的代碼串中沒有檢測出錯誤,因此不將其從緩衝存儲器2110讀到出錯位計算部件2131中,從而,不作為出錯位計算、歐基裡德計算、鏈計算及錯誤數據更新的對象。
圖32示出了在糾正圖31所示的代碼串時,對存儲在緩衝存儲器2110中的乘積碼的各數據的訪問順序。其中,示出了首先執行對第1行的代碼串的糾錯,然後跳過第2行、第3行,對第4行的代碼串執行糾錯,然後跳過第5行對第6行的代碼串執行糾錯,接著對第7行的代碼串執行糾錯的流程。與圖2所示的逐行掃描不同的是只對檢測出錯誤的行進行掃描。
如上所述,在此第二實施例中,糾錯部件2130對於C1序列的糾錯,通過參照錯誤代碼串存儲部件2200,從緩衝存儲器2110中只讀出檢測出錯誤的代碼串,即需要進行糾錯的代碼串並對其進行糾錯,避免了無效地從緩衝存儲器2110中讀出不需要糾錯的代碼串。
由此,對於沒有檢測出錯誤的C1序列的代碼串,不進行所謂的3種數據傳輸將從光碟讀出的全部數據存入緩衝存儲器、從緩衝存儲器讀出數據以用於錯誤檢測·糾錯以及從緩衝存儲器中讀出數據以將數據傳送到主計算機中,而是只進行2種數據傳輸存入緩衝存儲器和從緩衝存儲器讀出數據以將其傳送到主計算機。即,減少了對緩衝存儲器2110的訪問次數,以此在提高整個光碟控制部件2100的處理速度的同時謀求降低功耗,實現更高速的低功耗光碟讀取裝置2000。
此外,在本第二實施例中,如圖32所示,糾錯部件2130反覆進行逐行或逐列糾錯,但也可以象第一實施例一樣,進行每隔4行和4列等多代碼串的並列糾錯。
圖33示出了在以4個代碼串並行對圖31所示的C1序列糾錯時,從磁碟接口2120讀出數據的順序。這種讀出順序與第一實施例中圖10所示的順序基本相同,但在圖33中,與圖10所示的不同之處在於只以檢測出錯誤的行(第1行、第4行、第6行、第7行...)為對象,每隔4行代碼串並列讀出。在代碼串的長度不能被4整除的情況下,如圖34所示,先分別對檢測出錯誤的4列代碼串(第1行、第4行、第6行、第7行)反覆進行4個字節的吃素,最後分別對該4列代碼串進行2個字節的傳輸即可。
第二實施例中象這樣的由糾錯部件2130對4個代碼串並列進行糾錯的變形例只要象第一實施例中的糾錯部件5一樣,在糾錯部件2130中設置4個出錯位計算部件和用於將來自緩衝存儲器2110的數據分配到4個出錯位計算部件中的數據分配部件即可。由此,就能夠得到由第一實施例中的並列化而產生的糾錯高速化和由第二實施例中的預先進行錯誤檢測而產生的糾錯高速化這兩方面的效果。
而且,在第二實施例中,在糾錯部件2130內設置了C1代碼串傳輸請求部件2135,但是也可以將C1代碼串傳輸請求部件2135或者設置在錯誤檢測部件2190內,或者與錯誤檢測部件2190和糾錯部件2130一起構成獨立的電路。
而且,錯誤檢測部件2190隻通知檢測出錯誤的代碼串的編號,但是也可以同時通知由該檢測得到的出錯位。然後,糾錯部件2130也可以針對檢測出錯誤的代碼串,從錯誤檢測部件2190接收出錯位,進行歐基裡德計算和鏈計算。由此,能夠避免在錯誤檢測部件2190和糾錯部件2130中進行重複的出錯位計算。
同樣地,在錯誤檢測部件2190中,也可以不僅進行錯誤檢測,還接著進行歐基裡德計算和鏈計算。在這種情況下,糾錯部件2130對於檢測出錯誤的代碼串,從錯誤檢測部件2190中接收錯誤位置和錯誤數值並對緩衝存儲器2110內的錯誤數據進行糾正即可。這樣,通過在能夠確保處理時間的範圍內,在錯誤檢測部件2190中執行用於進行C1序列的糾錯的出錯位計算、歐基裡德計算及鏈計算,可以使執行計算與從磁碟接口部件2120向緩衝存儲器2110的數據傳輸同時進行,並縮短糾錯部件2130進行糾錯所需要的時間。
(第三實施例)第三實施例涉及這樣的高速光碟讀取裝置通過在將數據存入緩衝存儲器中時並行執行C1序列的糾錯,同時在該C1序列的糾錯中,從緩衝存儲器中只讀出發生了錯誤的數據塊並執行C2序列的糾錯,從而削減了對緩衝存儲器的訪問次數。
圖35是本發明第三實施例中的光碟讀取裝置3000的結構示意圖。光碟讀取裝置3000是用於讀取記錄在光碟2010中的數據,並在對讀出的數據進行糾錯後將該數據傳輸到主計算機2070中的裝置,由光拾取器2020、放大器2030、前端處理機2040、光碟控制部件3100、旋轉電動機2050、伺服控制器2060和系統控制部件2080構成。
此外,光碟讀取裝置3000與第二實施例中的光碟讀取裝置2000相比,只在光碟控制部件3100方面有所不同,因此對於其它的構成部件採用與圖24所示的符號相同的符號,在此省略了對這些相同部件的說明。
圖36是光碟控制器3100的詳細結構示意圖。光碟控制部件3100是用於將來自前端處理機2040的信號解調並糾錯後傳送到主計算機2070的電路,包括緩衝存儲器3110、磁碟接口部件3120、糾錯部件3130、主機接口部件3140、第一傳輸部件3150、第二傳輸部件3160、第三傳輸部件3170、總線控制器3180及數據選擇部件3190。圖36中的粗箭頭表示在向緩衝存儲器3110的由DMA傳輸執行的數據寫入以及從緩衝存儲器3110的由DMA傳輸執行的數據讀出中的數據通路。
緩衝存儲器3110是利用二維地址(行地址和列地址)具有特定存儲區域的DRAM等半導體存儲器,具有暫時存儲多個圖1所示的乘積碼的存儲容量。
磁碟接口部件3120在對從前端處理機2040輸入的信號進行解調後,將得到的數據輸出到第一傳輸部件3150中以將數據存入緩衝存儲器3110中。在將從磁碟接口部件3120輸出的數據通過第一傳輸部件3150傳輸到緩衝存儲器3110中的同時,將該數據並行輸入到數據選擇部件3190中。
數據選擇部件3190是用於選擇作為糾錯部件3130的糾錯對象的代碼串的傳輸源的選擇器。在通過第一傳輸部件3150從磁碟接口部件3120向緩衝存儲器3110進行數據傳輸的情況下,該數據也被同時並行傳送到數據選擇部件3190中,因此對該數據進行選擇並通過數據選擇部件而到達糾錯部件3130。另一方面,在通過第二傳輸部件3160從緩衝存儲器3110傳送C2序列的代碼串的情況下,對該數據進行選擇並通過數據選擇部件而到達糾錯部件3130。另外,數據選擇部件3190還根據來自第一傳輸部件3150和第二傳輸部件3160的指示,選擇這些數據傳輸源中的一個。
糾錯部件3130一邊區分來自數據選擇部件3190的2種(C1序列和C2序列)代碼串,一邊進行糾錯。具體地,糾錯部件3130在數據選擇部件3190選擇並通過來自第一傳輸部件3150的數據(C1序列的代碼串)的情況下,執行C1序列的糾錯,另一方面,在數據選擇部件3190選擇並通過來自第二傳輸部件3160的數據(C2序列的代碼串)的情況下,執行C2序列的糾錯。
主機接口部件3140是用於通過第三傳輸部件3170,從緩衝存儲器3110中讀出完成了由糾錯部件3130所執行的處理的數據並將其輸出到主計算機2070中的接口電路。
第一傳輸部件3150同時並列執行從磁碟接口部件3120向緩衝存儲器3110的DMA數據傳輸和對同一數據的向數據選擇部件3190的DMA數據傳輸,第二傳輸部件3160執行從緩衝存儲器3110向糾錯部件3130的DMA數據傳輸,並且第三傳輸部件3170執行從緩衝存儲器3110向主機接口部件3140的DMA數據傳輸。
總線控制器3180按照預定的優先順序,控制3個傳輸部件3150、3160、3170,以便於排他地執行分別由第一傳輸部件3150、第二傳輸部件3160和第三傳輸部件3170執行的DMA傳輸,並控制在重寫緩衝存儲器3110中的成為時間時由糾錯部件3130執行的對緩衝存儲器3110的普通(非DMA)訪問。另外,總線控制器3180的詳細結構和由總線控制器3180執行的對緩衝存儲器3110的訪問的排他控制分別與第二實施例中的圖26及圖27所示的內容相同。
圖37是示出了與糾錯部件3130的詳細結構相關聯的其他構成部件的電路圖。糾錯部件3130是用於一邊時分地切換1行代碼串和1列代碼串,一邊並行糾錯的電路,由出錯位計算部件3131、歐基裡德計算部件3132、鏈計算部件3133以及錯誤數據更新部件3134構成。
出錯位計算部件3131是用於一邊區分來自數據選擇部件3190的2種代碼串,一邊計算各自的出錯位的電路,包括2個暫時存儲器(輸入數據出錯位存儲部件3135和緩衝數據出錯位存儲部件3136)。輸入數據出錯位存儲部件3135是具有暫時存儲與構成1個數據塊的全部C1序列的代碼串相對應的出錯位的存儲容量的存儲器,緩衝數據出錯位存儲部件3136是具有暫時存儲與構成1個數據塊的全部C2序列的代碼串相對應的出錯位的存儲容量的存儲器。
出錯位計算部件3131在數據選擇部件3190選擇並通過了來自第一傳輸部件3150的數據(C1代碼串)時,對該C1代碼串進行出錯位計算,將得到的出錯位儲存到各代碼串中並存入輸入數據出錯位存儲部件3135中,另一方面,在數據選擇部件3190選擇並通過了來自第二傳輸部件3160的數據(C2代碼串)時,對該C2代碼串進行出錯位計算,將得到的出錯位儲存到各代碼串中並存入緩衝數據出錯位存儲部件3136中。
另外,此出錯位計算部件3131是用於瞬時計算出每1行或1列代碼串中的出錯位的電路,與第一實施例中的糾錯部件5所具有的4個出錯位生成部件52~55之一(圖8所示的電路)相同。即,在乘積碼的大小為k1=k2=100位元組、m1=m2=10位元組的情況下,出錯位計算部件3131由用於對輸入的數據進行暫時緩衝存儲的隊列緩衝器和10個用於分別計算出10個出錯位的積和運算電路組成,各積和運算電路由用於存儲1個積和值的寄存器、用於讀出存儲在該寄存器中的積和值並將其與固有的係數相乘的伽羅瓦域乘法器以及用於將相乘的結果與下次輸入的1個數據相加的伽羅瓦域加法器組成。
歐基裡德計算部件3132是用於順序讀出分別存在出錯位計算部件3131的輸入數據出錯位存儲部件3135和緩衝數據出錯位存儲部件3136中的出錯位,計算出用於確定錯誤位置多項式和錯誤數值多項式各項係數的電路,計算出的係數被提供給鏈計算部件3133。
鏈計算部件3133是利用來自歐基裡德計算部件3132的係數,通過鏈查尋和調用法等方法算出所確定的錯誤位置多項式的根的電路,將其運算結果與來自歐基裡德計算部件3132的用於確定錯誤數值多項式的係數一起提供給錯誤數據更新部件3134。
錯誤數據更新部件3134在利用來自鏈計算部件3133的錯誤位置和錯誤數值多項式,求出位於該錯誤位置上的錯誤數值之後,通過總線控制器3180讀取緩衝存儲器3110內該錯誤位置上的信息數據或奇偶校驗數據,計算它們的異或邏輯和,將得出的值回寫到緩衝存儲器3110內的原位置上。
另外,由第二傳輸部件3160進行的從緩衝存儲器3110向出錯位計算部件3131的數據傳輸是通過由DMA傳輸進行的存儲器訪問而進行的,但是緩衝存儲器3110與錯誤數據更新部件3134之間的數據傳輸是通過由總線控制器3180進行的普通(非DMA)存儲器訪問而進行的。而且,構成糾錯部件3130的4個電路3131~3134在分別進行同步並列處理,即進行流水線方式下的順序處理。
圖38是示出了在連續處理多個數據塊的數據的情況下,光碟控制器3100內的處理過程的時序圖。在本圖中,第1數據塊到第5數據塊是分別存儲在緩衝存儲器3110中的1個數據塊的數據。而且,「緩衝」表示由第一傳輸部件3150進行的從磁碟接口部件3120向緩衝存儲器3110的數據傳輸,「糾錯1」表示糾錯部件3130對由第一傳輸部件3150進行的經過數據選擇部件3190從磁碟接口部件3120輸入到糾錯部件3130中的C1序列的代碼串的糾錯,「糾錯2」表示糾錯部件3130對由第二傳輸部件3160進行的經過數據選擇部件3190從緩衝存儲器3110輸入到糾錯部件3130中的C2序列的代碼串的糾錯,「主機傳輸」表示由第三傳輸部件3170進行的從緩衝存儲器3110向主機接口部件3140的數據傳輸。
如本圖所示,將與同一數據塊相對應的並列的「緩衝」及「糾錯1」、對完成了「緩衝」及「糾錯1」的數據塊的「糾錯2」以及對完成了「糾錯2」的數據塊的「主機傳輸」作為流水線順序且並列地執行。例如,在周期T5,在從磁碟接口部件向緩衝存儲器3110傳輸和存儲第5數據塊的同時,在糾錯部件3130中進行「糾錯1」(C1序列的糾錯),從緩衝存儲器3110向糾錯部件3130傳輸第4數據塊並進行「糾錯2」(C2序列的糾錯),從緩衝存儲器3110向主機接口部件3140傳輸第3數據塊。
另外,在本圖中,並列進行3種用於訪問緩衝存儲器3110的數據傳輸,但這是從數據塊這個大方面的數據傳輸觀點上出發而表現出來的,從構成數據塊的各數據的角度考慮(瞬時地),只能執行其中一種數據傳輸。這樣的排他性數據傳輸及上述流水線控制,是通過總線控制器3180按照預定的優先順序,將由3個傳輸部件3150、3160、3170進行的數據傳輸以較小的時間單位進行切換並許可而實現的。
而且,在本圖中,不對第3數據塊進行「糾錯2」(C2序列的糾錯)就是在「糾錯1」(C1序列的糾錯)中,這個數據塊中沒有發現任何錯誤。即,在糾錯部件3130的出錯位計算部件3131中為第3數據塊的C1序列的代碼串計算出全部為零的出錯位,並將其存入輸入數據出錯位存儲部件3135的情況下,或在周期T3進行的糾錯1中對C1序列的全部代碼串執行糾錯並且不存在錯誤的情況下,糾錯部件3130通過參照出錯位存儲部件3135的內容,明確了不必對第3數據塊進行C2序列的糾錯,並且不進行與對該數據塊的C2序列糾錯相關的一切處理。即,通過糾錯部件3130將上述意思通知給總線控制器3180,對第3數據塊的C2序列的全部代碼串,不進行由第二傳輸部件3160執行的從緩衝存儲器3110向糾錯部件3130的數據傳輸。
這樣,由於並列進行對同一數據塊的緩衝和「糾錯1」,並將與錯誤檢測相關的信息存儲到輸入數據出錯位存儲部件3135中,因此在C1序列的代碼串中都沒有發生錯誤的情況下,糾錯部件3130通過參照輸入數據出錯位存儲部件3135而知道了此情況,因而能夠避免從緩衝存儲器2110讀出不需要進行C2序列糾錯的數據的所謂無效數據傳輸。即,若在現有技術中,對於從光碟讀出的全部數據,要進行存入緩衝存儲器、從緩衝存儲器中讀出以進行錯誤檢測·糾正、從緩衝存儲器中讀出以將該數據輸出到主計算機的所謂3種數據傳輸,但在本第三實施例中,對於沒有發生錯誤的數據,只進行存入緩衝存儲器和從緩衝存儲器中讀出以將數據輸出到主計算機的所謂2種數據傳輸。
圖39是圖38所示的時序圖的更詳細的示圖。在與「糾錯1」和「糾錯2」這2個處理相關的過程中分別示出了對C1序列及C2序列的處理。其中,在「糾錯1」中,只進行對C1序列的糾錯,而在「糾錯2」中,只進行對C2序列的糾錯。
具體地,在周期T1,糾錯部件3130對於通過第一傳輸部件3150從磁碟接口部件3120傳送來的第1數據塊,進行對C1序列的代碼串的糾錯。此時,出錯位計算部件3131將關於C1序列的全部代碼串而得出的出錯位存儲到輸入數據出錯位存儲部件3135中。
其中,糾錯部件3130與緩衝並行進行C1序列的糾錯(「糾錯1」),是因為從磁碟接口部件3120向緩衝存儲器3110的數據傳輸是按照從第1行到第n2行的順序,反覆在行方向上掃描乘積碼而進行的,因而使C1序列的糾錯變得很容易。
接著在周期T2,糾錯部件3130並列進行對第2數據塊的C1序列糾錯和對第1數據塊的C2序列糾錯。具體地,這些第2數據塊和第1數據塊的數據是時分地從數據選擇部件3190傳送來的,因此糾錯部件3130在經過數據選擇部件3190從磁碟接口部件3120輸入第2數據塊時,對其代碼串進行C1序列的糾錯,另一方面,在經過數據選擇部件3190從緩衝存儲器3110輸入第1數據塊時,對其代碼串進行C2序列的糾錯。
另外,如果在對第1數據塊進行的C1序列糾錯中,沒有檢測出錯誤,或全部錯誤被糾正以後的情況下,與第3數據塊和第4數據塊一樣,不進行對第1數據塊的C2序列糾錯。即,不進行通過第二傳輸部件3160將第1數據塊的C2序列的代碼串從緩衝存儲器3110傳輸到糾錯部件3130的操作。
圖40是示出了在糾錯器2130內的行方向及列方向上的單位處理過程的時序圖。本圖相當於圖39中所示的時序圖中的周期T2開頭部分中的「糾錯1」和「糾錯2」,示出了在糾錯部件3130中並列進行第2數據塊的C1序列糾錯(「糾錯1」)和第1數據塊的C2序列糾錯(「糾錯2」)的樣子。
在時間t1,出錯位計算部件3131並列進行對第2數據塊第1行代碼串的出錯位計算和對第1數據塊第1列代碼串的出錯位計算,並將各結果存入輸入數據出錯位存儲部件3135和緩衝數據出錯位存儲部件3136中。實際上,由於第2數據塊第1行代碼串和第1數據塊第1列代碼串是按照時間切換而從數據選擇部件3190中傳送的,因而出錯位計算部件3131在瞬時只是對其中一個代碼串進行出錯位計算。
在時間t2,出錯位計算部件3131並列進行對第2數據塊第2行代碼串的出錯位計算和對第1數據塊第2列代碼串的出錯位計算,並將各結果存入輸入數據出錯位存儲部件3135和緩衝數據出錯位存儲部件3136中。
與此並行,歐基裡德計算部件3132首先讀出存在輸入數據出錯位存儲部件3135中的第2數據塊第1行代碼串的出錯位,利用它進行歐基裡德計算,在將結果通知給鏈計算部件3133之後,接著進行對第1數據塊第1列代碼串的歐基裡德計算,並將結果通知給鏈計算部件3133。
而且,在時間t2的後一半時間中,鏈計算部件3133根據來自歐基裡德計算部件3132的通知,對第2數據塊第1行的代碼串進行鏈計算,並將結果通知給錯誤數據更新部件3134。
在時間t3,同樣地,出錯位計算部件3131並列進行對第2數據塊第3行代碼串的出錯位計算和對第1數據塊第3列代碼串的出錯位計算,與此並行,歐基裡德計算部件3132在進行對第2數據塊第2行代碼串的歐基裡德計算之後,接著進行對第1數據塊第2列代碼串的歐基裡德計算,與此並行,鏈計算部件3133在對第1數據塊第1行的代碼串進行鏈計算之後,接著對第2數據塊第2列的代碼串進行鏈計算,與此並行,錯誤數據更新部件3134在對第2數據塊第1行代碼串進行錯誤數據的更新(緩衝存儲器3110內錯誤數據的重寫)之後,接著對第1數據塊第1列代碼串進行錯誤數據的更新。
在以後的個時間tn中,同樣地並列執行對1行代碼串和1列代碼串的出錯位計算、歐基裡德計算、鏈計算及錯誤數據糾正。另外,在本圖中,雖然對全部行和列進行了歐基裡德計算、鏈計算及錯誤數據糾正,但這是基於在對這些代碼串進行出錯位計算時檢測出錯誤的原因,如果不是這樣,則不進行對該代碼串的歐基裡德計算、鏈計算及錯誤數據的糾正。
如上所述,在第三實施例中,在進行「緩衝」(從磁碟接口部件3120向緩衝存儲器3110的數據傳輸)的同時,並列進行對同一數據的C1序列糾錯(「糾錯1」)。由此,在將數據存入緩衝存儲器3110之後,就不需要所謂的讀出存在緩衝存儲器3110中的數據以用於C1序列糾錯的過程了。
而且,在與緩衝同時進行的糾錯中,由於一個數據塊的C1序列的錯誤檢測結果(出錯位)被記錄到輸入數據出錯位存儲部件3135中,因此在構成1個數據塊的全部C1序列代碼串中沒有發生錯誤的情況下,通過參照該記錄,能夠避免不必要的從緩衝存儲器3110讀出數據以進行C2序列糾錯的所謂無效數據傳輸。
這樣,依據第三實施例,不需要從緩衝存儲器3110讀出數據以進行C1序列糾錯和從緩衝存儲器3110中讀出數據以對沒有發生錯誤的數據塊進行C2序列糾錯,從而削減了對緩衝存儲器3110的訪問次數,並實現了更高速的低功耗光碟讀取裝置2000。
另外,在第三實施例中,糾錯部件3130反覆進行逐行或逐列糾錯,但也可以象第一實施例一樣,進行每隔4行和4列等多代碼串的並列糾錯。
例如,第三實施例中象這樣的由糾錯部件3130對4個代碼串並列進行糾錯的變形例只要象第一實施例中的糾錯部件5一樣,在糾錯部件3130中設置4個出錯位計算部件和用於將來自緩衝存儲器3110的數據分配到4個出錯位計算部件中的數據分配部件即可。由此,就能夠得到由第一實施例中的並列化而產生的糾錯高速化和由第三實施例中的預先進行C1序列的糾錯而產生的糾錯高速化這兩方面的效果。
而且,在第三實施例中,通過數據選擇部件3190和出錯位計算電路3131,按時間對分別從第一傳輸部件3150和第二傳輸部件3160傳送來的代碼串進行錯誤檢測,但是也可以代替這種結構,通過將只對來自第一傳輸部件3150的代碼串進行錯誤檢測的出錯位計算電路和只對來自第二傳輸部件3160的代碼串進行錯誤檢測的出錯位計算電路設計成2個獨立的出錯位計算電路,來同時並列進行對這2個代碼串的錯誤檢測。
以上根據第一~第三實施例對本發明進行了說明,但這並不意味著本發明只限於這些實施例。
例如,在第一~第三實施例中,對於1個數據塊的糾錯,只進行1次C1序列的糾錯和接在其後的C2序列糾錯,但是也可以在進行了這些糾錯之後,繼續進行C1序列的糾錯和接在其後的C2序列糾錯。由於通過增加糾錯的次數可以提高糾錯能力,因此只要考慮發現錯誤的數據量和在其它相關處理中所容許的時間,決定對各方向反覆進行糾錯的次數即可。
而且,通過組合3個實施例中各自不同的結構部件,可以實現各種不同的變形。例如,圖27中所示的第二及第三實施例中的對3種DMA傳輸的調度也可用於第一實施例中。
而且,第一~第三實施例是作為DVD-ROM等光碟的記錄媒體的磁碟驅動裝置,但是本發明涉及的糾錯裝置並不僅限於在這樣的數據存儲裝置中使用,也可以用於要求能夠對應轉播的數據高速地進行糾錯的機器,例如網絡通信中的中繼器等。
權利要求
1.一種反覆執行伴隨於對構成R行L列的塊碼的行方向及列方向的代碼串糾錯的運算的糾錯裝置,其特徵在於,包括存儲裝置,用於存儲所述塊碼;運算裝置,用於以所述塊碼的1行或1列代碼串為單位進行誤碼糾正所需要的運算;傳輸裝置,具有行方向傳輸部件,用於在R1為大於2小於R的整數時,對R行分別按順序反覆進行如下操作讀出存儲在所述存儲裝置中的塊碼的R1行代碼串並將其傳輸到所述運算裝置中,所述行方向傳輸部件在L1為大於2小於L的整數時,一邊在行方向上只移位L1個代碼,一邊反覆進行R1行L1列傳輸所述R1行L1列傳輸是指按順序對所述R1行中的各行進行連續讀出並列的L1個代碼並將其傳輸到所述運算裝置中;其中所述運算裝置在代碼是從所述行方向傳輸部件傳送來的情況下,對傳送來的每L1個代碼並列進行對所述R1行代碼串的所述運算,來構成與所述R1行不同行的代碼串。
2.如權利要求1所述的糾錯裝置,其特徵在於,所述塊碼為乘積碼,在構成所述塊碼的行方向及列方向的代碼串中分別包含信息代碼和糾錯碼,所述運算裝置包括用於以1行或1列代碼串為單位,檢測是否存在誤碼的錯誤檢測裝置,和用於在通過所述錯誤檢測裝置檢測出存在誤碼的情況下,將與該誤碼相當的所述存儲裝置中的代碼重寫成糾正後的值的誤碼更新裝置,所述運算裝置在代碼是從所述行方向傳輸部件傳送來的情況下,對傳送來的每L1個代碼並列進行對所述R1行代碼串的所述運算,來構成與所述R1行不同行的代碼串。
3.如權利要求2所述的糾錯裝置,其特徵在於,在所述存儲裝置中,屬於所述塊碼同一行的代碼被存入具有連續地址的存儲區域中,所述行方向傳輸部件從所述存儲裝置的具有連續地址的存儲區域中連續讀出所述L1個代碼。
4.如權利要求3所述的糾錯裝置,其特徵在於,所述存儲裝置為動態隨機存取存儲器,所述行方向傳輸部件以頁面模式從所述存儲裝置中讀出所述L1個代碼。
5.如權利要求4所述的糾錯裝置,其特徵在於,由所述行方向傳輸部件執行的傳輸是通過對所述存儲裝置的直接存儲器訪問而產生的傳輸。
6.如權利要求2所述的糾錯裝置,其特徵在於,所述錯誤檢測裝置包括R1個用於進行對1個代碼串的錯誤檢測的單位錯誤檢測部件和用於在從所述行方向傳輸部件傳送代碼的情況下,反覆進行將每次傳送的L1個代碼分別按順序分配到所述R1個單位錯誤檢測部件中的分配部件,所述R1個單位錯誤檢測部件分別相互獨立並且與所述行方向傳輸部件所執行的傳輸並行地進行所述錯誤檢測。
7.如權利要求6所述的糾錯裝置,其特徵在於,所述R1個單位錯誤檢測部件分別在將來自所述分配部件的L1個代碼反覆進行分配的情況下,在比該重複周期更短的周期內,完成對L1個代碼的錯誤檢測。
8.如權利要求7所述的糾錯裝置,其特徵在於,所述R1個單位錯誤檢測部件分別具有用於對1個代碼串計算出多個出錯位的積和運算電路。
9.如權利要求2所述的糾錯裝置,其特徵在於,在所述L除以所述L1所得的商為D、餘數為E時,所述行方向傳輸部件在一邊在行方向上只移位L1個代碼一邊重複D次所述的R1行L1列傳輸之後,對所述R1行分別按順序對各行連續讀出並列的E個代碼並將其傳輸到所述錯誤檢測裝置中,所述錯誤檢測裝置在進行了預定次數的對每L1個代碼的所述錯誤檢測之後,進行對每E個代碼的所述錯誤檢測。
10.如權利要求2所述的糾錯裝置,其特徵在於,所述傳輸裝置包括列方向傳輸部件,用於在L2為大於2小於L的整數時,對L列按順序反覆進行如下操作讀出存儲在所述存儲裝置中的塊碼的L2列代碼串並將其傳輸到錯誤檢測裝置中,所述列方向傳輸部件一邊在行方向上只移位L2個代碼,一邊反覆進行R行L2列傳輸所述R行L2列傳輸是指按順序對各行進行連續讀出並列的L2個代碼並將其傳輸到所述錯誤檢測裝置中,所述錯誤檢測裝置在從所述列方向傳輸部件傳送代碼的情況下,將每次傳送來的L2個代碼並列進行對所述L2列代碼串的錯誤檢測,作為屬於相對應的所述L2列代碼串的代碼。
11.如權利要求10所述的糾錯裝置,其特徵在於,所述R1和所述L2為R1=L2=j,所述錯誤檢測裝置包括j個用於進行對1個代碼串的錯誤檢測的單位錯誤檢測部件和用於在從所述行方向傳輸部件傳送代碼的情況下,反覆進行將每次傳送的L1個代碼分別按順序分配到所述j個單位錯誤檢測部件中,並在從所述列方向傳輸部件傳送代碼的情況下,反覆進行將傳送的L2個代碼分別分配到相對應的所述j個單位錯誤檢測部件中的分配部件,所述j個單位錯誤檢測部件分別相互獨立並且與所述行方向傳輸部件和所述列方向傳輸部件所執行的傳輸並行地進行所述錯誤檢測。
12.如權利要求11所示的糾錯裝置,其特徵在於,所述j個單位錯誤檢測部件分別在將來自所述分配部件的L1個代碼反覆進行分配的情況下,在比該重複周期更短的周期內,完成對L1個代碼的錯誤檢測,在將來自所述分配部件的L2個代碼中的一個反覆進行分配的情況下,在比該重複周期更短的周期內,完成對所分配的1個代碼的錯誤檢測。
13.如權利要求12所述的糾錯裝置,其特徵在於,所述R1、所述L1和所述L2為R1=L1=L2=j。
14.一種反覆執行伴隨於對構成R行L列的塊碼的行方向及列方向的代碼串糾錯的運算的糾錯裝置,其特徵在於,包括存儲裝置,用於存儲所述塊碼;運算裝置,用於以所述塊碼的1行或1列代碼串為單位進行誤碼糾正所需要的運算;傳輸裝置,具有列方向傳輸部件,用於在L2為大於2小於L的整數時,對L列按順序反覆進行如下操作讀出存儲在所述存儲裝置中的塊碼的L2列代碼串並將其傳輸到運算裝置中,所述列方向傳輸部件一邊在行方向上只移位L2個代碼,一邊反覆進行對所述R行分別按順序進行的R行L2列傳輸,所述R行L2列傳輸是指對各行連續讀出並列的L2個代碼並將其傳輸到所述運算裝置中;其中所述運算裝置在從所述列方向傳輸部件傳送代碼的情況下,將每次傳送來的L2個代碼並列進行對所述L2列代碼串的所述運算,作為屬於相對應的所述L2列代碼串的代碼。
15.如權利要求14所述的糾錯裝置,其特徵在於,所述塊碼為乘積碼,在構成所述塊碼的行方向及列方向的代碼串中分別包含信息代碼和糾錯碼,所述運算裝置包括用於以1行或1列代碼串為單位,檢測是否存在誤碼的錯誤檢測裝置,和用於在通過所述錯誤檢測裝置檢測出存在誤碼的情況下,將與該誤碼相當的所述存儲裝置中的代碼重寫成糾正後的值的誤碼更新裝置,所述方向傳輸部件對所述錯誤檢測裝置反覆傳輸所述代碼串,所述錯誤檢測裝置在從所述列方向傳輸部件傳送代碼的情況下,將每次傳送來的L2個代碼並列進行對所述L2列代碼串的錯誤檢測,作為屬於相對應的所述L2列代碼串的代碼。
16.如權利要求15所述的糾錯裝置,其特徵在於,在所述存儲裝置中,屬於所述塊碼同一行的代碼被存入具有連續地址的存儲區域中,所述列方向傳輸部件從所述存儲裝置的具有連續地址的存儲區域中連續讀出所述L2個代碼。
17.如權利要求16所述的糾錯裝置,其特徵在於,所述存儲裝置為動態隨機存取存儲器,所述列方向傳輸部件以頁面模式從所述存儲裝置中讀出所述L2個代碼。
18.如權利要求17所述的糾錯裝置,其特徵在於,由所述列方向傳輸部件執行的傳輸是通過對所述存儲裝置的直接存儲器訪問而產生的傳輸。
19.如權利要求15所述的糾錯裝置,其特徵在於,所述錯誤檢測裝置包括L2個用於進行對1個代碼串的錯誤檢測的單位錯誤檢測部件和用於在從所述列方向傳輸部件傳送代碼的情況下,反覆進行將每次傳送的L2個代碼分別按順序分配到相對應的所述L2個單位錯誤檢測部件中的分配部件,所述L2個單位錯誤檢測部件分別相互獨立並且與所述列方向傳輸部件所執行的傳輸並行地進行所述錯誤檢測。
20.如權利要求19所述的糾錯裝置,其特徵在於,所述L2個單位錯誤檢測部件分別在將來自所述分配部件的L2個代碼中的一個反覆進行分配的情況下,在比該重複周期更短的周期內,完成對所分配的一個代碼的錯誤檢測。
21.如權利要求20所述的糾錯裝置,其特徵在於,所述L2個單位錯誤檢測部件分別具有用於對1個代碼串計算出多個出錯位的積和運算電路。
22.如權利要求15所述的糾錯裝置,其特徵在於,在所述L除以所述L2所得的商為D、餘數為E時,所述列方向傳輸部件在一邊在行方向上只移位L2個代碼一邊重複D次所述的R行L2列傳輸之後,對所述R行分別按順序對各行連續讀出並列的E個代碼並將其傳輸到所述錯誤檢測裝置中,所述錯誤檢測裝置在進行了預定次數的對每L2個代碼的所述錯誤檢測之後,進行對每E個代碼的所述錯誤檢測。
23.一種用於在對從外部的第一裝置接收的代碼進行必要的糾錯後輸出到外部的第二裝置的糾錯裝置,其特徵在於,存儲裝置,具有用於存儲所述代碼的存儲區域;錯誤檢測裝置,用於以預定數目的代碼為單位,檢測是否存在錯誤的代碼;糾錯裝置,用於以預定數目的代碼為單位,糾正所述存儲裝置中的錯誤代碼;第一傳輸裝置,用於將從所述第一裝置輸出的代碼並行傳輸到所述存儲裝置和所述錯誤檢測裝置中,在將該代碼存入所述存儲裝置的同時,在所述錯誤檢測裝置中進行所述檢測;第二傳輸裝置,用於將通過所述錯誤檢測裝置檢測出存在錯誤代碼的所述預定數目的代碼從所述存儲裝置傳輸到所述糾錯裝置,並在所述糾錯裝置中對該代碼進行所述糾正;第三傳輸裝置,用於將通過所述錯誤檢測裝置或所述糾錯裝置檢測出不存在錯誤代碼或錯誤代碼經過糾正的預定數目的代碼從所述存儲裝置傳輸到所述第二裝置;傳輸控制裝置,用於控制所述第一~第三傳輸裝置,以使其分別排他地執行所述代碼傳輸。
24.如權利要求23所述的糾錯裝置,其特徵在於,所述錯誤檢測裝置具有檢測結果記錄部件,用於記錄是否存在錯誤代碼的檢測結果,所述糾錯裝置通過參照記錄在所述檢測結果記錄部件中的檢測結果,控制第二傳輸裝置以便僅僅將檢測出存在錯誤代碼的所述預定數目的代碼從所述存儲裝置中傳輸到所述糾錯裝置中。
25.如權利要求24所述的糾錯裝置,其特徵在於,所述第一裝置按順序反覆輸出構成R行L列塊碼的行方向代碼串,所述塊碼為乘積碼,在構成所述塊碼的行方向及列方向的代碼串中分別包含信息代碼和糾錯碼,所述糾錯裝置對行方向及列方向的代碼串進行糾錯,在對行方向的代碼串進行糾錯的情況下,通過參照記錄在所述檢測結果記錄部件中的檢測結果,控制第二傳輸裝置以便僅僅將檢測出存在錯誤代碼的行方向的代碼串從所述存儲裝置中傳輸到所述糾錯裝置中。
26.如權利要求25所述的糾錯裝置,其特徵在於,所述錯誤檢測裝置將對構成1個塊碼的全部行方向的代碼串的檢測結果存入並記錄到所述檢測結果記錄部件中,所述糾錯裝置在對列方向的代碼串進行糾錯的情況下,通過參照記錄在所述檢測結果記錄部件中的檢測結果,控制第二傳輸裝置以便僅僅將檢測出存在錯誤代碼的構成塊碼的列方向的代碼串從所述存儲裝置中傳輸到所述糾錯裝置中。
27.如權利要求23所述的糾錯裝置,其特徵在於,所述第二傳輸裝置具有行方向傳輸部件,用於在R1為大於2小於R的整數時,對R行按順序反覆進行如下操作從所述存儲裝置中讀出檢測出存在錯誤代碼的R1行代碼串並將其傳輸到所述糾錯裝置中,所述行方向傳輸部件在L1為大於2小於L的整數時,一邊在行方向上只移位L1個代碼,一邊反覆進行R1行L1列傳輸所述R1行L1列傳輸是指按順序對所述R1行中的各行進行連續讀出並列的L1個代碼並將其傳輸到所述糾錯裝置中;所述糾錯裝置在代碼是從所述行方向傳輸部件傳送來的情況下,對傳送來的每L1個代碼並列進行對所述R1行代碼串的糾錯,作為構成與所述R1行不同行的代碼串。
28.如權利要求27所述的糾錯裝置,其特徵在於,所述第二傳輸裝置還具有列方向傳輸部件,用於在L2為大於2小於L的整數時,對L列按順序反覆進行如下操作從所述存儲裝置中讀出檢測出存在錯誤代碼的塊碼的L2列代碼串並將其傳輸到所述糾錯裝置中,所述列方向傳輸部件一邊在行方向上只移位L2個代碼,一邊反覆進行R行L2列傳輸,所述R行L2列傳輸是指按順序對所述R行中的各行進行連續讀出並列的L2個代碼並將其傳輸到所述糾錯裝置中,所述糾錯裝置在從所述列方向傳輸部件傳送代碼的情況下,將每次傳送來的L2個代碼並列進行對所述L2列代碼串的糾錯,作為屬於相對應的所述L2列代碼串的代碼。
29.如權利要求23所述的糾錯裝置,其特徵在於,由所述第一傳輸裝置執行的從所述第一裝置向所述存儲裝置的代碼傳輸、由所述第二傳輸裝置執行的從所述存儲裝置向所述糾錯裝置的代碼傳輸及由所述第三傳輸裝置執行的從所述存儲裝置向所述第二裝置的代碼傳輸為由對所述存儲裝置的直接存儲器訪問所執行的傳輸,所述傳輸控制裝置在由所述第一~第三傳輸裝置執行的DMA傳輸中,以最高的優先度執行由第一傳輸裝置進行的DMA傳輸,在需要執行由所述第一傳輸裝置執行的DMA傳輸的情況下,在正在執行所述第一~第三傳輸裝置的DMA傳輸中的任一個時,在完成這個執行中的DMA傳輸後執行由所述第一傳輸裝置執行的DMA傳輸,在沒有執行所述第一~第三傳輸裝置的DMA傳輸中的任一個時,立刻執行由所述第一傳輸裝置執行的DMA傳輸。
30.如權利要求29所述的糾錯裝置,其特徵在於,所述傳輸控制裝置在由所述第一~第三傳輸裝置執行的DMA傳輸中,以最低的優先度執行由第二傳輸裝置進行的DMA傳輸,在需要執行由所述第二傳輸裝置執行的DMA傳輸的情況下,只有在沒有執行所述第一~第三傳輸裝置的DMA傳輸中的任一個時,才執行由所述第二傳輸裝置執行的DMA傳輸。
31.如權利要求30所述的糾錯裝置,其特徵在於,所述糾錯裝置在根據通過所述第二傳輸裝置傳輸的代碼串確定錯誤代碼和糾正後的值之後,在所述傳輸控制裝置的控制下,將所述存儲裝置中所對應的錯誤代碼重寫成糾正後的值,所述傳輸控制裝置只有在不執行所述第一~第三傳輸裝置的DMA傳輸中的任一個時,才執行由所述糾錯裝置進行的錯誤代碼的重寫。
32.一種用於在對從外部的第一裝置接收的代碼進行必要的糾錯後輸出到外部的第二裝置的糾錯裝置,其特徵在於,存儲裝置,具有用於存儲所述代碼的存儲區域;糾錯裝置,用於以預定數目的代碼為單位,檢測錯誤代碼並糾正對應的所述存儲裝置中的錯誤代碼;代碼選擇裝置,用於選擇從所述第一裝置傳送的代碼和從所述存儲裝置傳送的代碼中的任一個,送至所述糾錯裝置中,並在所述糾錯裝置中進行所述檢測和糾正;第一傳輸裝置,用於將從所述第一裝置輸出的代碼並行傳輸到所述存儲裝置和所述代碼選擇裝置中,在將該代碼存入所述存儲裝置的同時,在所述代碼選擇裝置中進行選擇並將其送至糾錯裝置,在所述錯誤檢測裝置中對該代碼進行所述檢測和糾正;第二傳輸裝置,用於將預定數目的代碼從所述存儲裝置傳輸到所述代碼選擇裝置,在所述代碼選擇裝置中選擇該代碼並將其送至所述糾錯裝置中,在所述糾錯裝置中對該代碼進行所述檢測和糾正;第三傳輸裝置,用於將通過所述糾錯裝置檢測出不存在錯誤代碼或錯誤代碼經過糾正的預定數目的代碼從所述存儲裝置傳輸到所述第二裝置;傳輸控制裝置,用於控制所述第一~第三傳輸裝置,以使其分別排他地執行所述代碼傳輸。
33.如權利要求32所述的糾錯裝置,其特徵在於,所述第一裝置按順序反覆輸出構成R行L列塊碼的行方向代碼串,所述塊碼為乘積碼,在構成所述塊碼的行方向及列方向的代碼串中分別包含信息代碼和糾錯碼,所述第一傳輸裝置,將從所述第一裝置輸出的代碼並行傳輸到所述存儲裝置和所述代碼選擇裝置中,在將該代碼存入所述存儲裝置的同時,在所述代碼選擇裝置中進行選擇並將其送至糾錯裝置,在所述錯誤檢測裝置中對該代碼進行所述檢測和糾正;所述第二傳輸裝置,將所述塊碼的列方向代碼串從所述存儲裝置傳輸到所述代碼選擇裝置,在所述代碼選擇裝置中選擇該代碼並將其送至所述糾錯裝置中,在所述糾錯裝置中對該代碼進行所述檢測和糾正。
34.如權利要求33所述的糾錯裝置,其特徵在於,所述糾錯裝置包括用於以行方向或列方向的代碼串為單位,檢測是否存在錯誤代碼的錯誤檢測部件,和用於在通過所述錯誤檢測部件檢測出存在錯誤代碼的情況下,將與該錯誤代碼相對應的所述存儲裝置中的代碼重寫成糾正後的值的代碼更新部件,所述錯誤檢測部件包括用於記錄對通過所述第一傳輸裝置從所述第一裝置傳輸來的行方向代碼串的錯誤檢測結果的行方向檢測結果記錄部件,和用於記錄對通過所述第二傳輸裝置從所述存儲裝置傳輸來的列方向代碼串的錯誤檢測結果的列方向檢測結果記錄部件,所述錯誤代碼更新部件利用記錄在所述行方向檢測結果記錄部件及所述列方向檢測結果記錄部件中的檢測結果,重寫所述存儲裝置中的代碼。
35.如權利要求34所述的糾錯裝置,其特徵在於,所述錯誤檢測部件在進行行方向的錯誤檢測的情況下,將對構成1個塊碼的全部行方向代碼串的檢測結果存入和記錄到所述行方向檢測結果記錄部件中,在進行列方向糾錯的情況下,通過參照記錄在所述檢測結果記錄部件中的檢測結果,控制第二傳輸裝置以便僅僅將檢測出存在錯誤代碼的構成塊碼的列方向的代碼串從所述存儲裝置中傳輸到所述糾錯裝置中。
36.如權利要求35所述的糾錯裝置,其特徵在於,所述傳輸控制裝置一邊以構成這些代碼串的部分代碼為單位切換由所述第一傳輸裝置執行的從所述第一裝置向所述代碼選擇裝置的1行代碼串的傳輸和由所述第二傳輸裝置執行的從所述存儲裝置向所述代碼選擇裝置的1列代碼串的傳輸,一邊交互地執行,所述錯誤檢測部件通過以所述部分代碼為單位,交互地切換對由所述第一傳輸裝置從所述第一裝置傳輸來的行方向代碼串的錯誤檢測和對由所述第二傳輸裝置從所述存儲裝置傳輸來的列方向代碼串的錯誤檢測,並列進行對各代碼串的錯誤檢測,並將各自的結果記錄到行方向檢測結果記錄部件及列方向檢測結果記錄部件中,所述錯誤代碼更新部件通過順序參照記錄在所述行方向檢測結果記錄部件和所述列方向檢測結果記錄部件中的檢測結果,順序地進行行方向上的所述存儲裝置中的代碼重寫和列方向上的所述存儲裝置中的代碼重寫。
37.如權利要求32所述的糾錯裝置,其特徵在於,所述第二傳輸裝置還具有列方向傳輸部件,用於在L2為大於2小於L的整數時,對L列按順序反覆進行如下操作從所述存儲裝置中讀出檢測出存在錯誤代碼的塊碼的L2列代碼串並經過所述代碼選擇裝置將其傳輸到所述糾錯裝置中,所述列方向傳輸部件一邊在行方向上只移位L2個代碼,一邊反覆進行R行L2列傳輸,所述R行L2列傳輸是指按順序對所述R行中的各行進行連續讀出並列的L2個代碼並將其傳輸到所述糾錯裝置中,所述糾錯裝置在從所述列方向傳輸部件傳送代碼的情況下,將每次傳送來的L2個代碼並列進行對所述L2列代碼串的糾錯,作為屬於相對應的所述L2列代碼串的代碼。
38.如權利要求32所述的糾錯裝置,其特徵在於,由所述第一傳輸裝置執行的從所述第一裝置向所述存儲裝置的代碼傳輸、由所述第二傳輸裝置執行的從所述存儲裝置向所述糾錯裝置的代碼傳輸及由所述第三傳輸裝置執行的從所述存儲裝置向所述第二裝置的代碼傳輸為由對所述存儲裝置的直接存儲器訪問所執行的傳輸,所述傳輸控制裝置在由所述第一~第三傳輸裝置執行的DMA傳輸中,以最高的優先度執行由第一傳輸裝置進行的DMA傳輸,在需要執行由所述第一傳輸裝置執行的DMA傳輸的情況下,在正在執行所述第一~第三傳輸裝置的DMA傳輸中的任一個時,在完成這個執行中的DMA傳輸後執行由所述第一傳輸裝置執行的DMA傳輸,在沒有執行所述第一~第三傳輸裝置的DMA傳輸中的任一個時,立刻執行由所述第一傳輸裝置執行的DMA傳輸。
39.如權利要求38所述的糾錯裝置,其特徵在於,所述傳輸控制裝置在由所述第一~第三傳輸裝置執行的DMA傳輸中,以最低的優先度執行由第二傳輸裝置進行的DMA傳輸,在需要執行由所述第二傳輸裝置執行的DMA傳輸的情況下,只有在沒有執行所述第一~第三傳輸裝置的DMA傳輸中的任一個時,才執行由所述第二傳輸裝置執行的DMA傳輸。
40.如權利要求39所述的糾錯裝置,其特徵在於,所述傳輸控制裝置只有在不執行所述第一~第三傳輸裝置的DMA傳輸中的任一個時,才執行由所述錯誤代碼更新部件進行的所述存儲裝置中的代碼的重寫。
全文摘要
包括用於存儲n2行n1列的乘積碼的緩衝存儲器1、用於對4個代碼串同時並列執行糾錯的糾錯部件5和用於在C1方向上進行糾錯的情況下,從緩衝存儲器1中讀出乘積碼的4行代碼並將其傳輸到糾錯部件5中的總線控制器2,總線控制器2一邊在行方向上移位4個代碼,一邊重複進行4行4列傳輸,即順序地對4行中的各行進行連續讀出並列的4個代碼並將其傳輸到糾錯部件5中。
文檔編號G11B20/18GK1233053SQ9910556
公開日1999年10月27日 申請日期1999年2月24日 優先權日1998年2月25日
發明者中辻文男, 橋本祐一 申請人:松下電器產業株式會社