日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

糾錯裝置的制作方法

文檔序號:7506878閱讀:245來源:國知局
專利名稱:糾錯裝置的制作方法
技術領域
本發(fā)明涉及進行伴隨于糾正在編碼數(shù)據(jù)中發(fā)生的錯誤的處理的裝置,特別涉及對由2維構成的塊碼進行高速糾錯的裝置。
背景技術
在磁盤和光盤等作為記錄媒體的數(shù)據(jù)存儲裝置中,會由于記錄媒體上的劃傷和污漬而引起數(shù)據(jù)錯誤。為了使恢復這樣的錯誤數(shù)據(jù)成為可能,在將數(shù)據(jù)記錄到記錄媒體上時,把用于糾錯的代碼(以下稱之為“糾錯碼”或“奇偶校驗數(shù)據(jù)”)附加到數(shù)據(jù)中,在進行再現(xiàn)時利用糾錯碼檢測出錯誤的數(shù)據(jù),并進行將其糾正為正確數(shù)據(jù)的處理。在這種附加糾錯碼及糾錯處理(以下將這兩種處理合稱為“伴隨糾錯的處理”)中,為了提高其糾錯能力,在大多數(shù)系統(tǒng)中采用Reed-Solomon碼作為糾錯碼,并采用乘積碼作為數(shù)據(jù)的構成方法。
圖1示出了乘積碼。對于由k1×k2個字節(jié)構成的信息數(shù)據(jù),在行方向上(以下稱為“C1序列”)上附加m1字節(jié)的奇偶校驗數(shù)據(jù),在列方向上(以下稱為“C2序列”)上附加m2字節(jié)的奇偶校驗數(shù)據(jù)。在由這些信息數(shù)據(jù)、C1個奇偶校驗數(shù)據(jù)及C2個奇偶校驗數(shù)據(jù)構成了一個作為糾錯最大單位的數(shù)據(jù)塊時,其字節(jié)數(shù)為n1×n2字節(jié)。通常,作為將信息數(shù)據(jù)和奇偶校驗數(shù)據(jù)存儲到DRAM等存儲器中的方法,使C1序列中的存儲器地址加1以便于進行存儲。由此,構成C1序列的代碼串的數(shù)據(jù)被存儲到地址連續(xù)的存儲區(qū)域中,但構成C2序列的代碼串的數(shù)據(jù)則被存儲到地址不連續(xù)的存儲區(qū)域中。構成乘積碼的各個代碼被簡稱為“數(shù)據(jù)”。
圖2示出了與C1代碼串對應的糾錯流。首先對第1行的代碼串進行糾錯。接著對第2行的代碼串進行糾錯。對全部n2行重復這樣的操作。即,在列方向上逐行進行掃描該行中的全部數(shù)據(jù)并進行糾錯的操作。所謂“掃描”就是在從存儲區(qū)域中讀出作為錯誤檢測和糾正的對象的數(shù)據(jù)時的讀出順序。并且,在“錯誤檢測”中不包含所謂的糾錯處理,但在“糾錯”中包含作為其前置處理的錯誤檢測。
圖3示出了與C2代碼串對應的糾錯流。首先對第1列的代碼串進行糾錯。接著對第2列的代碼串進行糾錯。對全部n1列重復這樣的操作。即,在行方向上逐列進行掃描該列中的全部數(shù)據(jù)并進行糾錯的操作。
圖4是沿著上述流向進行糾錯的現(xiàn)有糾錯裝置的構成示意圖。其中,d1到d100是100字節(jié)的信息數(shù)據(jù),p1到p10是10字節(jié)的奇偶校驗數(shù)據(jù),并且這些數(shù)據(jù)構成了1個代碼串。
從存儲器中讀出這些信息數(shù)據(jù)及奇偶校驗數(shù)據(jù)并順序輸入到出錯位生成裝置900中。出錯位生成裝置900在輸入一個數(shù)據(jù)時進行預定的運算,到完成了全部輸入構成1個代碼串的信息數(shù)據(jù)d1~d100和奇偶校驗數(shù)據(jù)p1~p10時為止,生成10個出錯位。在這10個出錯位中存在非零數(shù)的情況下,由于在該代碼串中發(fā)生了錯誤,所以錯誤位置·錯誤數(shù)值運算裝置901利用這些出錯位計算出錯誤位置和錯誤數(shù)值。其中,錯誤位置是表示代碼串中的第幾個數(shù)據(jù)是錯誤數(shù)據(jù)的信息,錯誤數(shù)值表示錯誤的大小。最后,錯誤數(shù)據(jù)更新裝置902通過這些錯誤位置和錯誤數(shù)值,從存儲器中讀出該代碼串中的錯誤數(shù)據(jù),并將糾正后的數(shù)據(jù)回寫到原來的位置上。在每個代碼串中重復上述操作。
如上所述,現(xiàn)有的糾錯裝置通過在對C1序列進行逐行掃描和糾錯時,對C2序列進行逐列掃描和糾錯,進行對一個數(shù)據(jù)塊的全部代碼串的糾錯。
但是,隨著最近以光盤驅(qū)動器裝置為代表的數(shù)據(jù)存儲裝置對處理速度高速化的要求越來越嚴格,現(xiàn)有的糾錯裝置適應這樣的要求是非常困難的。
為了滿足這樣的嚴格要求,雖然考慮到在1臺數(shù)據(jù)存儲裝置內(nèi)并列設計多個糾錯裝置,卻過度增大了電路規(guī)模而顯著降低了性能價格比。

發(fā)明內(nèi)容
本發(fā)明鑒于上述問題,其目的是提供以較小的電路規(guī)模高速行伴隨于糾錯的處理的糾錯裝置。
為了達到上述目的,根據(jù)本發(fā)明的第一項發(fā)明,一種反復執(zhí)行伴隨于對構成R行L列的塊碼的行方向及列方向的代碼串糾錯的運算的糾錯裝置,其特征在于,包括存儲裝置,用于存儲所述塊碼;運算裝置,用于以所述塊碼的1行或1列代碼串為單位進行誤碼糾正所需要的運算;傳輸裝置,具有行方向傳輸部件,用于在R1為大于2小于R的整數(shù)時,對R行分別按順序反復進行如下操作讀出存儲在所述存儲裝置中的塊碼的R1行代碼串并將其傳輸?shù)剿鲞\算裝置中,所述行方向傳輸部件在L1為大于2小于L的整數(shù)時,在行方向上只移位L1個代碼,反復進行R1行L1列傳輸所述R1行L1列傳輸是指按順序?qū)λ鯮1行中的各行進行連續(xù)讀出并列的L1個代碼并將其傳輸?shù)剿鲞\算裝置中;所述運算裝置在代碼是從所述行方向傳輸部件傳送來的情況下,對傳送來的每L1個代碼并列進行對所述R1行代碼串的所述運算,來構成與所述R1行不同行的代碼串。
由此,行方向上的糾錯是對多個代碼串并列進行并在行方向上分割多行代碼串,并使得到的多個小數(shù)據(jù)塊分別按照Z字形掃描順序進行糾錯。即,按照一邊換行一邊只對各行的一部分代碼反復掃描的順序并列地進行糾錯,因此與單純的換行對各行全部代碼反復掃描的并列處理相比,雖然需要以相同的速度進行掃描和糾錯,但降低了輸入到各行的糾錯電路中的代碼的平均輸入速度,并縮小了每行的糾錯電路中所必需的隊列緩沖器等的電路規(guī)模。而且,由于各行的掃描在同一行中是連續(xù)的并且以編碼為對象,所以在塊碼被存儲在具有2維地址的DRAM等存儲區(qū)域中的情況下,可以對同一行地址中的連續(xù)列地址進行訪問,從而使高速掃描成為可能。
并且,根據(jù)本發(fā)明的第2項發(fā)明,在本發(fā)明的第1項發(fā)明的糾錯裝置中,所述塊碼為乘積碼,在構成所述塊碼的行方向及列方向的代碼串中分別包含信息代碼和糾錯碼,所述運算裝置包括用于以1行或1列代碼串為單位,檢測是否存在誤碼的錯誤檢測裝置,和用于在通過所述錯誤檢測裝置檢測出存在誤碼的情況下,將與該誤碼相當?shù)乃龃鎯ρb置中的代碼重寫成糾正后的值的誤碼更新裝置,
所述運算裝置在代碼是從所述行方向傳輸部件傳送來的情況下,對傳送來的每L1個代碼并列進行對所述R1行代碼串的所述運算,來構成與所述R1行不同行的代碼串。
由此,由于依據(jù)本發(fā)明的糾錯裝置能夠適用于對乘積碼糾錯中的行方向上的錯誤檢測,從而提高了光盤等的讀出裝置及數(shù)據(jù)通信中的接收裝置等執(zhí)行對接收的乘積碼進行糾錯的裝置的錯誤檢測速度。
并且,根據(jù)本發(fā)明的第3項發(fā)明,在本發(fā)明的第2項發(fā)明的糾錯裝置中,在所述存儲裝置中,屬于所述塊碼同一行的代碼被存入具有連續(xù)地址的存儲區(qū)域中,所述行方向傳輸部件從所述存儲裝置的具有連續(xù)地址的存儲區(qū)域中連續(xù)讀出所述L1個代碼。
由此,為了從存儲裝置中讀出屬于同一行的代碼,增加輸出到存儲裝置中的地址,從而縮短了從存儲裝置中讀出的時間。
并且,根據(jù)本發(fā)明的第4項發(fā)明,在本發(fā)明的第3項發(fā)明的糾錯裝置中,所述存儲裝置為動態(tài)隨機存取存儲器,所述行方向傳輸部件以頁面模式從所述存儲裝置中讀出所述L1個代碼。
由此,為了從存儲裝置中讀出屬于同一行的代碼,在將1個RAS地址輸出到存儲裝置中之后連續(xù)輸出CAS地址,從而謀求DRAM的命中頁的讀出速度高速化。
并且,根據(jù)本發(fā)明的第5項發(fā)明,在本發(fā)明的第4項發(fā)明的糾錯裝置中,由所述行方向傳輸部件執(zhí)行的傳輸是通過對所述存儲裝置的直接存儲器訪問而產(chǎn)生的傳輸。
由此,由于作為能夠在錯誤檢測裝置中并列處理的對象的全部代碼被連續(xù)從存儲裝置中讀出和輸入,從而避免了在由錯誤檢測裝置對1個較小的數(shù)據(jù)塊進行錯誤檢測時中斷代碼串的輸入,有效地實現(xiàn)基于流水線處理的糾錯。
并且,根據(jù)本發(fā)明的第6項發(fā)明,在本發(fā)明的第2項發(fā)明的糾錯裝置中,所述錯誤檢測裝置包括R1個用于進行對1個代碼串的錯誤檢測的單位錯誤檢測部件和用于在從所述行方向傳輸部件傳送代碼的情況下,反復進行將每次傳送的L1個代碼分別按順序分配到所述R1個單位錯誤檢測部件中的分配部件,
所述R1個單位錯誤檢測部件分別相互獨立并且與所述行方向傳輸部件所執(zhí)行的傳輸并行地進行所述錯誤檢測。
由此,在行方向上的糾錯中,各個單位錯誤檢測裝置以一次L1個代碼的頻率從分配裝置輸入R1次代碼并在從分配裝置向其它單位錯誤檢測裝置輸入代碼期間進行錯誤檢測,從而減輕了對各個單位錯誤檢測裝置要求的處理能力并削減了電路規(guī)模。
并且,根據(jù)本發(fā)明的第7項發(fā)明,在本發(fā)明的第6項發(fā)明的糾錯裝置中,所述R1個單位錯誤檢測部件分別在將來自所述分配部件的L1個代碼反復進行分配的情況下,在比該重復周期短的周期內(nèi),完成對L1個代碼的錯誤檢測。
由此,在列方向上的糾錯中,對于各個單位錯誤檢測裝置來說,代碼的輸入率(在單位時間內(nèi)輸入的代碼個數(shù))在處理能力(單位時間內(nèi)接受錯誤檢測處理的代碼個數(shù))的范圍之內(nèi),從而縮小了各個單位錯誤檢測裝置的輸入段中所必需的隊列緩沖器的大小。
并且,根據(jù)本發(fā)明的第8項發(fā)明,在本發(fā)明的第7項發(fā)明的糾錯裝置中,所述R1個單位錯誤檢測部件分別具有用于對1個代碼串計算出多個出錯位的積和運算電路。
由此,依據(jù)本發(fā)明的糾錯裝置是適用于Reed-Solomon碼的裝置。
并且,根據(jù)本發(fā)明的第9項發(fā)明,在本發(fā)明的第2項發(fā)明的糾錯裝置中,在所述L除以所述L1所得的商為D、余數(shù)為E時,所述行方向傳輸部件在一邊在行方向上只移位L1個代碼一邊重復D次所述的R1行L1列傳輸之后,對所述R1行分別按順序?qū)Ω餍羞B續(xù)讀出并列的E個代碼并將其傳輸?shù)剿鲥e誤檢測裝置中,所述錯誤檢測裝置在進行了預定次數(shù)的對每L1個代碼的所述錯誤檢測之后,進行對每E個代碼的所述錯誤檢測。
由此,即使構成乘積碼的行方向上的碼長是一次連續(xù)讀出的代碼數(shù)L1的倍數(shù),直到各代碼串的結(jié)尾,都可以無問題地并列執(zhí)行糾錯,從而實現(xiàn)了與乘積碼的大小無關的柔性糾錯裝置。
并且,根據(jù)本發(fā)明的第10項發(fā)明,在本發(fā)明的第2項發(fā)明的糾錯裝置中,所述傳輸裝置包括列方向傳輸部件,用于在L2為大于2小于L的整數(shù)時,對L列按順序反復進行如下操作讀出存儲在所述存儲裝置中的塊碼的L2列代碼串并將其傳輸?shù)藉e誤檢測裝置中,所述列方向傳輸部件在行方向上只移位L2個代碼,反復進行R行L2列傳輸所述R行L2列傳輸是指按順序?qū)Ω餍羞M行連續(xù)讀出并列的L2個代碼并將其傳輸?shù)剿鲥e誤檢測裝置中,所述錯誤檢測裝置在從所述列方向傳輸部件傳送代碼的情況下,將每次傳送來的L2個代碼并列進行對所述L2列代碼串的錯誤檢測,作為屬于相對應的所述L2列代碼串的代碼。
由此,對多個代碼串并列執(zhí)行方向上的糾錯和列方向上的糾錯,而且,按照換行只對各行的一部分代碼反復掃描的順序執(zhí)行對列方向的糾錯。這樣,與單純的換行對各行的全部代碼反復掃描的并列處理相比,雖然需要以相同的速度進行掃描和糾錯,但降低了輸入到各行的糾錯電路中的代碼的平均輸入速度,并縮小了每行的糾錯電路中所必需的隊列緩沖器等的電路規(guī)模。
并且,根據(jù)本發(fā)明的第11項發(fā)明,在本發(fā)明的第10項發(fā)明的糾錯裝置中,所述R1和所述L2為R1=L2=j,所述錯誤檢測裝置包括j個用于進行對1個代碼串的錯誤檢測的單位錯誤檢測部件和用于在從所述行方向傳輸部件傳送代碼的情況下,反復進行將每次傳送的L1個代碼分別按順序分配到所述j個單位錯誤檢測部件中,并在從所述列方向傳輸部件傳送代碼的情況下,反復進行將傳送的L2個代碼分別分配到相對應的所述j個單位錯誤檢測部件中的分配部件,所述j個單位錯誤檢測部件分別相互獨立并且與所述行方向傳輸部件和所述列方向傳輸部件所執(zhí)行的傳輸并行地進行所述錯誤檢測。
由此,作為行方向糾錯中的并列處理對象的行數(shù)與作為列方向糾錯中的并列處理對象的列數(shù)相等,從而各方向的糾錯中所需要的單位錯誤檢測裝置的個數(shù)相同,無論進行哪個方向上的糾錯,都能夠充分利用錯誤檢測裝置的能力。
并且,根據(jù)本發(fā)明的第12項發(fā)明,在本發(fā)明的第11項發(fā)明的糾錯裝置中,所述j個單位錯誤檢測部件分別在將來自所述分配部件的L1個代碼反復進行分配的情況下,在比該重復周期短的周期內(nèi),完成對L1個代碼的錯誤檢測,在將來自所述分配部件的L2個代碼中的一個反復進行分配的情況下,在比該重復周期更短的周期內(nèi),完成對所分配的1個代碼的錯誤檢測。
由此,在列方向糾錯中,對于各個單位錯誤檢測裝置來說,代碼的輸入率(在單位時間內(nèi)輸入的代碼個數(shù))在處理能力(單位時間內(nèi)接受錯誤檢測處理的代碼個數(shù))的范圍之內(nèi),從而縮小了各個單位錯誤檢測裝置的輸入段中所必需的隊列緩沖器的大小。
并且,根據(jù)本發(fā)明的第13項發(fā)明,在本發(fā)明的第12項發(fā)明的糾錯裝置中,所述R1、所述L1和所述L2為R1=L1=L2=j。
由此,在行方向及列方向中的任一方向上的糾錯中,乘積碼的讀出順序相同,從而使與對存儲裝置的訪問相關的傳輸裝置的控制電路簡單化。
并且,根據(jù)本發(fā)明的第14項發(fā)明,一種反復執(zhí)行伴隨于對構成R行L列的塊碼的行方向及列方向的代碼串糾錯的運算的糾錯裝置,其特征在于,包括存儲裝置,用于存儲所述塊碼;運算裝置,用于以所述塊碼的1行或1列代碼串為單位進行誤碼糾正所需要的運算;傳輸裝置,具有列方向傳輸部件,用于在L2為大于2小于L的整數(shù)時,對L列按順序反復進行如下操作讀出存儲在所述存儲裝置中的塊碼的L2列代碼串并將其傳輸?shù)竭\算裝置中,所述列方向傳輸部件在行方向上只移位L2個代碼,反復進行對所述R行分別按順序進行的R行L2列傳輸,所述R行L2列傳輸是指對各行連續(xù)讀出并列的L2個代碼并將其傳輸?shù)剿鲞\算裝置中;其中所述運算裝置在從所述列方向傳輸部件傳送代碼的情況下,將每次傳送來的L2個代碼并列進行對所述L2列代碼串的所述運算,作為屬于相對應的所述L2列代碼串的代碼。
由此,列方向上的糾錯是對多個代碼串并列進行并在行方向上分割多行代碼串,并使得到的多個小數(shù)據(jù)塊分別按照Z字形掃描順序進行糾錯。即,按照換行只對各行的一部分代碼反復掃描的順序并列地進行糾錯,因此與單純的換列對各列全部代碼反復掃描的并列處理相比,雖然需要以相同的速度進行掃描和糾錯,但降低了輸入到各列的糾錯電路中的代碼的平均輸入速度,并縮小了每行的糾錯電路中所必需的隊列緩沖器等的電路規(guī)模。而且,由于各行的掃描在同一行中是連續(xù)的并且以編碼為對象,所以在塊碼被存儲在具有2維地址的DRAM等存儲區(qū)域中的情況下,可以對同一行地址中的連續(xù)列地址進行訪問,從而使高速掃描成為可能。
而且,由于進行行方向糾錯的糾錯裝置所具備的上述特征構成要素也適用于列方向糾錯,所以能夠得到與行方向糾錯相關的糾錯裝置相同的效果。
而且,為了達到上述目的,根據(jù)本發(fā)明的第23項發(fā)明的一種用于在對從外部的第一裝置接收的代碼進行糾錯后輸出到外部的第二裝置的糾錯裝置,其特征在于,存儲裝置,具有用于存儲所述代碼的存儲區(qū)域;錯誤檢測裝置,用于以預定數(shù)目的代碼為單位,檢測是否存在錯誤的代碼;糾錯裝置,用于以預定數(shù)目的代碼為單位,糾正所述存儲裝置中的錯誤代碼;第一傳輸裝置,用于將從所述第一裝置輸出的代碼并行傳輸?shù)剿龃鎯ρb置和所述錯誤檢測裝置中,在將該代碼存入所述存儲裝置的同時,在所述錯誤檢測裝置中進行所述檢測;第二傳輸裝置,用于將通過所述錯誤檢測裝置檢測出存在錯誤代碼的所述預定數(shù)目的代碼從所述存儲裝置傳輸?shù)剿黾m錯裝置,并在所述糾錯裝置中對該代碼進行所述糾正;第三傳輸裝置,用于將通過所述錯誤檢測裝置或所述糾錯裝置檢測出不存在錯誤代碼或錯誤代碼經(jīng)過糾正的預定數(shù)目的代碼從所述存儲裝置傳輸?shù)剿龅诙b置;傳輸控制裝置,用于控制所述第一至第三傳輸裝置,以使其分別排他地執(zhí)行所述代碼傳輸。
由此,在從第一裝置輸出的代碼被存儲在存儲裝置中的同時接受錯誤檢測處理,從而與現(xiàn)有的在被暫時存入存儲裝置之后讀出并輸入到糾錯裝置中的處理順序相比,在縮短了糾錯所要求的整個處理時間的同時減少了對存儲裝置的訪問次數(shù),并實現(xiàn)了高速的低功耗糾錯裝置。
并且,根據(jù)本發(fā)明的第24項發(fā)明,在本發(fā)明的第23項的發(fā)明的糾錯裝置中,所述錯誤檢測裝置具有檢測結(jié)果記錄部件,用于記錄是否存在錯誤代碼的檢測結(jié)果,所述糾錯裝置通過參照記錄在所述檢測結(jié)果記錄部件中的檢測結(jié)果,控制第二傳輸裝置以便僅僅將檢測出存在錯誤代碼的所述預定數(shù)目的代碼從所述存儲裝置中傳輸?shù)剿黾m錯裝置中。
由此,在存入存儲裝置的同時進行的錯誤檢測中,對于沒有檢測出錯誤的代碼,跳過了所謂從存儲裝置向糾錯裝置傳輸及通過糾錯裝置糾錯的兩個處理,從而在使糾錯高速化的同時,避免了對存儲裝置的無效訪問。
并且,根據(jù)本發(fā)明的第25項發(fā)明,在本發(fā)明的第24項的發(fā)明的糾錯裝置中,所述第一裝置按順序反復輸出構成R行L列塊碼的行方向代碼串,所述塊碼為乘積碼,在構成所述塊碼的行方向及列方向的代碼串中分別包含信息代碼和糾錯碼,所述糾錯裝置對行方向及列方向的代碼串進行糾錯,在對行方向的代碼串進行糾錯的情況下,通過參照記錄在所述檢測結(jié)果記錄部件中的檢測結(jié)果,控制第二傳輸裝置以便僅僅將檢測出存在錯誤代碼的行方向的代碼串從所述存儲裝置中傳輸?shù)剿黾m錯裝置中。
由此,依據(jù)本發(fā)明的糾錯裝置能夠用于要求高速執(zhí)行對乘積碼的糾錯的光盤等讀出裝置和數(shù)據(jù)通信中的接收裝置中。
并且,根據(jù)本發(fā)明的第26項發(fā)明,在本發(fā)明的第25項的發(fā)明的糾錯裝置中,所述錯誤檢測裝置將對構成1個塊碼的全部行方向的代碼串的檢測結(jié)果存入并記錄到所述檢測結(jié)果記錄部件中,所述糾錯裝置在對列方向的代碼串進行糾錯的情況下,通過參照記錄在所述檢測結(jié)果記錄部件中的檢測結(jié)果,控制第二傳輸裝置以便僅僅將檢測出存在錯誤代碼的構成塊碼的列方向的代碼串從所述存儲裝置中傳輸?shù)剿黾m錯裝置中。
由此,在構成1個塊碼的行方向上的全部代碼串中,在沒有檢測出錯誤的情況下,跳過對該塊碼的列方向上的代碼串的錯誤檢測及糾錯處理,從而在從光盤等記錄媒體中連續(xù)讀出的塊碼中的錯誤發(fā)生率較小的情況下,增大了相應的平均讀出速度。
并且,根據(jù)本發(fā)明的第27項發(fā)明,在本發(fā)明的第23項的發(fā)明的糾錯裝置中,所述第二傳輸裝置具有行方向傳輸部件,用于在R1為大于2小于R的整數(shù)時,對R行按順序反復進行如下操作從所述存儲裝置中讀出檢測出存在錯誤代碼的R1行代碼串并將其傳輸?shù)剿黾m錯裝置中,所述行方向傳輸部件在L1為大于2小于L的整數(shù)時,在行方向上只移位L1個代碼,反復進行R1行L1列傳輸所述R1行L1列傳輸是指按順序?qū)λ鯮1行中的各行進行連續(xù)讀出并列的L1個代碼并將其傳輸?shù)剿黾m錯裝置中;所述糾錯裝置在代碼是從所述行方向傳輸部件傳送來的情況下,對傳送來的每L1個代碼并列進行對所述R1行代碼串的糾錯,作為構成與所述R1行不同行的代碼串。
由此,對多個行方向的糾錯不僅被并列執(zhí)行,而且是通過反復對較小的數(shù)據(jù)塊糾錯而進行的,從而與單純的并列執(zhí)行糾錯的情況相比,雖然以同一速度進行掃描和糾錯,但降低了糾錯裝置中被要求的處理能力并縮小了電路規(guī)模。
并且,根據(jù)本發(fā)明的第28項發(fā)明,在本發(fā)明的第27項的發(fā)明的糾錯裝置中,所述第二傳輸裝置還具有列方向傳輸部件,用于在L2為大于2小于L的整數(shù)時,對L列按順序反復進行如下操作從所述存儲裝置中讀出檢測出存在錯誤代碼的塊碼的L2列代碼串并將其傳輸?shù)剿黾m錯裝置中,所述列方向傳輸部件在行方向上只移位L2個代碼,反復進行R行L2列傳輸,所述R行L2列傳輸是指按順序?qū)λ鯮行中的各行進行連續(xù)讀出并列的L2個代碼并將其傳輸?shù)剿黾m錯裝置中,所述糾錯裝置在從所述列方向傳輸部件傳送代碼的情況下,將每次傳送來的L2個代碼并列進行對所述L2列代碼串的糾錯,作為屬于相對應的所述L2列代碼串的代碼。
由此,并列執(zhí)行行方向上的糾錯和列方向上的糾錯,從而以較小的電路規(guī)模實現(xiàn)了高速的糾錯裝置。
并且,根據(jù)本發(fā)明的第29項發(fā)明,在本發(fā)明的第23項的發(fā)明的糾錯裝置中,由所述第一傳輸裝置執(zhí)行的從所述第一裝置向所述存儲裝置的代碼傳輸、由所述第二傳輸裝置執(zhí)行的從所述存儲裝置向所述糾錯裝置的代碼傳輸及由所述第三傳輸裝置執(zhí)行的從所述存儲裝置向所述第二裝置的代碼傳輸為由對所述存儲裝置的直接存儲器訪問所執(zhí)行的傳輸,
所述傳輸控制裝置,在需要執(zhí)行由所述第一傳輸裝置執(zhí)行的DMA傳輸?shù)那闆r下,在正在執(zhí)行所述第一至第三傳輸裝置的DMA傳輸中的任一個時,在完成這個執(zhí)行中的DMA傳輸后執(zhí)行由所述第一傳輸裝置執(zhí)行的DMA傳輸,在沒有執(zhí)行所述第一至第三傳輸裝置的DMA傳輸中的任一個時,立刻執(zhí)行由所述第一傳輸裝置執(zhí)行的DMA傳輸。
由此,最優(yōu)先執(zhí)行對存儲裝置的緩沖,從而在將依據(jù)本發(fā)明的糾錯裝置用于光盤驅(qū)動器等讀出裝置中的情況下,光拾取器可以連續(xù)讀出光盤上的代碼。
并且,根據(jù)本發(fā)明的第30項發(fā)明,在本發(fā)明的第29項的發(fā)明中的糾錯裝置,所述傳輸控制裝置,在需要執(zhí)行由所述第二傳輸裝置執(zhí)行的DMA傳輸?shù)那闆r下,只有在沒有執(zhí)行所述第一至第三傳輸裝置的DMA傳輸中的任一個時,才執(zhí)行由所述第二傳輸裝置執(zhí)行的DMA傳輸。
由此,通過考慮到由與對存儲裝置的緩沖并列的錯誤檢測而導致的糾錯高速化和由對多個代碼串進行并列處理而導致的糾錯高速化的高效調(diào)度,使對存儲裝置的排他性訪問控制成為可能。
并且,根據(jù)本發(fā)明的第31項發(fā)明,在本發(fā)明的第30項的發(fā)明的糾錯裝置中,所述糾錯裝置在根據(jù)通過所述第二傳輸裝置傳輸?shù)拇a串確定錯誤代碼和糾正后的值之后,在所述傳輸控制裝置的控制下,將所述存儲裝置中所對應的錯誤代碼重寫成糾正后的值,所述傳輸控制裝置只有在不執(zhí)行所述第一至第三傳輸裝置的DMA傳輸中的任一個時,才執(zhí)行由所述糾錯裝置進行的錯誤代碼的重寫。
由此,能夠更平衡地對與1個存儲裝置資源相對應的4種訪問進行排他性控制,實現(xiàn)較高性能價格比的糾錯裝置。
而且,為了達到上述目的,根據(jù)本發(fā)明的第32項發(fā)明的一種用于在對從外部的第一裝置接收的代碼進行必要的糾錯后輸出到外部的第二裝置的糾錯裝置,其特征在于,存儲裝置,具有用于存儲所述代碼的存儲區(qū)域;糾錯裝置,用于以預定數(shù)目的代碼為單位,檢測錯誤代碼并糾正對應的所述存儲裝置中的錯誤代碼;代碼選擇裝置,用于選擇從所述第一裝置傳送的代碼和從所述存儲裝置傳送的代碼中的任一個,送至所述糾錯裝置中,并在所述糾錯裝置中進行所述檢測和糾正;第一傳輸裝置,用于將從所述第一裝置輸出的代碼并行傳輸?shù)剿龃鎯ρb置和所述代碼選擇裝置中,在將該代碼存入所述存儲裝置的同時,在所述代碼選擇裝置中進行選擇并將其送至糾錯裝置,在所述錯誤檢測裝置中對該代碼進行所述檢測和糾正;第二傳輸裝置,用于將預定數(shù)目的代碼從所述存儲裝置傳輸?shù)剿龃a選擇裝置,在所述代碼選擇裝置中選擇該代碼并將其送至所述糾錯裝置中,在所述糾錯裝置中對該代碼進行所述檢測和糾正;第三傳輸裝置,用于將通過所述糾錯裝置檢測出不存在錯誤代碼或錯誤代碼經(jīng)過糾正的預定數(shù)目的代碼從所述存儲裝置傳輸?shù)剿龅诙b置;傳輸控制裝置,用于控制所述第一至第三傳輸裝置,以使其分別排他地執(zhí)行所述代碼傳輸。
由此,從第一裝置輸出的代碼在被存入存儲裝置的同時,通過選擇裝置被輸入到糾錯裝置中,從而與現(xiàn)有的在被暫時存入存儲裝置之后讀出并輸入到糾錯裝置中的處理順序相比,在縮短了糾錯所要求的整個處理時間的同時減少了對存儲裝置的訪問次數(shù),并實現(xiàn)了高速的低功耗糾錯裝置。
并且,根據(jù)本發(fā)明的第33項發(fā)明,在本發(fā)明的第32項的發(fā)明的糾錯裝置中,所述第一裝置按順序反復輸出構成R行L列塊碼的行方向代碼串,所述塊碼為乘積碼,在構成所述塊碼的行方向及列方向的代碼串中分別包含信息代碼和糾錯碼,所述第一傳輸裝置,將從所述第一裝置輸出的代碼并行傳輸?shù)剿龃鎯ρb置和所述代碼選擇裝置中,在將該代碼存入所述存儲裝置的同時,在所述代碼選擇裝置中進行選擇并將其送至糾錯裝置,在所述錯誤檢測裝置中對該代碼進行所述檢測和糾正;所述第二傳輸裝置,將所述塊碼的列方向代碼串從所述存儲裝置傳輸?shù)剿龃a選擇裝置,在所述代碼選擇裝置中選擇該代碼并將其送至所述糾錯裝置中,在所述糾錯裝置中對該代碼進行所述檢測和糾正。
由此,實現(xiàn)了能夠適用于要求高速執(zhí)行對乘積碼的糾錯的光盤等讀出裝置和數(shù)據(jù)通信中的接收裝置等中的糾錯裝置。
并且,根據(jù)本發(fā)明的第34項發(fā)明,在本發(fā)明的第33項的發(fā)明的糾錯裝置中,所述糾錯裝置包括用于以行方向或列方向的代碼串為單位,檢測是否存在錯誤代碼的錯誤檢測部件,和用于在通過所述錯誤檢測部件檢測出存在錯誤代碼的情況下,將與該錯誤代碼相對應的所述存儲裝置中的代碼重寫成糾正后的值的代碼更新部件,所述錯誤檢測部件包括用于記錄對通過所述第一傳輸裝置從所述第一裝置傳輸來的行方向代碼串的錯誤檢測結(jié)果的行方向檢測結(jié)果記錄部件,和用于記錄對通過所述第二傳輸裝置從所述存儲裝置傳輸來的列方向代碼串的錯誤檢測結(jié)果的列方向檢測結(jié)果記錄部件,所述錯誤代碼更新部件利用記錄在所述行方向檢測結(jié)果記錄部件及所述列方向檢測結(jié)果記錄部件中的檢測結(jié)果,重寫所述存儲裝置中的代碼。
由此,將行方向的糾錯結(jié)果和列方向的糾錯結(jié)果進行單獨保存,從而利用這些結(jié)果進行后續(xù)處理的代碼更新裝置等可以以更慢的速度進行處理。
并且,根據(jù)本發(fā)明的第35項發(fā)明,在本發(fā)明的第34項的發(fā)明的糾錯裝置中,所述錯誤檢測部件在進行行方向的錯誤檢測的情況下,將對構成1個塊碼的全部行方向代碼串的檢測結(jié)果存入和記錄到所述行方向檢測結(jié)果記錄部件中,在進行列方向糾錯的情況下,通過參照記錄在所述檢測結(jié)果記錄部件中的檢測結(jié)果,控制第二傳輸裝置以便僅僅將檢測出存在錯誤代碼的構成塊碼的列方向的代碼串從所述存儲裝置中傳輸?shù)剿黾m錯裝置中。
由此,在構成1個塊碼的行方向上的全部代碼串中,在沒有檢測出錯誤的情況下,跳過對該塊碼的列方向上的代碼串的錯誤檢測及糾錯處理,增大了相應的平均讀出速度。
并且,根據(jù)本發(fā)明的第36項發(fā)明,在本發(fā)明的第35項的發(fā)明的糾錯裝置中,所述傳輸控制裝置以構成這些代碼串的部分代碼為單位切換由所述第一傳輸裝置執(zhí)行的從所述第一裝置向所述代碼選擇裝置的1行代碼串的傳輸和由所述第二傳輸裝置執(zhí)行的從所述存儲裝置向所述代碼選擇裝置的1列代碼串的傳輸,交互地執(zhí)行,所述錯誤檢測部件通過以所述部分代碼為單位,交互地切換對由所述第一傳輸裝置從所述第一裝置傳輸來的行方向代碼串的錯誤檢測和對由所述第二傳輸裝置從所述存儲裝置傳輸來的列方向代碼串的錯誤檢測,并列進行對各代碼串的錯誤檢測,并將各自的結(jié)果記錄到行方向檢測結(jié)果記錄部件及列方向檢測結(jié)果記錄部件中,所述錯誤代碼更新部件通過順序參照記錄在所述行方向檢測結(jié)果記錄部件和所述列方向檢測結(jié)果記錄部件中的檢測結(jié)果,順序地進行行方向上的所述存儲裝置中的代碼重寫和列方向上的所述存儲裝置中的代碼重寫。
由此,代碼更新裝置可以按照并列進行行方向糾錯和列方向糾錯的順序進行操作,從而削減了電路規(guī)模。
并且,根據(jù)本發(fā)明的第37項發(fā)明,在本發(fā)明的第32項的發(fā)明的糾錯裝置中,所述第二傳輸裝置還具有列方向傳輸部件,用于在L2為大于2小于L的整數(shù)時,對L列按順序反復進行如下操作從所述存儲裝置中讀出檢測出存在錯誤代碼的塊碼的L2列代碼串并經(jīng)過所述代碼選擇裝置將其傳輸?shù)剿黾m錯裝置中,所述列方向傳輸部件在行方向上只移位L2個代碼,反復進行R行L2列傳輸,所述R行L2列傳輸是指按順序?qū)λ鯮行中的各行進行連續(xù)讀出并列的L2個代碼并將其傳輸?shù)剿黾m錯裝置中,所述糾錯裝置在從所述列方向傳輸部件傳送代碼的情況下,將每次傳送來的L2個代碼并列進行對所述L2列代碼串的糾錯,作為屬于相對應的所述L2列代碼串的代碼。
由此,不僅并列執(zhí)行對多個行方向的糾錯,而且還反復執(zhí)行對小數(shù)據(jù)塊的糾錯,從而與單純進行并列處理的情形相比,雖然需要以相同的速度進行掃描和糾錯,但是降低了糾錯裝置中所要求的處理能力,并縮小了電路規(guī)模。
而且,把向存儲器裝置的存取作為DMA,其中設置一定的優(yōu)先順序來進行調(diào)度,由此能夠更平衡地對與1個存儲裝置資源相對應的4種訪問進行排他性控制,實現(xiàn)性能價格比較高的糾錯裝置。


圖1示出了乘積碼的數(shù)據(jù)結(jié)構。
圖2示出了按照每行的順序進行C1序列的糾錯時的處理順序。
圖3示出了按照每列的順序進行C2序列的糾錯時的處理順序。
圖4示出了現(xiàn)有的糾錯裝置的糾錯處理順序。
圖5是本發(fā)明第一實施例中的糾錯裝置100的構成示意圖。
圖6是裝置100的總線控制器2的詳細結(jié)構示意圖。
圖7是裝置100的數(shù)據(jù)分配器51的詳細結(jié)構示意圖。
圖8是裝置100的1個出錯位生成器52(53、54、55)的詳細結(jié)構示意圖。
圖9是裝置100中的主要處理(數(shù)據(jù)輸入、糾錯、數(shù)據(jù)輸出)的時序圖。
圖10示出了在進行C1序列的糾錯時讀出緩沖存儲器1內(nèi)的乘積碼的順序。
圖11示出了在按照圖10所示的順序從緩沖存儲器1傳輸數(shù)據(jù)時,數(shù)據(jù)分配器51的操作。
圖12示出了C1序列的糾錯中通過從緩沖存儲器1向糾錯器5的數(shù)據(jù)傳輸與4個出錯位生成器52~55的積和運算時序。
圖13示出了在進行C2序列的糾錯時讀出緩沖存儲器1內(nèi)的乘積碼的順序。
圖14示出了在按照圖13所示的順序從緩沖存儲器1傳輸數(shù)據(jù)時,數(shù)據(jù)分配器51的操作。
圖15示出了C2序列的糾錯中通過從緩沖存儲器1向糾錯器5的數(shù)據(jù)傳輸與4個出錯位生成器52~55的積和運算時序。
圖16示出了對C1序列的端數(shù)部分進行的處理時序。
圖17示出了對C2序列的端數(shù)部分進行的處理時序。
圖18示出了以兩列在C1方向上進行糾錯時,從緩沖存儲器讀出數(shù)據(jù)的順序。
圖19示出了以兩列在C1方向上進行糾錯時數(shù)據(jù)分配器的操作。
圖20示出了以兩列在C1方向上進行糾錯時數(shù)據(jù)傳輸與出錯位計算的時序。
圖21示出了以兩列在C2方向上進行糾錯時,從緩沖存儲器讀出數(shù)據(jù)的順序。
圖22示出了以兩列在C2方向上進行糾錯時數(shù)據(jù)分配器的操作。
圖23示出了以兩列在C2方向上進行糾錯時數(shù)據(jù)傳輸與出錯位計算的時序。
圖24是本發(fā)明第二實施例中的光盤讀取裝置2000的結(jié)構示意圖。
圖25是裝置2000的光盤控制器2100的詳細結(jié)構示意圖。
圖26是裝置2000的總線控制器2180的詳細結(jié)構示意圖。
圖27示出了通過裝置2000的總線調(diào)配控制器2182的3個排他性DMA傳輸?shù)目刂评?br> 圖28是裝置2000的糾錯器2130的詳細結(jié)構示意圖。
圖29是示出了光盤控制器2100內(nèi)的處理過程的時序圖。
圖30是圖29所示的時序圖的更詳細的示圖。
圖31是示出了在進行C1序列的糾錯時糾錯器2130內(nèi)的行單位處理過程的時序圖。
圖32示出了在糾正圖31所示的代碼串時,訪問存儲在緩沖存儲器2110中的乘積碼的順序。
圖33示出了在以4個代碼串并行對圖31所示的C1序列糾錯時,從磁盤接口2120讀出數(shù)據(jù)的順序。
圖34示出了對圖31所示的序列C1的端數(shù)部分的讀出順序。
圖35是本發(fā)明第三實施例中的光盤讀取裝置3000的結(jié)構示意圖。
圖36是裝置3000的光盤控制器3100的詳細結(jié)構示意圖。
圖37是裝置3000的糾錯器3130的詳細結(jié)構示意圖。
圖38是示出了在連續(xù)處理多個數(shù)據(jù)塊的數(shù)據(jù)時光盤控制器3100內(nèi)的處理過程的時序圖。
圖39是圖38所示的時序圖的更詳細的示圖。
圖40是示出了在糾錯器2130內(nèi)的行方向及列方向上的單位處理過程的時序圖。
具體實施例方式
以下,參照附圖詳細說明本發(fā)明的實施例。
(第一實施例)第一實施例涉及對行方向及列方向中的任一方向上的4個代碼串并列進行糾錯的高速糾錯裝置。
圖5是本發(fā)明第一實施例中的糾錯裝置100的構成示意圖。裝置100是包含在光盤驅(qū)動器裝置中并用于對從光盤中讀出的數(shù)據(jù)進行糾錯的裝置,由緩沖存儲器1、包含在該緩沖存儲器1中的進行訪問的3個處理塊(磁盤接口部件12、糾錯部件5及主機接口部件13)以及進行訪問的排他性控制的總線控制器2構成。圖中的箭頭表示作為糾錯對象的數(shù)據(jù)的流向。裝置100采用Reed-Solomon碼作為糾錯碼類型,采用乘積碼作為代碼結(jié)構。
緩沖存儲器1是利用二維地址(行地址和列地址)具有特定存儲區(qū)域的DRAM等半導體存儲器,具有暫時存儲多個作為糾錯對象的數(shù)據(jù)塊的存儲容量。
磁盤接口部件12是將從光盤等記錄媒體中讀出的數(shù)據(jù)接著寫入緩沖存儲器1中的接口電路。
糾錯部件5是用于順序讀出從磁盤接口部件12寫入緩沖存儲器1中的數(shù)據(jù)并檢測是否發(fā)生了錯誤,如果發(fā)現(xiàn)錯誤,就在緩沖存儲器1上進行糾錯的電路。具體地,糾錯部件5是對4個代碼串同時并列執(zhí)行糾錯的電路,由數(shù)據(jù)分配部件51、4個出錯位生成部件52~55、錯誤位置·錯誤數(shù)值運算部件56及錯誤數(shù)據(jù)更新部件57構成。
數(shù)據(jù)分配部件51將從緩沖存儲器1傳輸來的數(shù)據(jù)分配到4個出錯位生成部件52~55中的一個中。此時,這樣進行分配以便于屬于同一代碼串中的數(shù)據(jù)被輸入到同一出錯位生成部件中。4個出錯位生成部件52~55都是相同的電路,分別在輸入了所分配的數(shù)據(jù)時就進行積和運算,當包含10個奇偶校驗數(shù)據(jù)的1個代碼串被全部輸入之后,生成10個出錯位。
錯誤位置·錯誤數(shù)值運算部件56分別對4個出錯位生成部件52~55依次判斷所生成的10個出錯位中是否存在非零數(shù),如果存在,就利用這些出錯位計算出錯誤位置和錯誤數(shù)值。具體地,以10個出錯位為基礎,利用歐基里德算法等方法算出用于確定錯誤位置多項式和錯誤數(shù)值多項式的各項系數(shù),然后利用鏈查尋和調(diào)用法等方法算出該錯誤位置多項式的根(錯誤位置)并利用錯誤數(shù)值多項式算出錯誤數(shù)值。
錯誤數(shù)據(jù)更新部件57根據(jù)由錯誤位置·錯誤數(shù)值運算部件56算出的錯誤位置,讀出緩沖存儲器1中的錯誤數(shù)據(jù),計算讀出的錯誤數(shù)據(jù)與由錯誤位置·錯誤數(shù)值運算部件56算出的錯誤數(shù)值的異或邏輯和,將得出的數(shù)值回寫到緩沖存儲器2110中的原位置上。就該糾錯部件5而言,只有出錯位計算電路(出錯位生成部件52~55)被并列化,而對于與其相連的電路(錯誤位置·錯誤數(shù)值運算部件56及錯誤數(shù)據(jù)更新部件57)并沒有被并列化,關于出錯位計算,無論發(fā)生錯誤與否,對1個數(shù)據(jù)都要進行10次積和運算,但對于以后的計算處理,只要根據(jù)在1個代碼串中生成的10個出錯位進行計算就可以了,從而建設了運算次數(shù)。
主機接口部件13是用于在糾錯部件5的處理結(jié)束之后,從緩沖存儲器1讀出數(shù)據(jù)并將該數(shù)據(jù)輸出到計算機等主機中的接口電路。
總線控制器2是在緩沖存儲器1與3個處理塊12、5、13中的任一個之間,通過8位數(shù)據(jù)總線進行數(shù)據(jù)傳輸?shù)目刂齐娐?,包括用于排他地控制對緩沖存儲器1進行訪問的總線調(diào)配控制部件22,生成并輸出用于對緩沖存儲器1進行訪問的地址的地址生成部件21,以及在磁盤接口部件12、糾錯部件5及主機接口部件13中的任一個與緩沖存儲器1之間進行總線連接并通過DMA(DirectMemory Access)進行數(shù)據(jù)傳輸?shù)腄MA通道部件23。
圖6是總線控制器2的詳細結(jié)構示意圖。在本圖中,3個DMA通道23a~23b是構成圖5所示的DMA通道部件的DMA控制器。這個總線控制器2具有排他性地許可與緩沖存儲器1相對應的3個DMA的功能。即,總線調(diào)配控制部件22在接收到來自在磁盤接口部件12、糾錯部件5及主機接口部件13的訪問緩沖存儲器1的請求時,根據(jù)預定的優(yōu)先順序和調(diào)度順序,只允許其中之一的請求。
具體地,總線調(diào)配控制部件22通過啟動第一DMA通道23a,對磁盤接口部件12輸出允許進行數(shù)據(jù)傳輸?shù)目刂菩盘?,從地址生成部?1生成緩沖存儲器1的寫入地址,進行將從磁盤接口部件12向緩沖存儲器1的“數(shù)據(jù)輸入”,即從光盤等記錄媒體讀出的數(shù)據(jù)通過磁盤接口部件12存入緩沖存儲器1中的數(shù)據(jù)傳輸。同樣地,總線調(diào)配控制部件22通過啟動第二DMA通道23b,對糾錯部件5輸出允許進行數(shù)據(jù)傳輸?shù)目刂菩盘?,從地址生成部?1生成緩沖存儲器1中的讀出或?qū)懭氲刂?,進行“用于糾錯的數(shù)據(jù)傳輸”,即將存在緩沖存儲器1中數(shù)據(jù)讀出到糾錯部件5,將糾正后的數(shù)據(jù)從糾錯部件5回寫到緩沖存儲器1中的數(shù)據(jù)傳輸。而且,總線調(diào)配控制部件22通過啟動第三DMA通道23c,對主機接口部件13輸出允許進行數(shù)據(jù)傳輸?shù)目刂菩盘?,從地址生成部?1生成緩沖存儲器1中的讀出地址,進行將從緩沖存儲器1向主機接口部件13的“數(shù)據(jù)輸出”,即存在糾錯后的緩沖存儲器1中的數(shù)據(jù)通過主機接口部件13輸出到主機等中的數(shù)據(jù)傳輸。
在這3種DMA傳輸中,地址生成部件21對緩沖存儲器1進行頁面模式下的高速訪問。具體地,在命中頁的范圍內(nèi),確定并原樣輸出對緩沖存儲器1的行地址(RAS),使列地址(CAS)增加所需要的數(shù)據(jù)個數(shù)。
圖7是數(shù)據(jù)分配部件51的詳細結(jié)構示意圖。數(shù)據(jù)分配部件51由用于將從總線控制器2傳送來的數(shù)據(jù)穿過4個出錯位生成部件52~55之一的選擇器51a和用于根據(jù)來自總線控制器2的指示,控制選擇器51a的分配的切換控制部件51b構成。切換控制部件51b通過內(nèi)部的計數(shù)邏輯電路等,在數(shù)據(jù)被輸入到選擇器51a的同時將控制信號輸出到選擇器51a中,但是在進行行方向的糾錯和列方向的糾錯的情況下,如后所述,以不同的順序控制選擇器51a。
圖8是1個出錯位生成器52(53、54、55)的詳細結(jié)構示意圖。出錯位生成部件52由一次最多存儲8個輸入的數(shù)據(jù)的FIFO(First-In First-Out)形式的隊列緩沖器62和與該隊列緩沖器62并聯(lián)的10種出錯位運算部件63~65構成。各出錯位運算部件63~65是反復進行積和運算的電路,由用于存儲1個積和值的寄存器68、用于讀出存在寄存器68中的積和值,與固有的系數(shù)進行乘法運算的伽羅瓦域乘法器66以及對該乘法運算的結(jié)果和下次輸入的1個代碼進行加法運算的伽羅瓦域加法器67構成。
在從隊列緩沖器62中讀出最早輸入的1個數(shù)據(jù)d時,該數(shù)據(jù)d被并列輸入到10個出錯位運算部件63中,根本進行1次積和運算d+Sn×αn,將該結(jié)果作為新的Sn存入寄存器68中。例如,由100字節(jié)的信息數(shù)據(jù)d1~d100和10個奇偶校驗數(shù)據(jù)p1~p10構成的代碼串被順序輸入到出錯位生成部件52中,并經(jīng)過隊列緩沖器62被并列地提供給10個出錯位運算部件63~65。此時,在第一出錯位運算部件63中,首先在輸入第一信息數(shù)據(jù)d1時將該d1原樣保存在寄存器68中,接著在輸入信息數(shù)據(jù)d2時進行積和運算d2+d1×α0,該結(jié)果被保存到寄存器68中。
這樣每輸入1個代碼,就進行1次積和運算,到輸入了最后的奇偶校驗數(shù)據(jù)p10時,保存在寄存器68中的數(shù)據(jù)就變成了S0出錯位。與此同時,在其它出錯位運算部件64~65中也進行著同樣的運算,因此在最后的奇偶校驗數(shù)據(jù)被輸入到這10個出錯位運算部件63~65中之后,最后同時生成了從S0到S9這10種出錯位。
下面,說明具有以上結(jié)構的糾錯裝置100的操作。
圖9是裝置100中的主要處理(數(shù)據(jù)輸入、糾錯、數(shù)據(jù)輸出)中作為處理對象的數(shù)據(jù)的時序圖。即,示出了在對利用圖1所示的乘積碼的代碼串進行連續(xù)的多個數(shù)據(jù)塊處理時的處理流向。圖中的第n數(shù)據(jù)塊與圖1所示的1個乘積碼的全部數(shù)據(jù)相對應。圖中的“數(shù)據(jù)輸入”、“糾錯”及“數(shù)據(jù)輸出”與上述總線控制器2的“數(shù)據(jù)輸入”、“用于糾錯的數(shù)據(jù)傳輸”及“數(shù)據(jù)輸出”相對應。
首先,在第1周期進行第1數(shù)據(jù)塊的數(shù)據(jù)輸入,在第2周期并列進行第2數(shù)據(jù)塊的數(shù)據(jù)輸入和第1數(shù)據(jù)塊的糾錯,在第3周期并列進行第3數(shù)據(jù)塊的數(shù)據(jù)輸入、第2數(shù)據(jù)塊的糾錯和第數(shù)據(jù)塊的數(shù)據(jù)輸出。在第4周期以后,與第3周期一樣,并列進行新數(shù)據(jù)塊的數(shù)據(jù)輸入,前一輸入數(shù)據(jù)塊的糾錯和糾錯結(jié)束后的數(shù)據(jù)塊的數(shù)據(jù)輸出。
這樣,總線控制器2控制3種數(shù)據(jù)傳輸(從磁盤接口部件12向緩沖存儲器1的數(shù)據(jù)傳輸、緩沖存儲器1與糾錯部件5之間的數(shù)據(jù)傳輸以及從緩沖存儲器1向主機接口部件13的數(shù)據(jù)傳輸)以便于對各數(shù)據(jù)塊的數(shù)據(jù)實施流水線處理。即,3種數(shù)據(jù)傳輸都以緩沖存儲器1為傳輸目的地或傳輸源,但緩沖存儲器1只有1個輸入輸出端口,因此總線控制器2通過在這3種數(shù)據(jù)傳輸中設計優(yōu)先順序,而只瞬時許可數(shù)據(jù)傳輸中的一種,通過將這3種數(shù)據(jù)傳輸按時間分割進行切換,從表面上控制了3種數(shù)據(jù)傳輸?shù)牟⑿小?br> 圖10示出了在進行C1序列的糾錯時讀出緩沖存儲器1內(nèi)的乘積碼的順序??偩€調(diào)配控制部件22在啟動第二DMA通道23b,并通知糾錯部件5傳送用于C1序列糾錯的數(shù)據(jù)之后,按照預定的順序?qū)⒆x出地址從地址生成部件21輸出到緩沖存儲器1,如下所述,將存在緩沖存儲器1中的數(shù)據(jù)傳輸?shù)郊m錯部件5中。
即,總線控制器2首先從緩沖存儲器1中連續(xù)讀出第1行4個字節(jié)的數(shù)據(jù)d1~d4并傳輸?shù)郊m錯部件5中。接著連續(xù)讀出并傳輸?shù)?行4個字節(jié)的數(shù)據(jù)d5~d8。接著連續(xù)讀出并傳輸?shù)?行4個字節(jié)的數(shù)據(jù)d9~d12。接著連續(xù)讀出并傳輸?shù)?行4個字節(jié)的數(shù)據(jù)d13~d16。至此再次返回第1行,同樣連續(xù)讀取和傳輸4個字節(jié)的數(shù)據(jù)d17~d20。下面通過重復同樣的讀出和傳輸,在完成從第1行到第4行的全部數(shù)據(jù)的讀出和傳輸時,對從第5行到第8行的4行數(shù)據(jù)重復同樣的處理。如此對1個數(shù)據(jù)塊的全部行重復并列讀出和傳輸4行數(shù)據(jù)的處理。
總線控制器2以DMA模式進行對行方向上連續(xù)4個字節(jié)的數(shù)據(jù)讀出和傳輸,以作為時間上不可分的處理連續(xù)進行。即,此期間禁止用于其它處理(數(shù)據(jù)輸入、數(shù)據(jù)輸出)的對緩沖存儲器1的訪問。這是由于在行方向上連續(xù)的數(shù)據(jù)通常被存儲在緩沖存儲器1的連續(xù)地址中,因而能夠利用由DRAM頁命中進行的高速訪問。
圖11示出了在按照圖10所示的順序從緩沖存儲器1傳輸數(shù)據(jù)時,糾錯部件5的數(shù)據(jù)分配器51的操作。切換控制部件51b在從總線控制器2接收開始對C1序列糾錯的指示時,通過控制選擇器51a,將從總線控制器2傳送來的數(shù)據(jù)如下進行分配。
即,數(shù)據(jù)分配部件51對最先傳輸?shù)膶儆诘?行的4個字節(jié)數(shù)據(jù)d1~d4進行分配以將其輸入到出錯位生成部件52中,對接著傳輸?shù)膶儆诘?行的4個字節(jié)數(shù)據(jù)d5~d8進行分配以將其輸入到出錯位生成部件53中,對接著傳輸?shù)膶儆诘?行的4個字節(jié)數(shù)據(jù)d9~d12進行分配以將其輸入到出錯位生成部件54中,對接著傳輸?shù)膶儆诘?行的4個字節(jié)數(shù)據(jù)d13~d16進行分配以將其輸入到出錯位生成部件55中。同樣地,再將接著傳輸?shù)膶儆诘?行的數(shù)據(jù)d17~d20輸入出錯位生成部件52中。這樣,數(shù)據(jù)分配部件51在C1序列的糾錯中,一邊以4個字節(jié)為單位按照4個出錯位生成部件52~55的順序切換出錯位生成部件,一邊從緩沖存儲器1經(jīng)過總線控制器2輸入反復以4個字節(jié)為單位傳送的數(shù)據(jù)。
圖12示出了C1序列的糾錯中通過從緩沖存儲器1向糾錯器5的數(shù)據(jù)傳輸與4個出錯位生成器52~55的積和運算時序。
從緩沖存儲器1讀出具有連續(xù)地址的4個字節(jié)的數(shù)據(jù)d1~d4、d5~d8等并將其傳輸?shù)郊m錯部件5中分別需要時間t1,以4個字節(jié)為單位的數(shù)據(jù)傳輸以時間t2為間隔進行重復。從完成以4個字節(jié)為單位的數(shù)據(jù)傳輸之后到開始以接著的4個字節(jié)為單位的數(shù)據(jù)傳輸,需要時間,這是因為要考慮到由于這4個字節(jié)分別屬于不同的行而在讀出新的4個字節(jié)數(shù)據(jù)時可能產(chǎn)生每次DRAM的頁面錯誤。即,假設在訪問4個字節(jié)中的第1字節(jié)時總線控制器2必須將新的行地址輸出到緩沖存儲器1中。
4個出錯位生成部件52~55分別進行第1行~第4行的出錯位計算,但在4×t2的時間內(nèi)對輸入的4個字節(jié)的數(shù)據(jù)進行必要的4個積和運算。例如,執(zhí)行第1行出錯位計算的出錯位生成部件52在4×t2的時間內(nèi)對輸入的4個字節(jié)數(shù)據(jù)d1~d4進行積和運算。從出錯位生成部件52的角度出發(fā),這是由于最先輸入的4個字節(jié)數(shù)據(jù)為d1~d4,接著輸入的4個字節(jié)數(shù)據(jù)為d17~d20,它們的時間間隔為4×t2,因而只要在這個時間內(nèi)完成4個字節(jié)的積和運算就可以。然后,為了維持這樣的運算速度,在各出錯位生成部件52~55的前面所設計的隊列緩沖器62中所存儲的數(shù)據(jù)量最大為4個字節(jié),即使在瞬間也不能超過4個字節(jié)。
這樣,各出錯位生成部件52~55只要以每1個字節(jié)t2時間的速度就可以完成積和運算,與數(shù)據(jù)傳輸速度(4字節(jié)/t2)相比,只需已1/4的速度進行出錯位計算即可。而且,由于對不同的多個代碼串,一邊以較小的節(jié)距(4個字節(jié)為單位)切換代碼串,一邊進行并列處理,所以與處理每1代碼串的方法相比,在降低了每1代碼串所要求的出錯位計算速度的同時,還縮小了隊列緩沖器的大小。換言之,這意味著能夠使從緩沖存儲器1到糾錯部件5的實際數(shù)據(jù)傳輸速度(整個糾錯速度)比原來更高速,并且與簡單地設置多個糾錯電路相比,能夠以更小的電路規(guī)模進行4列糾錯。
通過增加同一代碼串中連續(xù)讀出的數(shù)據(jù)數(shù),可以謀求利用DRAM頁命中的數(shù)據(jù)傳輸?shù)母咚倩?。此時,希望增加糾錯的并列度。通過隨增加糾錯并列處理的并列度而增加存儲器地址的連續(xù)傳輸字節(jié)數(shù),與每1代碼串的處理負荷相對應的電路規(guī)模減輕了負擔并實現(xiàn)了高效的糾錯并列化。
現(xiàn)在參照圖13~圖15說明在進行C2序列的糾錯時本裝置100的操作。
圖13示出了在進行C2序列的糾錯時讀出緩沖存儲器1內(nèi)的乘積碼的順序??偩€調(diào)配控制部件22在啟動第二DMA通道23b,并通知糾錯部件5傳送用于C2序列糾錯的數(shù)據(jù)之后,按照預定的順序?qū)⒆x出地址從地址生成部件21輸出到緩沖存儲器1,如下所述,將存在緩沖存儲器1中的數(shù)據(jù)傳輸?shù)郊m錯部件5中。
即,總線控制器2首先從緩沖存儲器1中連續(xù)讀出第1行4個字節(jié)的數(shù)據(jù)d1~d4并傳輸?shù)郊m錯部件5中。接著連續(xù)讀出并傳輸?shù)?行4個字節(jié)的數(shù)據(jù)d5~d8。以下,同樣地,對第1列~第4列的全部數(shù)據(jù)反復從各行讀出并傳輸4個字節(jié)的數(shù)據(jù)。由此,完成C2序列的4個代碼串的數(shù)據(jù)傳輸。同樣地,再對第5列~第8列的全部數(shù)據(jù)反復讀出并傳輸4個字節(jié)的數(shù)據(jù)。由此,對1個數(shù)據(jù)塊的全部列重復進行并列讀出并傳輸4列數(shù)據(jù)的處理。
與C1序列的數(shù)據(jù)傳輸相同,總線控制器2以DMA模式進行對行方向上連續(xù)4個字節(jié)的數(shù)據(jù)讀出和傳輸,就象連續(xù)進行時間不可分的處理一樣。即,此期間通過禁止用于其它處理(數(shù)據(jù)輸入、數(shù)據(jù)輸出)的對緩沖存儲器1的訪問而利用了根據(jù)DRAM頁命中的高速訪問。
圖14示出了在按照圖13所示的順序從緩沖存儲器1傳輸數(shù)據(jù)時,糾錯部件5的數(shù)據(jù)分配器51的操作。切換控制部件51b在從總線控制器2接收開始對C2序列糾錯的指示時,通過控制選擇器51a,將從總線控制器2傳送來的數(shù)據(jù)如下進行分配。
即,數(shù)據(jù)分配部件51對最先傳輸?shù)膶儆诘?行的4個字節(jié)數(shù)據(jù)d1~d4進行分配以將各數(shù)據(jù)按照順序輸入到出錯位生成部件52~55中。具體地,將數(shù)據(jù)d1送到出錯位生成部件52中,將數(shù)據(jù)d2送到出錯位生成部件53中,將數(shù)據(jù)d3送到出錯位生成部件54中,將數(shù)據(jù)d4送到出錯位生成部件55中。對接著傳輸?shù)膶儆诘?行的數(shù)據(jù)d5~d8同樣分配以將各數(shù)據(jù)按照順序輸入到出錯位生成部件52~55中。這樣,數(shù)據(jù)分配部件51在C2序列的糾錯中,重復將以4個字節(jié)為單位反復傳送的數(shù)據(jù)的各個字節(jié)分配到4個出錯位生成部件52~55中的處理。
由此,屬于第1列的數(shù)據(jù)d1、d5、...被輸入到出錯位生成部件52中,屬于第2列的數(shù)據(jù)d2、d6、...被輸入到出錯位生成部件53中,屬于第3列的數(shù)據(jù)d3、d7、...被輸入到出錯位生成部件54中,屬于第4列的數(shù)據(jù)d4、d8、...被輸入到出錯位生成部件55中。同樣,屬于第5列的數(shù)據(jù)被輸入到出錯位生成部件52中,屬于第6列的數(shù)據(jù)被輸入到出錯位生成部件53中,屬于第7列的數(shù)據(jù)被輸入到出錯位生成部件54中,屬于第8列的數(shù)據(jù)被輸入到出錯位生成部件55中。
圖15示出了C2序列的糾錯中通過從緩沖存儲器1向糾錯器5的數(shù)據(jù)傳輸與4個出錯位生成器52~55的積和運算時序。
從緩沖存儲器1讀出具有連續(xù)地址的4個字節(jié)的數(shù)據(jù)d1~d4、d5~d8等并將其傳輸?shù)郊m錯部件5中分別需要時間t1,在時間t2的間隔內(nèi)重復以4個字節(jié)為單位的數(shù)據(jù)傳輸,這與圖12中所示的C1情況相同。
4個出錯位生成部件52~55分別進行第1列~第4列的出錯位計算,但在t2的時間內(nèi)進行關于1個字節(jié)的數(shù)據(jù)的1次積和運算。例如,執(zhí)行第1行的出錯位計算的出錯位生成部件52在t2時間內(nèi)對最先輸入的1個字節(jié)數(shù)據(jù)d1進行積和運算,在t2時間內(nèi)對接著輸入的1個字節(jié)數(shù)據(jù)d5進行積和運算。從出錯位生成部件52的角度出發(fā),這是由于在時間t2中,1個字節(jié)的數(shù)據(jù)被輸入。然后,為了維持這樣的運算速度,在各出錯位生成部件52~55的前面所設計的隊列緩沖器62中所存儲的數(shù)據(jù)量最大為1個字節(jié),即使在瞬間也不能超過1個字節(jié)。
這樣,各出錯位生成部件52~55只要以每1個字節(jié)t2時間的速度就可以完成積和運算,可以理解,這與進行C1序列的糾錯時的處理速度相同。而且,在此C2序列的糾錯中,向各個出錯位生成部件52~55的數(shù)據(jù)輸入與叢發(fā)進行的C1序列不同,是均勻進行的(通常以1字節(jié)/t2的速度輸入數(shù)據(jù)),所以沒有必要在各出錯位生成部件52~55的前面設置隊列緩沖器。
如上所述,在第一實施例中,由于糾錯部件5中的并列處理的并列度與在從緩沖存儲器1讀出具有連續(xù)地址的數(shù)據(jù)(乘積碼的同一行中的連續(xù)數(shù)據(jù))并將其傳輸?shù)郊m錯部件5時的數(shù)據(jù)量相等,所以在C1序列和C2序列兩個方向上的糾錯中,從緩沖存儲器1讀出數(shù)據(jù)的速度與通過在各出錯位生成部件進行積和運算的速度之間的關系同等,從而縮小了在各出錯位生成部件前面所需要的隊列緩沖器的大小。由此,對于C1序列和C2序列兩個方向上的糾錯,用于充分發(fā)揮出錯位生成部件能力的總線控制器2的控制順序也被共享,實現(xiàn)了能夠以較小的電路規(guī)模進行高速糾錯的糾錯裝置。
即,能夠更平衡地實施C1序列的糾錯和C2序列的糾錯,削減了糾錯裝置中所需要的電路的冗余度。
雖然圖10及圖13中所示的讀出順序是以行方向上的代碼串的字節(jié)數(shù)是4的倍數(shù)為前提的,但是即使在與之不同的情況下,本裝置100也能夠進行正確的糾錯。例如,在行方向上的代碼串的長度為其字節(jié)數(shù)除4還余2的情況下,只要將緩沖存儲器1內(nèi)的乘積碼的讀出順序作如下變動即可。
圖16示出了在行方向上的代碼串的長度為其字節(jié)數(shù)除4還余2的情況下,進行C1序列的糾錯時緩沖存儲器1內(nèi)的乘積碼的讀出順序??偩€控制器2針對4行代碼串,對除去各代碼串最后的2個字節(jié)以外的部分按照前面所述的順序重復連續(xù)4個字節(jié)的讀出和傳輸操作,而對最后的2個字節(jié)進行讀出和傳輸各代碼串的2個字節(jié)的操作。與之相伴,數(shù)據(jù)分配部件51也進行同樣的操作,即,將反復以4個字節(jié)為單位從緩沖存儲器1中傳送來數(shù)據(jù)以4個字節(jié)為單位分別分配到4個出錯位生成部件52~55中,將以2個字節(jié)為單位被傳送來的數(shù)據(jù)以2個字節(jié)為單位分別分配到4個出錯位生成部件52~55中即可。
同樣,圖17示出了在列方向上的代碼串的長度為其字節(jié)數(shù)除4還余2的情況下,進行C2序列的糾錯時緩沖存儲器1內(nèi)的乘積碼的讀出順序??偩€控制器2對除去最后2列的代碼串,從最先輸入的4列開始,重復4個字節(jié)的數(shù)據(jù)讀出和傳輸操作,而對最后2列代碼串,反復讀出和傳輸2個字節(jié)。與之相伴,數(shù)據(jù)分配部件51也進行同樣的操作,即,將反復以4個字節(jié)為單位從緩沖存儲器1中傳送來數(shù)據(jù)以4個字節(jié)為單位分別分配到4個出錯位生成部件52~55中,將以2個字節(jié)為單位被傳送來的數(shù)據(jù)以2個字節(jié)為單位分別分配到4個出錯位生成部件52~55中即可。
象這樣變更總線控制器2用的讀出順序以及數(shù)據(jù)分配部件51用的分配順序可以通過具體地變更總線控制器2中總線調(diào)配控制部件22用的控制順序和數(shù)據(jù)分配部件51中切換控制部件b用的控制順序容易地實現(xiàn)。
第一實施例是用于并列執(zhí)行對應于4個代碼串的出錯位計算的糾錯裝置,但是本發(fā)明并不僅限于這樣的并列度,例如,2列和8列的糾錯裝置也是可以的。即,在第一實施例中,糾錯部件5具有4個出錯位生成部件52,但是也可以根據(jù)需要設置為2個和8個。
圖18、圖19和圖20用于說明在以2列進行糾錯的糾錯裝置中,C1序列的糾錯操作,分別示出了數(shù)據(jù)從緩沖存儲器中讀出的順序、以該順序輸入數(shù)據(jù)時的糾錯部件中的數(shù)據(jù)分配部件的操作以及該情況下進行數(shù)據(jù)傳輸和出錯位計算的時序。
同樣,圖21、圖22和圖23用于說明在以2列進行糾錯的糾錯裝置中,C2序列的糾錯操作,分別示出了數(shù)據(jù)從緩沖存儲器中讀出的順序、以該順序輸入數(shù)據(jù)時的糾錯部件中的數(shù)據(jù)分配部件的操作以及該情況下進行數(shù)據(jù)傳輸和出錯位計算的時序。
在第一實施例中,對讀取記錄在光盤等記錄媒體中的數(shù)據(jù)、從讀出的數(shù)據(jù)串中查找錯誤、進行糾正以及將糾正后的數(shù)據(jù)傳輸?shù)街饔嬎銠C中的數(shù)據(jù)流向進行了說明,但另一方面,本發(fā)明也能夠用于從主計算機輸出數(shù)據(jù)、在該數(shù)據(jù)中附加用于糾錯的奇偶校驗碼以及寫入光盤等記錄媒體中的數(shù)據(jù)流向。本發(fā)明是這樣一種技術對于暫時存儲在設置于記錄媒體和主計算機之間的數(shù)據(jù)總線中途的緩沖存儲器中的乘積碼,通過有效地讀出構成該乘積碼的全部代碼串并將其傳輸?shù)降谌b置(除記錄媒體和主計算機之外的處理裝置),可以在第三裝置中通過高速且小規(guī)模的電路對C1序列和C2序列進行代碼處理。
具體地,可以進行如下變更將糾錯部件5中的4個出錯位生成部件52~55和錯誤位置·錯誤數(shù)值運算部件56置換為奇偶校驗數(shù)據(jù)生成電路,將錯誤數(shù)據(jù)更新部件57置換為奇偶校驗數(shù)據(jù)寫入電路。從而實現(xiàn)了能夠高速執(zhí)行在向記錄媒體寫入數(shù)據(jù)時附加糾錯碼和在從記錄媒體中讀出數(shù)據(jù)時糾正錯誤數(shù)據(jù)的所謂“糾錯伴隨處理”的糾錯裝置。
在第一實施例中,總線控制器2通過1次DMA傳輸進行從緩沖存儲器1向糾錯部件5的4字節(jié)數(shù)據(jù)的傳輸,在這次DMA傳輸與下次DMA傳輸期間允許除對傳輸緩沖存儲器1進行訪問之外的數(shù)據(jù)傳輸,但是也可以通過1次DMA傳輸進行16字節(jié)數(shù)據(jù)的傳輸。由此,在C1序列的糾錯中,通過1次DMA傳輸可以將圖10中所示的16字節(jié)數(shù)據(jù)d1~d16從緩沖存儲器1傳輸?shù)郊m錯部件5中,在此期間禁止插入緩沖存儲器1中用于訪問的其它數(shù)據(jù)的傳輸,因而16字節(jié)數(shù)據(jù)的傳輸時間,即分別向4個出錯位生成部件52~55中的每一個提供4個字節(jié)的數(shù)據(jù)所需要的時間被大致固定,在顯著降低了出錯位計算的處理速度的情況下,避免了向糾錯部件5進行的數(shù)據(jù)傳輸成為瓶頸。
在第一實施例中,糾錯裝置100內(nèi)部的數(shù)據(jù)總線寬度為8位,但也可以是32位數(shù)據(jù)總線。此時,通過1次存儲器訪問從緩沖存儲器1中讀出4字節(jié)數(shù)據(jù)并傳輸?shù)郊m錯部件5中。然后,數(shù)據(jù)分配部件51在進行C1序列的糾錯時,將32位數(shù)據(jù)按照每8位進行分割,分別分配到4個出錯位生成部件52~55中即可。
在第一實施例中,在糾錯部件5中只有出錯位計算被并列執(zhí)行,但也可以對與其連接的錯誤位置·錯誤數(shù)值運算部件56和錯誤數(shù)據(jù)更新部件57進行并列化。由此,即使在出錯位計算中發(fā)生大量錯誤的情況下,也能夠確保一定的糾正處理。
(第二實施例)第二實施例涉及這樣的高速光盤讀取裝置分離錯誤檢測和糾錯,在將數(shù)據(jù)存入緩沖存儲器的同時并行執(zhí)行錯誤檢測,通過將該結(jié)果反映到糾錯中,避免了從緩沖存儲器向糾錯部件傳輸沒有發(fā)生錯誤的數(shù)據(jù)。
圖24是本發(fā)明第二實施例中的光盤讀取裝置2000的結(jié)構示意圖。光盤讀取裝置2000是用于讀取記錄在光盤2010中的數(shù)據(jù),并在對讀出的數(shù)據(jù)進行糾錯后將該數(shù)據(jù)傳輸?shù)街饔嬎銠C2070中的裝置,由光拾取器2020、放大器2030、前端處理機2040、光盤控制部件2100、旋轉(zhuǎn)電動機2050、伺服控制器2060和系統(tǒng)控制部件2080構成。
系統(tǒng)控制部件2080是用于通過光盤控制部件2100接收來自主計算機2070的數(shù)據(jù)請求的命令,解釋該命令,控制伺服控制器2060及光盤控制部件2100并實現(xiàn)與數(shù)據(jù)請求相應的功能的微處理器。
旋轉(zhuǎn)電動機2050用于旋轉(zhuǎn)光盤2010,伺服控制器2060用于以來自前端處理機2040的信息為基礎接收系統(tǒng)控制部件2080的指示,并控制旋轉(zhuǎn)電動機2050的旋轉(zhuǎn)及光拾取器2020的鏡頭位置。
光盤2010為DVD-ROM,光拾取器2020用于通過鏡頭光線的反射光讀取記錄在光盤2010中的數(shù)據(jù)并將其轉(zhuǎn)換為電信號,放大器2030用于放大光拾取器2020的輸出信號并將其輸出到前端處理機2040中。
前端處理機2040用于根據(jù)輸入的信號,在伺服控制器2060、旋轉(zhuǎn)電動機2050及光拾取器2020中進行反饋控制,將穩(wěn)定的信號輸出到光盤控制部件2100中,包括均衡器、AGC(自動增益控制電路)、PLL(Phase Locked Loop)等。而且前端處理機2040輸出到光盤控制部件2100中的信號為調(diào)制數(shù)據(jù)。
光盤控制部件2100將來自主計算機2070的數(shù)據(jù)請求命令通知給系統(tǒng)控制部件2080,根據(jù)系統(tǒng)控制部件2080的控制,對從前端處理機2040輸入的信號進行解調(diào),取出所需要的數(shù)據(jù),進行糾錯并將數(shù)據(jù)輸出到主計算機2070中。
在圖24中,粗箭頭表示記錄在光盤2010中的數(shù)據(jù)到達主計算機2070中的流程。即,記錄在光盤2010中的數(shù)據(jù)經(jīng)過光拾取器2020、放大器2030、前端處理機2040以及光盤控制部件2100而到達主計算機2070。而且,記錄在光盤2010中的數(shù)據(jù)結(jié)構與第一實施例中的數(shù)據(jù)結(jié)構相同,采用圖1所示的乘積碼并采用Reed-Solomon碼為糾錯碼。
圖25是光盤控制器2100的詳細結(jié)構示意圖。光盤控制部件2100是用于對從前端處理機2040傳送來的信號進行解調(diào)并糾錯,然后將其送到主計算機2070中的電路,包括緩沖存儲器2110、磁盤接口部件2120、糾錯部件2130、主機接口部件2140、第一傳輸部件2150、第二傳輸部件2160、第三傳輸部件2170、總線控制器2180、錯誤檢測部件2190和錯誤代碼串存儲部件2200。圖25中的粗箭頭表示在向緩沖存儲器2110的由DMA傳輸執(zhí)行的數(shù)據(jù)寫入以及從緩沖存儲器2110的由DMA傳輸執(zhí)行的數(shù)據(jù)讀出中的數(shù)據(jù)通路。
緩沖存儲器2110是利用二維地址(行地址和列地址)具有特定存儲區(qū)域的DRAM等半導體存儲器,具有暫時存儲多個圖1所示的乘積碼的存儲容量。
磁盤接口部件2120在對從前端處理機2040輸入的信號進行解調(diào)后,將得到的數(shù)據(jù)輸出到第一傳輸部件2150中以將數(shù)據(jù)存入緩沖存儲器2110中。在將從磁盤接口部件2120輸出的數(shù)據(jù)通過第一傳輸部件2150傳輸?shù)骄彌_存儲器2110中的同時,將該數(shù)據(jù)并行輸入到錯誤檢測部件2190中。
對于經(jīng)過第一傳輸部件2150從磁盤接口部件2120傳送來的數(shù)據(jù),錯誤檢測部件2190判斷C1序列中的每個代碼串中是否存在錯誤,在檢測出錯誤的情況下,將該代碼串的編號存入由RAM構成的錯誤代碼串存儲部件2200中。該錯誤檢測部件2190還計算出每1列代碼串中一定個數(shù)的出錯位,判斷這些出錯位中是否存在非零數(shù),如果存在非零數(shù),則斷定有錯誤發(fā)生。具體地,錯誤檢測部件2190由第一實施例中的糾錯部件5所具有的4個出錯位生成部件52~55之一(圖8所示的電路)和用于判斷所生成的出錯位是否全部為零的與門電路構成。
糾錯部件2130以從磁盤接口部件2120傳輸并存入緩沖存儲器2110的乘積碼中產(chǎn)生了錯誤的數(shù)據(jù)為對象,進行C1序列及C2序列的糾錯。具體地,糾錯部件2130參照存在錯誤代碼串存儲部件2200中的編號,只以發(fā)生了錯誤的C1序列的代碼串或發(fā)生了錯誤的數(shù)據(jù)塊的C2序列代碼串為對象,糾正緩沖存儲器2110中的錯誤數(shù)據(jù)。
主機接口部件2140是用于通過第三傳輸部件2170,從緩沖存儲器2110中讀出完成了由糾錯部件2130所執(zhí)行的處理的數(shù)據(jù)并將其輸出到主計算機2070中的接口電路。
第一傳輸部件2150是DMA控制器,用于接收總線控制器2180對來自磁盤接口部件2120的傳輸請求的許可通知,同時并列進行從磁盤接口部件2120向緩沖存儲器2110的DMA數(shù)據(jù)傳輸和向錯誤檢測部件2190的同一數(shù)據(jù)的傳輸。
第二傳輸部件2160是DMA控制器,用于接收總線控制器2180對來自糾錯部件2130的傳輸請求的許可通知,進行從緩沖存儲器2110向糾錯部件2130的DMA數(shù)據(jù)傳輸。
第三傳輸部件2170是DMA控制器,用于接收總線控制器2180對來自主機接口部件2140的傳輸請求的許可通知,進行從緩沖存儲器2110向主機接口部件2140的DMA數(shù)據(jù)傳輸。
總線控制器2180按照預定優(yōu)先順序,控制這3個傳輸部件2150、2160和2170,以便于排他性地執(zhí)行分別由第一傳輸部件2150、第二傳輸部件2160和第三傳輸部件2170進行的DMA傳輸并控制在重寫緩沖存儲器2110中的錯誤數(shù)據(jù)時由糾錯部件2130對緩沖存儲器2110的普通(非DMA)訪問。
圖26是總線控制器2180的詳細結(jié)構示意圖??偩€控制器2180由生成并輸出用于對緩沖存儲器1進行訪問的地址的地址生成部件2181、將第一傳輸部件2150、第二傳輸部件2160、第三傳輸部件2170以及糾錯部件2130中的任一個與緩沖存儲器2110進行總線連接的總線切換部件2183以及按照預定優(yōu)先順序,對這3個傳輸部件2150、2160、2170及總線切換部件2183進行控制以便于排他地執(zhí)行這3個傳輸部件2150、2160、2170的DMA傳輸及糾錯部件2130對緩沖存儲器2110的訪問的總線調(diào)配控制部件2182構成。
地址生成部件21在這3個DMA傳輸中,對緩沖存儲器1進行頁面模式下的高速訪問。具體地,在命中頁的范圍內(nèi),確定并原樣輸出對緩沖存儲器1的行地址(RAS),僅使列地址(CAS)增加所需要的數(shù)據(jù)個數(shù)并輸出。
圖27是表示由總線調(diào)配控制部件2182進行的3個排他的DMA傳輸?shù)恼{(diào)度示例,即由第一傳輸部件2150進行的從磁盤接口部件2120向緩沖存儲器2110的DMA傳輸(DMA#1)、由第二傳輸部件2160進行的從緩沖存儲器2110向糾錯部件2130的DMA傳輸(DMA#2)以及由第三傳輸部件2170進行的從緩沖存儲器2110向主機接口部件2140的DMA傳輸(DMA#3)的時序圖。在本圖中,橫軸表示經(jīng)過的時間,三角形印記表示對個DMA傳輸?shù)恼埱蟮陌l(fā)生,劃有剖面線的四邊形表示DMA傳輸在執(zhí)行中。
總線調(diào)配控制部件2182在最高的優(yōu)先級下允許執(zhí)行DMA#1,在最低的優(yōu)先級下允許執(zhí)行DMA#2。即,總線調(diào)配控制部件2182在沒有任何一個DMA傳輸處于執(zhí)行當中的情況下,不管與各DMA相對應的請求的產(chǎn)生順序如何,只要產(chǎn)生了與DMA#1相對應的請求,就最優(yōu)先地執(zhí)行DMA#1,如果沒有產(chǎn)生與DMA#1相對應的請求,就執(zhí)行DMA#3,只有在與DMA#1相對應的請求和與DMA#3相對應的請求都沒有產(chǎn)生時從執(zhí)行DMA#2。但是,在連續(xù)產(chǎn)生與DMA#1相對應的請求并且還產(chǎn)生了其他的與DMA#2或DMA#3相對應的請求時,不連續(xù)執(zhí)行DMA#1,而是執(zhí)行其他的DMA#2或DMA#3。
對于糾錯部件2130在重寫緩沖存儲器2110中的錯誤數(shù)據(jù)時所進行的對緩沖存儲器2110的普通訪問,總線調(diào)配控制部件2182執(zhí)行與DMA#3相同的處理。即,在與DMA#1相對應的請求和與DMA#3相對應的請求都沒有產(chǎn)生時,允許糾錯部件2130對緩沖存儲器2110所進行的普通訪問。
圖28是示出了與糾錯部件2130的詳細結(jié)構相關聯(lián)的其他構成部件的電路圖。糾錯部件2130是用于針對構成圖1所示的乘積碼的C1序列及C2序列中預先檢測出錯誤的代碼串,執(zhí)行每1行或1列代碼串糾錯的電路,由C1代碼串傳輸請求部件2135、出錯位計算部件2131、歐基里德計算部件2132、鏈計算部件2133以及錯誤數(shù)據(jù)更新部件2134構成。
C1代碼串傳輸請求部件2135向第二傳輸部件2160提出請求以便從緩沖存儲器2110中讀出包含了存在錯誤代碼串存儲部件2200中的錯誤的C1序列的代碼串。
出錯位計算部件2131是用于在通過總線控制器2180、第二傳輸部件2160而從緩沖存儲器中取得了包含來自C1代碼串傳輸請求部件2135的請求中所具有的錯誤的C1代碼串之后,計算該代碼串的出錯位的電路,其計算結(jié)果被提供給歐基里德計算部件2132。
另外,此出錯位計算部件2131是用于計算出每1行或1列代碼串中的出錯位的電路,與第一實施例中的糾錯部件5所具有的4個出錯位生成部件52~55之一(圖8所示的電路)相同。即,在乘積碼的大小為k1=k2=100字節(jié)、m1=m2=10字節(jié)的情況下,出錯位計算部件2131由用于對輸入的數(shù)據(jù)進行暫時緩沖存儲的隊列緩沖器和10個用于分別計算出10個出錯位的積和運算電路組成,各積和運算電路由用于存儲1個積和值的寄存器、用于讀出存儲在該寄存器中的積和值并將其與固有的系數(shù)相乘的伽羅瓦域乘法器以及用于將相乘的結(jié)果與下次輸入的1個數(shù)據(jù)相加的伽羅瓦域加法器組成。
歐基里德計算部件2132是用于根據(jù)從出錯位計算部件2131中傳送來的出錯位,利用歐基里德算法,計算出用于確定錯誤位置多項式和錯誤數(shù)值多項式各項系數(shù)的電路,計算出的系數(shù)被提供給鏈計算部件2133。
鏈計算部件2133是利用來自歐基里德計算部件2132的系數(shù),通過鏈查尋和調(diào)用法等方法算出所確定的錯誤位置多項式的根的電路,將其運算結(jié)果與來自歐基里德計算部件2132的用于確定錯誤數(shù)值多項式的系數(shù)一起提供給錯誤數(shù)據(jù)更新部件2134。
錯誤數(shù)據(jù)更新部件2134在利用來自鏈計算部件2133的錯誤位置和錯誤數(shù)值多項式,求出位于該錯誤位置上的錯誤數(shù)值之后,通過總線控制器2180讀取緩沖存儲器2110內(nèi)該錯誤位置上的信息數(shù)據(jù)或奇偶校驗數(shù)據(jù),計算它們的異或邏輯和,將得出的值回寫到緩沖存儲器2110內(nèi)的原位置上。
另外,由第二傳輸部件2160進行的從緩沖存儲器2110向出錯位計算部件2131的數(shù)據(jù)傳輸是通過由DMA傳輸進行的存儲器訪問而進行的,但是緩沖存儲器2110與錯誤數(shù)據(jù)更新部件2134之間的數(shù)據(jù)傳輸是通過由總線控制器2180進行的普通(非DMA)存儲器訪問而進行的。這是由于通過糾錯而成為重寫對象的數(shù)據(jù)不受存儲在緩沖存儲器2110內(nèi)的連續(xù)地址上的數(shù)據(jù)限制。而且,構成糾錯部件2130的4個電路2131~2134在分別進行同步并列處理,即進行流水線方式下的順序處理。
圖29是示出了在連續(xù)處理多個數(shù)據(jù)塊的數(shù)據(jù)的情況下,光盤控制器2100內(nèi)的處理過程的時序圖。在本圖中,第1數(shù)據(jù)塊到第5數(shù)據(jù)塊是分別存儲在緩沖存儲器2110中的1個數(shù)據(jù)塊的數(shù)據(jù)。而且,“緩沖”表示由第一傳輸部件2150進行的從磁盤接口部件2120向緩沖存儲器2110的數(shù)據(jù)傳輸,“錯誤檢測”表示由第一傳輸部件2150進行的從磁盤接口部件2120向錯誤檢測部件2190的數(shù)據(jù)傳輸和在錯誤檢測部件2190中進行的錯誤檢測,“糾錯”表示由第二傳輸部件2160進行的從緩沖存儲器2110向糾錯部件2130的數(shù)據(jù)傳輸和在糾錯部件2130中進行的糾錯,“主機傳輸”表示由第三傳輸部件2170進行的從緩沖存儲器2110向主機接口部件2140的數(shù)據(jù)傳輸。
如本圖所示,將與同一數(shù)據(jù)塊相對應的緩沖及錯誤檢測、對完成了緩沖及錯誤檢測的數(shù)據(jù)塊的糾錯以及對完成了糾錯的數(shù)據(jù)塊的主機傳輸作為流水線順序且并列地執(zhí)行。例如,在周期t5,在從磁盤接口部件向緩沖存儲器2110傳輸和存儲第5數(shù)據(jù)塊的同時,在錯誤檢測部件2190中進行錯誤檢測,從緩沖存儲器2110向糾錯部件2130傳輸?shù)?數(shù)據(jù)塊并進行糾錯,從緩沖存儲器2110向主機接口部件2140傳輸?shù)?數(shù)據(jù)塊。
另外,在本圖中,并列進行3種用于訪問緩沖存儲器2110的數(shù)據(jù)傳輸,但這是從數(shù)據(jù)塊這個大方面的數(shù)據(jù)傳輸觀點上出發(fā)而表現(xiàn)出來的,從構成數(shù)據(jù)塊的各數(shù)據(jù)的角度考慮(瞬時地),只能執(zhí)行其中一種數(shù)據(jù)傳輸。這樣的排他性數(shù)據(jù)傳輸及上述流水線控制,如圖27中的時序圖所示,是通過按照預定的優(yōu)先順序,將由3個傳輸部件2150、2160、2170進行的數(shù)據(jù)傳輸以較小的時間單位進行切換并許可而實現(xiàn)的。
而且,在本圖中,不對第3數(shù)據(jù)塊進行糾錯就是在錯誤檢測過程中,這個數(shù)據(jù)塊中沒有發(fā)現(xiàn)任何錯誤。即,由于在錯誤檢測部件2190中沒有對第3數(shù)據(jù)塊檢測出任何錯誤,所以接收該通知的糾錯部件2130不進行與對該數(shù)據(jù)塊的糾錯相關的一切處理。即,通過糾錯部件2130將上述意思通知總線控制器2180,對屬于第3數(shù)據(jù)塊的全部代碼串,不進行由第二傳輸部件2160執(zhí)行的從緩沖存儲器2110向糾錯部件2130的數(shù)據(jù)傳輸。
這樣,在并列進行對同一數(shù)據(jù)塊的緩沖和錯誤檢測,并在該錯誤檢測中沒有檢測到錯誤的情況下,由于通知了糾錯部件2130,所以能夠避免糾錯部件2130對不需要糾錯的數(shù)據(jù)進行從緩沖存儲器2110讀出的所謂無效數(shù)據(jù)傳輸。即,若在現(xiàn)有技術中,對于從光盤讀出的全部數(shù)據(jù),進行存入緩沖存儲器、從緩沖存儲器中讀出以進行錯誤檢測·糾正、從緩沖存儲器中讀出以將該數(shù)據(jù)輸出到主計算機的所謂3種數(shù)據(jù)傳輸,但在本第二實施例中,對于沒有發(fā)生錯誤的數(shù)據(jù),只進行存入緩沖存儲器和從緩沖存儲器中讀出以將數(shù)據(jù)輸出到主計算機的所謂2種數(shù)據(jù)傳輸。
圖30是圖29所示的時序圖的更詳細的示圖,在與錯誤檢測和糾錯這2個處理相關的過程中分別示出了C1序列及C2序列的處理。其中,在錯誤檢測中,僅對C1序列進行,而在糾錯中,先對C1序列進行1次糾錯,接著對C2序列進行1次糾錯。
具體地,在周期T1,錯誤檢測部件2190對于通過第一傳輸部件2150從磁盤接口部件2120傳送來的第1數(shù)據(jù)塊,檢查C1序列的代碼串中是否發(fā)生錯誤。如果檢測出錯誤的發(fā)生,錯誤檢測部件2190就將發(fā)生了錯誤的代碼串的編號記錄到代碼串存儲部件2200中。
其中,錯誤檢測部件2190之所以對C1序列進行錯誤檢測,是因為從磁盤接口部件2120向緩沖存儲器2110的數(shù)據(jù)傳輸是按照從第1行到第n2行,反復在行方向上掃描乘積碼的順序而進行的,因而使C1序列的錯誤檢測變得很容易。而之所以對C2序列不進行錯誤檢測,是因為對以前的C1序列糾錯的結(jié)果如果存在1次糾錯都不能進行的代碼串,就需要執(zhí)行C2序列的糾錯,因此根本沒有必要執(zhí)行C2序列的錯誤檢測。
接著在周期T2,糾錯部件2130首先從緩沖存儲器2110中讀出C1序列的代碼串并對其進行糾錯。但是,糾錯部件2130通過參照存儲在錯誤代碼串存儲部件2200中的編號,從緩沖存儲器2110中只讀出檢測出錯誤的C1序列的代碼串并對其進行糾錯。然后,在完成了對全部檢測出錯誤的C1序列的代碼串的糾錯之后,在該C1序列中存在沒有進行1次糾錯的代碼串的情況下,接著從緩沖存儲器2110中順序讀出構成該數(shù)據(jù)塊的全部C2序列的代碼串并對其進行糾錯。關于C2序列,對構成數(shù)據(jù)塊的全部代碼串進行糾錯是由于錯誤檢測部件2190只對C1序列進行了錯誤檢測,而不確定C2序列的代碼串中是否有錯誤所致。
圖31是示出了在進行C1序列的糾錯時糾錯部件2130內(nèi)的行單位處理過程的時序圖。其中,示出了在通過錯誤檢測部件2190在第1行、第4行、第6行及第11行中檢測錯誤時的由出錯位計算部件2131、歐基里德計算部件2132、鏈計算部件2133及錯誤數(shù)據(jù)更新部件2134執(zhí)行的并列處理。
由于錯誤檢測部件2190在第2行、第3行、第5行、第8~10行的代碼串中沒有檢測出錯誤,因此不將其從緩沖存儲器2110讀到出錯位計算部件2131中,從而,不作為出錯位計算、歐基里德計算、鏈計算及錯誤數(shù)據(jù)更新的對象。
圖32示出了在糾正圖31所示的代碼串時,對存儲在緩沖存儲器2110中的乘積碼的各數(shù)據(jù)的訪問順序。其中,示出了首先執(zhí)行對第1行的代碼串的糾錯,然后跳過第2行、第3行,對第4行的代碼串執(zhí)行糾錯,然后跳過第5行對第6行的代碼串執(zhí)行糾錯,接著對第7行的代碼串執(zhí)行糾錯的流程。與圖2所示的逐行掃描不同的是只對檢測出錯誤的行進行掃描。
如上所述,在此第二實施例中,糾錯部件2130對于C1序列的糾錯,通過參照錯誤代碼串存儲部件2200,從緩沖存儲器2110中只讀出檢測出錯誤的代碼串,即需要進行糾錯的代碼串并對其進行糾錯,避免了無效地從緩沖存儲器2110中讀出不需要糾錯的代碼串。
由此,對于沒有檢測出錯誤的C1序列的代碼串,不進行所謂的3種數(shù)據(jù)傳輸將從光盤讀出的全部數(shù)據(jù)存入緩沖存儲器、從緩沖存儲器讀出數(shù)據(jù)以用于錯誤檢測·糾錯以及從緩沖存儲器中讀出數(shù)據(jù)以將數(shù)據(jù)傳送到主計算機中,而是只進行2種數(shù)據(jù)傳輸存入緩沖存儲器和從緩沖存儲器讀出數(shù)據(jù)以將其傳送到主計算機。即,減少了對緩沖存儲器2110的訪問次數(shù),以此在提高整個光盤控制部件2100的處理速度的同時謀求降低功耗,實現(xiàn)更高速的低功耗光盤讀取裝置2000。
此外,在本第二實施例中,如圖32所示,糾錯部件2130反復進行逐行或逐列糾錯,但也可以象第一實施例一樣,進行每隔4行和4列等多代碼串的并列糾錯。
圖33示出了在以4個代碼串并行對圖31所示的C1序列糾錯時,從磁盤接口2120讀出數(shù)據(jù)的順序。這種讀出順序與第一實施例中圖10所示的順序基本相同,但在圖33中,與圖10所示的不同之處在于只以檢測出錯誤的行(第1行、第4行、第6行、第7行...)為對象,每隔4行代碼串并列讀出。在代碼串的長度不能被4整除的情況下,如圖34所示,先分別對檢測出錯誤的4列代碼串(第1行、第4行、第6行、第7行)反復進行4個字節(jié)的吃素,最后分別對該4列代碼串進行2個字節(jié)的傳輸即可。
第二實施例中象這樣的由糾錯部件2130對4個代碼串并列進行糾錯的變形例只要象第一實施例中的糾錯部件5一樣,在糾錯部件2130中設置4個出錯位計算部件和用于將來自緩沖存儲器2110的數(shù)據(jù)分配到4個出錯位計算部件中的數(shù)據(jù)分配部件即可。由此,就能夠得到由第一實施例中的并列化而產(chǎn)生的糾錯高速化和由第二實施例中的預先進行錯誤檢測而產(chǎn)生的糾錯高速化這兩方面的效果。
而且,在第二實施例中,在糾錯部件2130內(nèi)設置了C1代碼串傳輸請求部件2135,但是也可以將C1代碼串傳輸請求部件2135或者設置在錯誤檢測部件2190內(nèi),或者與錯誤檢測部件2190和糾錯部件2130一起構成獨立的電路。
而且,錯誤檢測部件2190只通知檢測出錯誤的代碼串的編號,但是也可以同時通知由該檢測得到的出錯位。然后,糾錯部件2130也可以針對檢測出錯誤的代碼串,從錯誤檢測部件2190接收出錯位,進行歐基里德計算和鏈計算。由此,能夠避免在錯誤檢測部件2190和糾錯部件2130中進行重復的出錯位計算。
同樣地,在錯誤檢測部件2190中,也可以不僅進行錯誤檢測,還接著進行歐基里德計算和鏈計算。在這種情況下,糾錯部件2130對于檢測出錯誤的代碼串,從錯誤檢測部件2190中接收錯誤位置和錯誤數(shù)值并對緩沖存儲器2110內(nèi)的錯誤數(shù)據(jù)進行糾正即可。這樣,通過在能夠確保處理時間的范圍內(nèi),在錯誤檢測部件2190中執(zhí)行用于進行C1序列的糾錯的出錯位計算、歐基里德計算及鏈計算,可以使執(zhí)行計算與從磁盤接口部件2120向緩沖存儲器2110的數(shù)據(jù)傳輸同時進行,并縮短糾錯部件2130進行糾錯所需要的時間。
(第三實施例)第三實施例涉及這樣的高速光盤讀取裝置通過在將數(shù)據(jù)存入緩沖存儲器中時并行執(zhí)行C1序列的糾錯,同時在該C1序列的糾錯中,從緩沖存儲器中只讀出發(fā)生了錯誤的數(shù)據(jù)塊并執(zhí)行C2序列的糾錯,從而削減了對緩沖存儲器的訪問次數(shù)。
圖35是本發(fā)明第三實施例中的光盤讀取裝置3000的結(jié)構示意圖。光盤讀取裝置3000是用于讀取記錄在光盤2010中的數(shù)據(jù),并在對讀出的數(shù)據(jù)進行糾錯后將該數(shù)據(jù)傳輸?shù)街饔嬎銠C2070中的裝置,由光拾取器2020、放大器2030、前端處理機2040、光盤控制部件3100、旋轉(zhuǎn)電動機2050、伺服控制器2060和系統(tǒng)控制部件2080構成。
此外,光盤讀取裝置3000與第二實施例中的光盤讀取裝置2000相比,只在光盤控制部件3100方面有所不同,因此對于其它的構成部件采用與圖24所示的符號相同的符號,在此省略了對這些相同部件的說明。
圖36是光盤控制器3100的詳細結(jié)構示意圖。光盤控制部件3100是用于將來自前端處理機2040的信號解調(diào)并糾錯后傳送到主計算機2070的電路,包括緩沖存儲器3110、磁盤接口部件3120、糾錯部件3130、主機接口部件3140、第一傳輸部件3150、第二傳輸部件3160、第三傳輸部件3170、總線控制器3180及數(shù)據(jù)選擇部件3190。圖36中的粗箭頭表示在向緩沖存儲器3110的由DMA傳輸執(zhí)行的數(shù)據(jù)寫入以及從緩沖存儲器3110的由DMA傳輸執(zhí)行的數(shù)據(jù)讀出中的數(shù)據(jù)通路。
緩沖存儲器3110是利用二維地址(行地址和列地址)具有特定存儲區(qū)域的DRAM等半導體存儲器,具有暫時存儲多個圖1所示的乘積碼的存儲容量。
磁盤接口部件3120在對從前端處理機2040輸入的信號進行解調(diào)后,將得到的數(shù)據(jù)輸出到第一傳輸部件3150中以將數(shù)據(jù)存入緩沖存儲器3110中。在將從磁盤接口部件3120輸出的數(shù)據(jù)通過第一傳輸部件3150傳輸?shù)骄彌_存儲器3110中的同時,將該數(shù)據(jù)并行輸入到數(shù)據(jù)選擇部件3190中。
數(shù)據(jù)選擇部件3190是用于選擇作為糾錯部件3130的糾錯對象的代碼串的傳輸源的選擇器。在通過第一傳輸部件3150從磁盤接口部件3120向緩沖存儲器3110進行數(shù)據(jù)傳輸?shù)那闆r下,該數(shù)據(jù)也被同時并行傳送到數(shù)據(jù)選擇部件3190中,因此對該數(shù)據(jù)進行選擇并通過數(shù)據(jù)選擇部件而到達糾錯部件3130。另一方面,在通過第二傳輸部件3160從緩沖存儲器3110傳送C2序列的代碼串的情況下,對該數(shù)據(jù)進行選擇并通過數(shù)據(jù)選擇部件而到達糾錯部件3130。另外,數(shù)據(jù)選擇部件3190還根據(jù)來自第一傳輸部件3150和第二傳輸部件3160的指示,選擇這些數(shù)據(jù)傳輸源中的一個。
糾錯部件3130一邊區(qū)分來自數(shù)據(jù)選擇部件3190的2種(C1序列和C2序列)代碼串,一邊進行糾錯。具體地,糾錯部件3130在數(shù)據(jù)選擇部件3190選擇并通過來自第一傳輸部件3150的數(shù)據(jù)(C1序列的代碼串)的情況下,執(zhí)行C1序列的糾錯,另一方面,在數(shù)據(jù)選擇部件3190選擇并通過來自第二傳輸部件3160的數(shù)據(jù)(C2序列的代碼串)的情況下,執(zhí)行C2序列的糾錯。
主機接口部件3140是用于通過第三傳輸部件3170,從緩沖存儲器3110中讀出完成了由糾錯部件3130所執(zhí)行的處理的數(shù)據(jù)并將其輸出到主計算機2070中的接口電路。
第一傳輸部件3150同時并列執(zhí)行從磁盤接口部件3120向緩沖存儲器3110的DMA數(shù)據(jù)傳輸和對同一數(shù)據(jù)的向數(shù)據(jù)選擇部件3190的DMA數(shù)據(jù)傳輸,第二傳輸部件3160執(zhí)行從緩沖存儲器3110向糾錯部件3130的DMA數(shù)據(jù)傳輸,并且第三傳輸部件3170執(zhí)行從緩沖存儲器3110向主機接口部件3140的DMA數(shù)據(jù)傳輸。
總線控制器3180按照預定的優(yōu)先順序,控制3個傳輸部件3150、3160、3170,以便于排他地執(zhí)行分別由第一傳輸部件3150、第二傳輸部件3160和第三傳輸部件3170執(zhí)行的DMA傳輸,并控制在重寫緩沖存儲器3110中的成為時間時由糾錯部件3130執(zhí)行的對緩沖存儲器3110的普通(非DMA)訪問。另外,總線控制器3180的詳細結(jié)構和由總線控制器3180執(zhí)行的對緩沖存儲器3110的訪問的排他控制分別與第二實施例中的圖26及圖27所示的內(nèi)容相同。
圖37是示出了與糾錯部件3130的詳細結(jié)構相關聯(lián)的其他構成部件的電路圖。糾錯部件3130是用于一邊時分地切換1行代碼串和1列代碼串,一邊并行糾錯的電路,由出錯位計算部件3131、歐基里德計算部件3132、鏈計算部件3133以及錯誤數(shù)據(jù)更新部件3134構成。
出錯位計算部件3131是用于一邊區(qū)分來自數(shù)據(jù)選擇部件3190的2種代碼串,一邊計算各自的出錯位的電路,包括2個暫時存儲器(輸入數(shù)據(jù)出錯位存儲部件3135和緩沖數(shù)據(jù)出錯位存儲部件3136)。輸入數(shù)據(jù)出錯位存儲部件3135是具有暫時存儲與構成1個數(shù)據(jù)塊的全部C1序列的代碼串相對應的出錯位的存儲容量的存儲器,緩沖數(shù)據(jù)出錯位存儲部件3136是具有暫時存儲與構成1個數(shù)據(jù)塊的全部C2序列的代碼串相對應的出錯位的存儲容量的存儲器。
出錯位計算部件3131在數(shù)據(jù)選擇部件3190選擇并通過了來自第一傳輸部件3150的數(shù)據(jù)(C1代碼串)時,對該C1代碼串進行出錯位計算,將得到的出錯位儲存到各代碼串中并存入輸入數(shù)據(jù)出錯位存儲部件3135中,另一方面,在數(shù)據(jù)選擇部件3190選擇并通過了來自第二傳輸部件3160的數(shù)據(jù)(C2代碼串)時,對該C2代碼串進行出錯位計算,將得到的出錯位儲存到各代碼串中并存入緩沖數(shù)據(jù)出錯位存儲部件3136中。
另外,此出錯位計算部件3131是用于瞬時計算出每1行或1列代碼串中的出錯位的電路,與第一實施例中的糾錯部件5所具有的4個出錯位生成部件52~55之一(圖8所示的電路)相同。即,在乘積碼的大小為k1=k2=100字節(jié)、m1=m2=10字節(jié)的情況下,出錯位計算部件3131由用于對輸入的數(shù)據(jù)進行暫時緩沖存儲的隊列緩沖器和10個用于分別計算出10個出錯位的積和運算電路組成,各積和運算電路由用于存儲1個積和值的寄存器、用于讀出存儲在該寄存器中的積和值并將其與固有的系數(shù)相乘的伽羅瓦域乘法器以及用于將相乘的結(jié)果與下次輸入的1個數(shù)據(jù)相加的伽羅瓦域加法器組成。
歐基里德計算部件3132是用于順序讀出分別存在出錯位計算部件3131的輸入數(shù)據(jù)出錯位存儲部件3135和緩沖數(shù)據(jù)出錯位存儲部件3136中的出錯位,計算出用于確定錯誤位置多項式和錯誤數(shù)值多項式各項系數(shù)的電路,計算出的系數(shù)被提供給鏈計算部件3133。
鏈計算部件3133是利用來自歐基里德計算部件3132的系數(shù),通過鏈查尋和調(diào)用法等方法算出所確定的錯誤位置多項式的根的電路,將其運算結(jié)果與來自歐基里德計算部件3132的用于確定錯誤數(shù)值多項式的系數(shù)一起提供給錯誤數(shù)據(jù)更新部件3134。
錯誤數(shù)據(jù)更新部件3134在利用來自鏈計算部件3133的錯誤位置和錯誤數(shù)值多項式,求出位于該錯誤位置上的錯誤數(shù)值之后,通過總線控制器3180讀取緩沖存儲器3110內(nèi)該錯誤位置上的信息數(shù)據(jù)或奇偶校驗數(shù)據(jù),計算它們的異或邏輯和,將得出的值回寫到緩沖存儲器3110內(nèi)的原位置上。
另外,由第二傳輸部件3160進行的從緩沖存儲器3110向出錯位計算部件3131的數(shù)據(jù)傳輸是通過由DMA傳輸進行的存儲器訪問而進行的,但是緩沖存儲器3110與錯誤數(shù)據(jù)更新部件3134之間的數(shù)據(jù)傳輸是通過由總線控制器3180進行的普通(非DMA)存儲器訪問而進行的。而且,構成糾錯部件3130的4個電路3131~3134在分別進行同步并列處理,即進行流水線方式下的順序處理。
圖38是示出了在連續(xù)處理多個數(shù)據(jù)塊的數(shù)據(jù)的情況下,光盤控制器3100內(nèi)的處理過程的時序圖。在本圖中,第1數(shù)據(jù)塊到第5數(shù)據(jù)塊是分別存儲在緩沖存儲器3110中的1個數(shù)據(jù)塊的數(shù)據(jù)。而且,“緩沖”表示由第一傳輸部件3150進行的從磁盤接口部件3120向緩沖存儲器3110的數(shù)據(jù)傳輸,“糾錯1”表示糾錯部件3130對由第一傳輸部件3150進行的經(jīng)過數(shù)據(jù)選擇部件3190從磁盤接口部件3120輸入到糾錯部件3130中的C1序列的代碼串的糾錯,“糾錯2”表示糾錯部件3130對由第二傳輸部件3160進行的經(jīng)過數(shù)據(jù)選擇部件3190從緩沖存儲器3110輸入到糾錯部件3130中的C2序列的代碼串的糾錯,“主機傳輸”表示由第三傳輸部件3170進行的從緩沖存儲器3110向主機接口部件3140的數(shù)據(jù)傳輸。
如本圖所示,將與同一數(shù)據(jù)塊相對應的并列的“緩沖”及“糾錯1”、對完成了“緩沖”及“糾錯1”的數(shù)據(jù)塊的“糾錯2”以及對完成了“糾錯2”的數(shù)據(jù)塊的“主機傳輸”作為流水線順序且并列地執(zhí)行。例如,在周期T5,在從磁盤接口部件向緩沖存儲器3110傳輸和存儲第5數(shù)據(jù)塊的同時,在糾錯部件3130中進行“糾錯1”(C1序列的糾錯),從緩沖存儲器3110向糾錯部件3130傳輸?shù)?數(shù)據(jù)塊并進行“糾錯2”(C2序列的糾錯),從緩沖存儲器3110向主機接口部件3140傳輸?shù)?數(shù)據(jù)塊。
另外,在本圖中,并列進行3種用于訪問緩沖存儲器3110的數(shù)據(jù)傳輸,但這是從數(shù)據(jù)塊這個大方面的數(shù)據(jù)傳輸觀點上出發(fā)而表現(xiàn)出來的,從構成數(shù)據(jù)塊的各數(shù)據(jù)的角度考慮(瞬時地),只能執(zhí)行其中一種數(shù)據(jù)傳輸。這樣的排他性數(shù)據(jù)傳輸及上述流水線控制,是通過總線控制器3180按照預定的優(yōu)先順序,將由3個傳輸部件3150、3160、3170進行的數(shù)據(jù)傳輸以較小的時間單位進行切換并許可而實現(xiàn)的。
而且,在本圖中,不對第3數(shù)據(jù)塊進行“糾錯2”(C2序列的糾錯)就是在“糾錯1”(C1序列的糾錯)中,這個數(shù)據(jù)塊中沒有發(fā)現(xiàn)任何錯誤。即,在糾錯部件3130的出錯位計算部件3131中為第3數(shù)據(jù)塊的C1序列的代碼串計算出全部為零的出錯位,并將其存入輸入數(shù)據(jù)出錯位存儲部件3135的情況下,或在周期T3進行的糾錯1中對C1序列的全部代碼串執(zhí)行糾錯并且不存在錯誤的情況下,糾錯部件3130通過參照出錯位存儲部件3135的內(nèi)容,明確了不必對第3數(shù)據(jù)塊進行C2序列的糾錯,并且不進行與對該數(shù)據(jù)塊的C2序列糾錯相關的一切處理。即,通過糾錯部件3130將上述意思通知給總線控制器3180,對第3數(shù)據(jù)塊的C2序列的全部代碼串,不進行由第二傳輸部件3160執(zhí)行的從緩沖存儲器3110向糾錯部件3130的數(shù)據(jù)傳輸。
這樣,由于并列進行對同一數(shù)據(jù)塊的緩沖和“糾錯1”,并將與錯誤檢測相關的信息存儲到輸入數(shù)據(jù)出錯位存儲部件3135中,因此在C1序列的代碼串中都沒有發(fā)生錯誤的情況下,糾錯部件3130通過參照輸入數(shù)據(jù)出錯位存儲部件3135而知道了此情況,因而能夠避免從緩沖存儲器2110讀出不需要進行C2序列糾錯的數(shù)據(jù)的所謂無效數(shù)據(jù)傳輸。即,若在現(xiàn)有技術中,對于從光盤讀出的全部數(shù)據(jù),要進行存入緩沖存儲器、從緩沖存儲器中讀出以進行錯誤檢測·糾正、從緩沖存儲器中讀出以將該數(shù)據(jù)輸出到主計算機的所謂3種數(shù)據(jù)傳輸,但在本第三實施例中,對于沒有發(fā)生錯誤的數(shù)據(jù),只進行存入緩沖存儲器和從緩沖存儲器中讀出以將數(shù)據(jù)輸出到主計算機的所謂2種數(shù)據(jù)傳輸。
圖39是圖38所示的時序圖的更詳細的示圖。在與“糾錯1”和“糾錯2”這2個處理相關的過程中分別示出了對C1序列及C2序列的處理。其中,在“糾錯1”中,只進行對C1序列的糾錯,而在“糾錯2”中,只進行對C2序列的糾錯。
具體地,在周期T1,糾錯部件3130對于通過第一傳輸部件3150從磁盤接口部件3120傳送來的第1數(shù)據(jù)塊,進行對C1序列的代碼串的糾錯。此時,出錯位計算部件3131將關于C1序列的全部代碼串而得出的出錯位存儲到輸入數(shù)據(jù)出錯位存儲部件3135中。
其中,糾錯部件3130與緩沖并行進行C1序列的糾錯(“糾錯1”),是因為從磁盤接口部件3120向緩沖存儲器3110的數(shù)據(jù)傳輸是按照從第1行到第n2行的順序,反復在行方向上掃描乘積碼而進行的,因而使C1序列的糾錯變得很容易。
接著在周期T2,糾錯部件3130并列進行對第2數(shù)據(jù)塊的C1序列糾錯和對第1數(shù)據(jù)塊的C2序列糾錯。具體地,這些第2數(shù)據(jù)塊和第1數(shù)據(jù)塊的數(shù)據(jù)是時分地從數(shù)據(jù)選擇部件3190傳送來的,因此糾錯部件3130在經(jīng)過數(shù)據(jù)選擇部件3190從磁盤接口部件3120輸入第2數(shù)據(jù)塊時,對其代碼串進行C1序列的糾錯,另一方面,在經(jīng)過數(shù)據(jù)選擇部件3190從緩沖存儲器3110輸入第1數(shù)據(jù)塊時,對其代碼串進行C2序列的糾錯。
另外,如果在對第1數(shù)據(jù)塊進行的C1序列糾錯中,沒有檢測出錯誤,或全部錯誤被糾正以后的情況下,與第3數(shù)據(jù)塊和第4數(shù)據(jù)塊一樣,不進行對第1數(shù)據(jù)塊的C2序列糾錯。即,不進行通過第二傳輸部件3160將第1數(shù)據(jù)塊的C2序列的代碼串從緩沖存儲器3110傳輸?shù)郊m錯部件3130的操作。
圖40是示出了在糾錯器2130內(nèi)的行方向及列方向上的單位處理過程的時序圖。本圖相當于圖39中所示的時序圖中的周期T2開頭部分中的“糾錯1”和“糾錯2”,示出了在糾錯部件3130中并列進行第2數(shù)據(jù)塊的C1序列糾錯(“糾錯1”)和第1數(shù)據(jù)塊的C2序列糾錯(“糾錯2”)的樣子。
在時間t1,出錯位計算部件3131并列進行對第2數(shù)據(jù)塊第1行代碼串的出錯位計算和對第1數(shù)據(jù)塊第1列代碼串的出錯位計算,并將各結(jié)果存入輸入數(shù)據(jù)出錯位存儲部件3135和緩沖數(shù)據(jù)出錯位存儲部件3136中。實際上,由于第2數(shù)據(jù)塊第1行代碼串和第1數(shù)據(jù)塊第1列代碼串是按照時間切換而從數(shù)據(jù)選擇部件3190中傳送的,因而出錯位計算部件3131在瞬時只是對其中一個代碼串進行出錯位計算。
在時間t2,出錯位計算部件3131并列進行對第2數(shù)據(jù)塊第2行代碼串的出錯位計算和對第1數(shù)據(jù)塊第2列代碼串的出錯位計算,并將各結(jié)果存入輸入數(shù)據(jù)出錯位存儲部件3135和緩沖數(shù)據(jù)出錯位存儲部件3136中。
與此并行,歐基里德計算部件3132首先讀出存在輸入數(shù)據(jù)出錯位存儲部件3135中的第2數(shù)據(jù)塊第1行代碼串的出錯位,利用它進行歐基里德計算,在將結(jié)果通知給鏈計算部件3133之后,接著進行對第1數(shù)據(jù)塊第1列代碼串的歐基里德計算,并將結(jié)果通知給鏈計算部件3133。
而且,在時間t2的后一半時間中,鏈計算部件3133根據(jù)來自歐基里德計算部件3132的通知,對第2數(shù)據(jù)塊第1行的代碼串進行鏈計算,并將結(jié)果通知給錯誤數(shù)據(jù)更新部件3134。
在時間t3,同樣地,出錯位計算部件3131并列進行對第2數(shù)據(jù)塊第3行代碼串的出錯位計算和對第1數(shù)據(jù)塊第3列代碼串的出錯位計算,與此并行,歐基里德計算部件3132在進行對第2數(shù)據(jù)塊第2行代碼串的歐基里德計算之后,接著進行對第1數(shù)據(jù)塊第2列代碼串的歐基里德計算,與此并行,鏈計算部件3133在對第1數(shù)據(jù)塊第1行的代碼串進行鏈計算之后,接著對第2數(shù)據(jù)塊第2列的代碼串進行鏈計算,與此并行,錯誤數(shù)據(jù)更新部件3134在對第2數(shù)據(jù)塊第1行代碼串進行錯誤數(shù)據(jù)的更新(緩沖存儲器3110內(nèi)錯誤數(shù)據(jù)的重寫)之后,接著對第1數(shù)據(jù)塊第1列代碼串進行錯誤數(shù)據(jù)的更新。
在以后的個時間tn中,同樣地并列執(zhí)行對1行代碼串和1列代碼串的出錯位計算、歐基里德計算、鏈計算及錯誤數(shù)據(jù)糾正。另外,在本圖中,雖然對全部行和列進行了歐基里德計算、鏈計算及錯誤數(shù)據(jù)糾正,但這是基于在對這些代碼串進行出錯位計算時檢測出錯誤的原因,如果不是這樣,則不進行對該代碼串的歐基里德計算、鏈計算及錯誤數(shù)據(jù)的糾正。
如上所述,在第三實施例中,在進行“緩沖”(從磁盤接口部件3120向緩沖存儲器3110的數(shù)據(jù)傳輸)的同時,并列進行對同一數(shù)據(jù)的C1序列糾錯(“糾錯1”)。由此,在將數(shù)據(jù)存入緩沖存儲器3110之后,就不需要所謂的讀出存在緩沖存儲器3110中的數(shù)據(jù)以用于C1序列糾錯的過程了。
而且,在與緩沖同時進行的糾錯中,由于一個數(shù)據(jù)塊的C1序列的錯誤檢測結(jié)果(出錯位)被記錄到輸入數(shù)據(jù)出錯位存儲部件3135中,因此在構成1個數(shù)據(jù)塊的全部C1序列代碼串中沒有發(fā)生錯誤的情況下,通過參照該記錄,能夠避免不必要的從緩沖存儲器3110讀出數(shù)據(jù)以進行C2序列糾錯的所謂無效數(shù)據(jù)傳輸。
這樣,依據(jù)第三實施例,不需要從緩沖存儲器3110讀出數(shù)據(jù)以進行C1序列糾錯和從緩沖存儲器3110中讀出數(shù)據(jù)以對沒有發(fā)生錯誤的數(shù)據(jù)塊進行C2序列糾錯,從而削減了對緩沖存儲器3110的訪問次數(shù),并實現(xiàn)了更高速的低功耗光盤讀取裝置2000。
另外,在第三實施例中,糾錯部件3130反復進行逐行或逐列糾錯,但也可以象第一實施例一樣,進行每隔4行和4列等多代碼串的并列糾錯。
例如,第三實施例中象這樣的由糾錯部件3130對4個代碼串并列進行糾錯的變形例只要象第一實施例中的糾錯部件5一樣,在糾錯部件3130中設置4個出錯位計算部件和用于將來自緩沖存儲器3110的數(shù)據(jù)分配到4個出錯位計算部件中的數(shù)據(jù)分配部件即可。由此,就能夠得到由第一實施例中的并列化而產(chǎn)生的糾錯高速化和由第三實施例中的預先進行C1序列的糾錯而產(chǎn)生的糾錯高速化這兩方面的效果。
而且,在第三實施例中,通過數(shù)據(jù)選擇部件3190和出錯位計算電路3131,按時間對分別從第一傳輸部件3150和第二傳輸部件3160傳送來的代碼串進行錯誤檢測,但是也可以代替這種結(jié)構,通過將只對來自第一傳輸部件3150的代碼串進行錯誤檢測的出錯位計算電路和只對來自第二傳輸部件3160的代碼串進行錯誤檢測的出錯位計算電路設計成2個獨立的出錯位計算電路,來同時并列進行對這2個代碼串的錯誤檢測。
以上根據(jù)第一至第三實施例對本發(fā)明進行了說明,但這并不意味著本發(fā)明只限于這些實施例。
例如,在第一至第三實施例中,對于1個數(shù)據(jù)塊的糾錯,只進行1次C1序列的糾錯和接在其后的C2序列糾錯,但是也可以在進行了這些糾錯之后,繼續(xù)進行C1序列的糾錯和接在其后的C2序列糾錯。由于通過增加糾錯的次數(shù)可以提高糾錯能力,因此只要考慮發(fā)現(xiàn)錯誤的數(shù)據(jù)量和在其它相關處理中所容許的時間,決定對各方向反復進行糾錯的次數(shù)即可。
而且,通過組合3個實施例中各自不同的結(jié)構部件,可以實現(xiàn)各種不同的變形。例如,圖27中所示的第二及第三實施例中的對3種DMA傳輸?shù)恼{(diào)度也可用于第一實施例中。
而且,第一至第三實施例是作為DVD-ROM等光盤的記錄媒體的磁盤驅(qū)動裝置,但是本發(fā)明涉及的糾錯裝置并不僅限于在這樣的數(shù)據(jù)存儲裝置中使用,也可以用于要求能夠?qū)D(zhuǎn)播的數(shù)據(jù)高速地進行糾錯的機器,例如網(wǎng)絡通信中的中繼器等。
權利要求
1.一種糾錯裝置,它反復進行R行L列的塊碼中對沿著行方向和列方向的代碼序列的糾錯所需的計算,其特征在于,所述糾錯裝置包括存儲裝置,用于存儲所述塊碼;運算裝置,用于以所述塊碼的1行或1列為單位進行塊碼誤差糾正運算;以及傳輸裝置,包括列方向傳輸部件,用于反復地從所述存儲裝置讀取塊碼中的L2列上的代碼序列,這里,L2為大于等于2且小于L的整數(shù),并將讀出的代碼序列傳輸?shù)剿鲞\算裝置,直到所有的L列被讀取和傳輸完;所述列方向傳輸部件通過按順序反復地讀取和傳輸R行上的L2個連續(xù)代碼段,從而從所述存儲裝置傳輸L2列中的代碼序列到所述運算裝置,在讀完L2列中的所有代碼后將讀取位置移動L2個代碼;其中,當代碼被所述列方向傳輸部件傳輸完畢時,所述運算裝置并行地對L2列中的代碼序列進行運算,把連續(xù)代碼當作屬于L2個列的不同列中的代碼序列。
2.一種糾錯裝置,它反復進行R行L列的塊碼中對沿著行方向或列方向的代碼序列的糾錯所需的計算,其特征在于,所述糾錯裝置包括存儲器,它存儲所述塊碼;運算部件,用于對所述塊碼的1行或1列的代碼進行糾錯計算;以及傳輸部件,包括行方向傳輸部件,它反復地從所述存儲器讀取塊碼中R1行上的代碼序列,這里,R1為大于等于2且小于R的整數(shù),并將讀出的代碼序列傳輸?shù)剿鲞\算部件中,直到所有的R行被讀取和傳輸完;所述行方向傳輸部件通過按順序反復地讀取和傳輸R1行上的L1個連續(xù)代碼的段,這里L1為大于等于2且小于L的整數(shù),從而從存儲器傳輸R1行上的代碼序列到運算部件,在讀完R1行中每一行的L1個連續(xù)代碼后,將讀取位置移動L1列。
3.如權利要求2所述的糾錯裝置,其特征在于,傳輸代碼的所述行方向傳輸部件和所述對R1行中的代碼序列執(zhí)行運算的運算部件是并行執(zhí)行的。
4.如權利要求2所述的糾錯裝置,其特征在于,當代碼被所述行方向傳輸部件傳輸時,所述運算部件通過時分方式對所述R1行的代碼序列進行運算,把接收到的代碼當作R1行中的不同行上的代碼序列的L1碼寬段。
5.如權利要求2或3所述的糾錯裝置,其特征在于,所述塊碼是乘積碼。
6.如權利要求5所述的糾錯裝置,其特征在于,組成塊碼的沿行方向和列方向的代碼序列包括信息碼和糾錯碼,所述運算部件包括錯誤檢測部件,檢測所述塊碼中一行或一列上的代碼序列中是否存在錯誤;和誤碼更新部件,用于當所述錯誤檢測部件檢測到代碼序列中的至少一個錯誤時,用校正后的值重寫對應錯誤的所述存儲器中的代碼,行方向傳輸部件,反復地向所述錯誤檢測部件傳輸代碼序列,且所述錯誤檢測部件并行地對R1行上的代碼序列進行錯誤檢測,把接收到的代碼當作在所述R1行的不同行上的代碼序列的L1碼寬段。
7.如權利要求6所述的糾錯裝置,其特征在于,所述存儲器存儲所述塊碼,以便在同一行上的代碼存儲在有連續(xù)地址的存儲區(qū)域中,且所述行方向傳輸部件連續(xù)地從存儲器中具有連續(xù)地址的存儲區(qū)域讀取L1個代碼。
8.如權利要求7所述的糾錯裝置,其特征在于,所述存儲器是動態(tài)隨機存取存儲器,且所述行方向傳輸部件利用頁面模式從所述存儲器讀取L1個代碼。
9.如權利要求8所述的糾錯裝置,其特征在于,所述行方向傳輸部件通過執(zhí)行對所述存儲器的直接存儲器訪問來傳輸代碼。
10.如權利要求6所述的糾錯裝置,其特征在于,所述錯誤檢測部件包括R1個錯誤檢測部件,每個錯誤檢測部件對R1行中的一行上的代碼序列進行錯誤檢測;以及分配部件,用于將接收自所述行方向傳輸部件的代碼按順序以L1碼寬段分配到所述R1個錯誤檢測部件,其中所述R1個錯誤檢測部件彼此獨立,且每一個錯誤檢測部件與所述行方向傳輸部件的代碼傳輸并行地進行錯誤檢測。
11.如權利要求10所述的糾錯裝置,其特征在于,所述R1個錯誤檢測部件中的每一個對L1碼寬段完成錯誤檢測的時間短于由所述分配部件分配L1碼寬段給所述錯誤檢測部件的時間。
12.如權利要求11所述的糾錯裝置,其特征在于,所述R1個錯誤檢測部件中的每一個具有一個積-和運算電路,用于計算一個代碼序列的多個校正子。
13.如權利要求6所述的糾錯裝置,其特征在于,當L除以L1得到商為D、余數(shù)為E時,所述行方向傳輸部件在按順序讀出并傳輸R1行中的每一行上的E碼寬段到所述錯誤檢測部件之前,重復D次R1行上的L1碼寬段的傳輸,且所述錯誤檢測部件在對E碼寬段進行錯誤檢測之前,對L1碼寬段進行預定次數(shù)的錯誤檢測。
14.如權利要求6所述的糾錯裝置,其特征在于,傳輸部件進一步包括列方向傳輸部件,用于在L2為大于等于2且小于L的整數(shù)時,從所述存儲器讀取所述塊碼中L2列中的代碼序列并將讀出的代碼序列傳輸?shù)剿鲥e誤檢測部件中,直到所有的L列被處理完;所述列方向傳輸部件通過按順序反復地讀取和傳輸R行上沿行方向的L2個連續(xù)代碼的段,從所述存儲器傳輸L2列中的所有代碼到所述運算部件,在讀完L2列中的所有代碼后,將讀取位置移動L2個代碼;以及代碼被所述列方向傳輸部件傳輸時,所述錯誤檢測部件并行地對L2列中的代碼序列進行錯誤檢測,把接收到的代碼當作一個系列,在該系列中,各個代碼對應于在L2列中的不同列中的代碼序列。
15.如權利要求14所述的糾錯裝置,其特征在于,R1和L2為R1=L2=j,且錯誤檢測部件包括j個錯誤檢測部件,每個錯誤檢測部件對一個代碼序列進行錯誤檢測;以及分配部件,用于重復地將接收自所述行的代碼的各個L1碼寬段按順序分配到選出的j個錯誤檢測部件之一,并用于重復地按順序?qū)嫵蓮乃隽薪邮盏降腖2碼寬段一部分的每個代碼分配到所述j個錯誤檢測部件中不同的錯誤檢測部件;其中所述j個錯誤檢測部件彼此相互獨立并且每次錯誤檢測與所述行方向傳輸部件和所述列方向傳輸部件的代碼傳輸并行進行。
16.如權利要求15所述的糾錯裝置,其特征在于,所述j個錯誤檢測部件中的每一個對L1碼寬段完成錯誤檢測的時間短于由所述分配部件分配L1碼寬段給所述錯誤檢測部件的時間,并且所述R1個錯誤檢測部件中的每一個對L2碼寬段中的一個代碼完成錯誤檢測的時間短于由所述分配部件分配L2碼寬段中的代碼給所述錯誤檢測部件的時間。
17.如權利要求16所述的糾錯裝置,其特征在于,R1=L1=L2=j。
18.一種糾錯裝置,它反復進行R行L列的塊碼中對沿著行方向或列方向的代碼序列的糾錯所需的計算,其特征在于,所述糾錯裝置包括存儲器,它存儲所述塊碼;運算部件,用于對所述塊碼的1行或1列的代碼進行糾錯計算;以及傳輸部件,包括列方向傳輸部件,它反復地從所述存儲器讀取塊碼中L2行上的代碼序列,這里,L2為大于等于2且小于L的整數(shù),并將讀出的代碼序列傳輸?shù)剿鲞\算部件中,直到所有的L列被讀取和傳輸完;所述列方向傳輸部件通過按順序反復地讀取和傳輸R行上的L2個連續(xù)代碼的段,從而從存儲器傳輸L2列上的代碼序列到運算部件,在讀完L2列中的所有代碼后,將讀取位置移動L2列。
19.如權利要求18所述的糾錯裝置,其特征在于,傳輸代碼的所述列方向傳輸部件和所述對L2列中的代碼序列執(zhí)行運算的運算部件是并行執(zhí)行的。
20.如權利要求18所述的糾錯裝置,其特征在于,當代碼被所述列方向傳輸部件傳輸時,所述運算部件通過時分方式對所述L2列的代碼序列進行運算,把連續(xù)代碼當作屬于L2列中的不同列上的代碼序列。
21.如權利要求18或19所述的糾錯裝置,其特征在于,所述塊碼是乘積碼。
22.如權利要求21所述的糾錯裝置,其特征在于,組成塊碼的沿行方向和列方向的代碼序列包括信息碼和糾錯碼,所述運算部件包括錯誤檢測部件,用于執(zhí)行所述塊碼中一行或一列上的代碼序列的錯誤檢測;和誤碼更新部件,用于當所述錯誤檢測部件檢測到代碼序列中的至少一個錯誤時,用校正后的值重寫對應錯誤的所述存儲器中的代碼,列方向傳輸部件,反復地向所述錯誤檢測部件傳輸代碼序列,且所述錯誤檢測部件并行地對L2列上的代碼序列進行錯誤檢測,把接收到的代碼當作一個系列,在所述系列中,各個代碼對應于所述L2列的不同列上的一個代碼序列。
23.如權利要求22所述的糾錯裝置,其特征在于,所述存儲器存儲所述塊碼,以便在同一行上的代碼存儲在有連續(xù)地址的存儲區(qū)域中,且所述列方向傳輸部件連續(xù)地從存儲器中具有連續(xù)地址的存儲區(qū)域讀取L2個代碼。
24.如權利要求23所述的糾錯裝置,其特征在于,所述存儲器是動態(tài)隨機存取存儲器,且所述列方向傳輸部件利用頁面模式從所述存儲器讀取L1個代碼。
25.如權利要求24所述的糾錯裝置,其特征在于,所述列方向傳輸部件通過執(zhí)行對所述存儲器的直接存儲器訪問來傳輸代碼。
26.如權利要求22所述的糾錯裝置,其特征在于,所述錯誤檢測部件包括L2個錯誤檢測部件,每個錯誤檢測部件對L2列中的一列上的代碼序列進行錯誤檢測;以及分配部件,用于將構成接收自所述列方向傳輸部件的L2碼寬段的一部分的各個代碼按順序分配到所述L2個錯誤檢測部件中不同的一個錯誤檢測部件,其中所述L2個錯誤檢測部件彼此獨立,且每一個錯誤檢測部件與所述列方向傳輸部件的代碼傳輸并行地進行錯誤檢測。
27.如權利要求26所述的糾錯裝置,其特征在于,所述L2個錯誤檢測部件中的每一個對L2碼寬段中的一個代碼完成錯誤檢測的時間短于所述分配部件分配L2碼寬段中的代碼給所述錯誤檢測部件的時間。
28.如權利要求27所述的糾錯裝置,其特征在于,所述L2個錯誤檢測部件中的每一個具有一個積-和運算電路,用于計算一個代碼序列的多個校正子。
29.如權利要求22所述的糾錯裝置,其特征在于,當L除以L2得到商為D、余數(shù)為E時,所述列方向傳輸部件在按順序讀出并傳輸R行中的每一行上的E碼寬段之前,重復D次R行上的L2碼寬段的傳輸,且所述錯誤檢測部件在對E碼寬段進行錯誤檢測之前,對L2碼寬段進行預定次數(shù)的錯誤檢測。
全文摘要
本發(fā)明涉及一種糾錯裝置,它反復進行R行L列的塊碼中對沿著行方向和列方向的代碼序列的糾錯所需的計算,所述糾錯裝置包括存儲裝置,用于存儲所述塊碼;運算裝置,用于以塊碼的1行或1列為單位進行塊碼誤差糾正運算;傳輸裝置,包括列方向傳輸部件,用于反復地從存儲裝置讀取塊碼L2列的代碼序列,并將讀出的代碼序列傳輸?shù)竭\算裝置,直到所有L列被讀取和傳輸完;列方向傳輸部件通過按順序反復讀取和傳輸R行上L2個連續(xù)代碼段,從而從存儲裝置傳輸L2列代碼序列到運算裝置,在讀完L2列所有代碼后將讀取位置移動L2個代碼;當代碼被列方向傳輸部件傳輸完時,運算裝置并行對L2列的代碼序列進行運算,把連續(xù)代碼當作屬于L2個列的不同列的代碼序列。
文檔編號H03M13/11GK1555061SQ20041006361
公開日2004年12月15日 申請日期1999年2月24日 優(yōu)先權日1998年2月25日
發(fā)明者中辻文男, 橋本祐一, 一, 中 文男 申請人:松下電器產(chǎn)業(yè)株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1