專利名稱:數據解碼方法和系統的制作方法
技術領域:
本發明是關于經受數據壓縮操作和被壓縮圖象數據的解壓縮的數據解碼方法和數據解碼系統。特別是本發明是關于在使用微機的游戲機等中使用的壓縮數據解碼方法和解碼系統。
圖2給出了與先有技術相關的使用微機的游戲機的一般方框圖。在圖中,游戲機包括游戲機主體1,一程序盒2和一CRT顯示器3。游戲機主體包括具有CPU10的微機,直接存儲器存取的控制器(DMAC)11,用來作為CPU10的工作區域的隨機存取的存儲器(RAM)12,圖象處理單元(PPU)13和視頻存儲器(VRAM)14。此外,系統總線15與CPU10、DMAC11、RAM12和PPU13連接。
例如,PPU13與CRT顯示3的垂直和水平掃描操作同步地讀出一幀(一屏)的圖象數據。這一幀圖象數據寫入VRAM14的一圖象區域和用來通過VRAM來在CRT顯示器3上顯示相關的圖象。當一幀的圖象被用來顯示時,另一幀圖象數據被臨時地寫入在VRAM14的另外一個區域,這樣寫入的一幀數據被順序地用來顯示另外一個相關的圖象。
當使用游戲機時,程序盒2被插入到由游戲機主體上提供的一個槽內(在圖中未示出)。該盒2包括ROM20和RAM21。游戲的操作程序被事先寫在ROM20,RAM21被用來存儲、例如游戲操作的過程、游戲的得分結果等,并且把電池作為RAM21的備用電源。
近來,對這樣的游戲機提出新的要求,例如在CRT上顯示電影圖象,這樣在ROM、例如在
圖1示出的程序盒2的ROM20中存儲的數據量就非常大,ROM應該有非常大的存儲容量以存儲這樣大的數據,為了減少所需的ROM的容量,圖象數據或類似的數據在存入ROM之前要被壓縮。
如果圖象數據或類似的數據被壓縮和然后存入程序盒2的ROM20內,游戲機主體1的CPU10被用來解碼或恢復已經被壓縮的并且存儲在ROM20中的圖象數據。特別是,DMAC11把數據從程序盒2的ROM2傳送到RAM12。這樣CPU10使用RAM12作為工作區域對在RAM12中的數據進行解碼,然后發送這樣解碼的數據到PPU13,解過碼的數據然后被用來在CRT3上顯示相關的圖象。
然而,在該方法當中,在CRT上顯示相關的諸圖象以前需要時間傳送和解碼已壓縮的數據,這樣就存在顯示相關圖象的延遲時間。
日本公開專利申請NO4286289公開了一個解碼器電路,電影圖象數據被壓縮,然后存儲在CD-ROM中。當顯示電影圖象時,解碼器電路再現和譯碼被壓縮和被存儲的數據為原始的圖象數據,這樣獲得的原始數據然后用來顯示電影。
該公開的解碼器電路配備有一工作ROM,用于從CD-ROM中傳出壓縮的數據;-DSP,用于對以DMA方式從工作RAM中已經傳送的數據進行最初解碼操作;一工作RAM,已經進行最初解碼操作的數據以DMA的方式傳送到該工作ROM;-PPU,在該工作RAM的數據以DMA的方式傳送到PPU,而PPU對所傳送的數據進行第二次解碼操作;和-DMAC,用以以DMA方式執行傳送操作,已經作為恢復被壓縮的數據的結果所獲得的數據然后從PPU中獲得。
然而,該解碼器電路以DMA方式把從CD-ROM讀出的數據以DMA方式傳送到工作RAM,然后在工作RAM的數據進而以DMA的方式傳送到DSP,然后,DSP解碼這樣傳送的數據和這樣被解碼的數據進而以DMA的方式傳送到工作RAM,這樣以DMA方式傳送大量的操作和需要執行非常復雜的控制操作。
本發明的目的是提供一個系統,使用該系統能夠消除上述的問題,特別是,它能夠明顯地取消解碼操作所需的時間和這樣防止了顯示圖象的時間延遲。這樣,可以平滑地執行圖象顯示操作。
本發明的另一個目的是提供一個解碼方法和解碼系統,借助可以獲得數據,作為被執行的存取操作的結果,該存取操作是直接從程序盒解碼的。
本發明的譯碼方法包括以下的步驟a)當存取記錄介質去讀壓縮數據時,使譯碼電路進入譯碼模式,在所說的譯碼模式中,所說的譯碼電路讀出和譯碼所說的壓縮數據和提供譯碼數據;b)當所說的譯碼電路已經處理了預定數量的壓縮數據量時,使所說的譯碼電路進入通過模式,在所說的通過模式中,所說的譯碼電路從所說的記錄介質讀取數據,但對這樣讀出的數據不執行任何操作,按原樣提供數據,本發明的數據解碼電路包括地址產生電路,對一給定地址進行增量或減量而產生地址;譯碼器,根據所說地址產生電路所提供的地址從記錄介質中讀出壓縮數據,對這樣讀出的數據進行解碼和輸出這樣恢復的數據;一地址開關電路,選取所說地址產生電路所提供的電址和由外部地址總線提供的地址中的一個,輸出這樣選取的地址;一數據開關電路,用于選取所說記錄介質提供的數據和由所說譯碼器提供的數據中的一個,輸出這樣選取的數據到數據總線;所說的譯碼電路進入通過模式和譯碼模式中的一個,在所說的通過模式中,輸入數據被原樣地輸出,在所說的譯碼模式中,輸入的壓縮數據被解碼和這樣被解碼的數據被輸出;和當相關于所說記錄介質的地址是從外部給出時,所說的譯碼器電路進入所說的通過模式和這樣從所說記錄介質中讀出的數據被輸出到所說的數據總線,和當相關于所說記錄介質的地址是從所說的地址產生電路所給出時,所說的譯碼器電路進入所說的譯碼器模式,這樣從所說的記錄介質讀出壓縮的數據,對數據進行譯碼和輸出這樣譯碼的數據到所說的數據總線。
最好是在所說的譯碼器電路中,由此所提供的數據量是事先設定的和所說的譯碼器電路已經提供了所說的數據量時所說的譯碼器電路進入所說的通過模式。
最好該譯碼器電路還包括一個內部存儲;和一變換存儲器,用于任意地設置包括相關于所說內部存儲器地址的地址變換;其中所說的數據一電路從所說的內部存儲器的數據,記錄介質的數據和所說譯碼器中的數據中選出一個。
最好是一壓縮數據的開始地址被預先設定;所說的譯碼電路輸出譯碼的數據和僅當一地址和給定的所說的開始地址相同時才讀出壓縮的數據;和當一地址和不是給定的開始地址相同時,所說的譯碼器電路進入通過模式。
最好是所說的記錄介質存儲壓縮數據和非壓縮數據;所說壓縮數據和非壓縮數據的開始地址是預先設定的;當給出預先設定的地址時,所說的譯碼器電路開始讀取所說壓縮和非壓縮數據和對該數據進行解碼;在第一個讀周期,或在最初的多個讀周期中,所說的譯碼電路輸出所說的非壓縮數據,然后輸出作為譯碼所說壓縮數據結果而獲得的數據。
根據本發明的另一個數據解碼器電路包括一地址產生電路,對給定地址進行增量或減量而產生地址;一譯碼器,用于根據由所說地址產生電路所提供的地址從一記錄介質中讀出壓縮的數據,對這樣讀出的數據進行譯碼和輸出這樣恢復的數據;一地址開關電路,用于選取由所說地址產生電路提供的地址和由外部地址總線提供的地址中的一個,和輸出這樣選中的地址;一數據開關電路,用于從所說的記錄介質所提供的數據和由所說譯碼器提供的數據當中選出一個,和輸出這樣選出的數據到數據總線;和一檢測電路,用于檢測通過所說地址總線的地址流;當執行DMA作時,所說的譯碼電路被預先設定去執行恢復操作;當所說檢測電路檢查到相關于所說DMA作地址時,由所說地址產生電路提供的地址作為該地址,依照該地址數據從所說記錄介質中讀出,這樣讀出的壓縮的數據被譯碼,和被輸出到所說的數據總線;當所說的檢測電路并不檢測相關于所DMA操作地址時,通過所說地址總線提供的地址被用來作為該此地址,依照該此地址數據從所說的記錄介質中讀出,這樣讀出的數據被原封不動地輸出到所說的數據總線。
最好是根據給出的指令去進入所說的譯碼模式,當檢測出的給定地址相關部分不是所說的記錄介質時,所說的譯碼電路從所說記錄介質讀取壓縮的數據和開始恢復數據;和當檢測給出DMA開始指令時,所說的譯碼器電路輸出這樣譯碼的數據。
依本發明的另一個數據譯碼器電路包括一地址產生電路,對一給定地址進行增量或減量而產生地址;一譯碼器,用于根據由所說地址產生電路提供的地址從記錄介質中讀出壓縮的數據,對這樣讀出的數據進行解碼和輸出這樣恢復的數據;一地址開關電路,用于選取由所說地址產生電路提供的地址和由外部地址總線提供的地址中的一個,和輸出這樣選取的地址;
一數據開關電路,用于選取由所說記錄介質提供的數據和由所說譯碼器提供的數據中的一個,輸出這樣選取的數據到數據總線;和一檢測電路,用于檢測通過所說地址總線的地址;所說的譯碼器電路進入通過模式和譯碼模式之一,在所說的通過模式中,輸入數據被原樣輸出,在所說的譯碼模式中,輸入壓縮的數據被解碼和這樣被解碼的數據被輸出;和響應給定指令進入所說解碼模式,當檢測到一給定地址的相關部分不是所說的記錄介質時,所說的譯碼器電路從所說的記錄介質讀出壓縮的數據和開始恢復該數據;當確定到給定的地址與預先設定的地址一致時,所說的譯碼器電路輸出這樣的譯碼數據;和當確定給定地址與所說預先設定的地址不一致時,所說的譯碼器電路進入所說的通過模式。
依本發明的另一個數據解碼器電路包括第一組寄存器,其中讀出的壓縮的數據地址被設定;一控制寄存器,用于控制具有分別預先設置優先權順序大量譯碼操作的開始,所說的大量譯碼操作相關于所說大量寄存器;第二組寄存器,其中相關于所說第一組大量寄存器的分別每一個的傳送量被設定。
第一和第二地址產生電路,對為給定地址進行增量或減量而產生地址;第一和第二存儲電路,用于根據由所說第一組和第二組地址產生電路的地址輸出存儲從記錄介質讀出的壓縮的數據;
一譯碼器,用于根據由所說地址產生電路提供的地址從記錄介質中讀出壓縮的數據,對這樣讀出的數據進行譯碼,和輸出這樣恢復的數據;一地址開關電路,用于選取由所說的第一組或第二組地址產生電路所提供的地址和從外部地址總線提供的地址中的一個,和輸出這樣選出的地址;一數據開關電路,用于從由所說記錄介質提供的數據和由所說的譯碼器提供的數據中選出一個,和輸出這樣選出的數據到數據總線;所說譯碼器電路進入通過模式和譯碼模式中的一個,在所說的通過模式中,輸入的數據原樣被輸出,在譯碼模式中,輸入壓縮的數據被譯碼和這樣譯碼的數據被輸出;當地址是由所說的外部地址總線所提供時,所說的譯碼電路進入所說通過模式;當地址是由所說第一組或第二組地址產生電路所提供時,所說的譯碼器進入所說的譯碼模式;這樣,響應所說大量譯碼操作開始的諸指令,相關于高優先權順序的地址在所說第一組地址產生電路中被設置,然后根據由所說第一組地址產生電路提供的地址,壓縮的數據從所說的記錄介質中讀出和然后存儲在所說第一存儲裝置,這樣存儲的數據被讀出和由所說的譯碼器加以譯碼。
當所說第一存儲裝置滿時,所說第二存儲地址產生電路從隨后優先權順序的相關的地址中提供該地址,依照這樣提供的地址壓縮的數據從所說記錄介質中然后被讀出和然后被存儲在所說第二存儲裝置。
這樣,在相關第一指定地址的相關的數據傳送量已經輸出以后,在順序的恢復操作中,所說譯碼器開始從所說的第二存儲裝置中讀取數據,所說第二地址產生電路繼續先前產生的地址而產生新地址,使用這樣產生的地址所說記錄介質中讀出壓縮的數據,這樣讀出的數據然后被存入所說的第二存儲裝置,然后,當第二存儲裝置滿時,所說第一組地址產生電路從相關于順序的優先權順序的一地址中提供地址,依照這樣提供的地址壓縮的數據然后從所說記錄介質中被讀出和然后被存放在第一存儲裝置中。
最好是所說第一和第二存儲裝置包括FIFO存儲器。然而,該第一和第二存儲裝置可以包括FIFO存儲器和寄存器。
當結合附圖閱讀詳細的描述時本發明的其它器地和進一步的特點將變得更為明顯。
圖1給出了使用微機的現有技術的游戲機的一般方框圖;圖2給出了本發明的第一,二,三,四,五,六實施例中每一個使用微機的游戲機的實例的一般方框圖;圖3給出了本發明第一實施例的譯碼器電路的方框圖;圖4A給出了包括相關在沒有進行變換更改以前的在第一實施例的譯碼器電路的的內部RAM地址的地址映象。
和圖4B給出了對此進行變換(映象)更改的相同的地址映象;圖5給出了在第一實施例的譯碼電路所執行的處理程序的流程圖6給出了本發明第二實施例的譯碼器電路的方框圖;圖7給出了在第二實施例的譯碼器電路中執行的處理程序的流程圖;圖8A,8B,8C,8D,8E,8F,8G和8H給出了在第二實施例的譯碼電路的DMA操作開始的時序圖;圖9A,9B,9C,9D,9E,9F和9G給出了在第二實施例的譯碼電路的DMA操作的時序圖;圖10給出了本發明第三實施例的譯碼器電路的方框圖;圖11給出了在第三實施例的譯碼器電路中執行的處理程序的流程圖;圖12A,12B,12C,12D,12E,和12F給出了在第三實施例譯碼電路中的DMA操作的時序圖;圖13給出了本發明第四實施例的譯碼器電路的方框圖;圖14給出了本發明第五實施例的譯碼器電路的方框圖;圖15給出了在第五實施例的譯碼器電路中執行處理程序的流程圖;圖16給出了本發明第六實施例的譯碼器電路的方框圖;圖17A,17B,17C,17D,17E和17F給出了在第六實施例的譯碼器電路的DMA操作的時序圖;圖18給出了在第六實施例使用的ROM的結構;和圖19給出了本發明的第一,二,三,四,五和六中每一個使用微機的游戲機另一個實例的一般方框圖。
參看圖2,使用微機的游戲機,作為本發明的第一,二,三,四,五和六實施例的每一個的一般配置將給于詳細地描述。在圖2中,那些與圖1中使用相同的參考號被用來表示相應的部件。
類似于圖1所示的相關的現有技術的游戲機,依本發明的游戲機包括游戲機主體1,程序盒2和CRT顯示器3。
類似于相關現有技術的游戲機,游戲機主體包括包含CPU10的微機,一DMAC11,一工作RAM2,一PPU13和VRAM14。此外,CPU,DMAC11,RAM12,和PPU13連接在系統總線15上。
例如,PPU13與CRT顯示3的垂直和水平掃描操作同步地讀出一幀(一屏幕)圖象數據。該幀圖象數據定入VRAM的一圖象區域和然后通過VRAM14被用來在CRT顯示器13上顯示相關的圖象。當該幀圖象數據正在被用來顯示時,另一幀圖象數據被臨時地寫入VRAM中14中的另一個圖象區域,這樣被寫入的一幀圖象數據被隨后使用來顯示另外一個相關的圖象。
當游戲機使用時,近而程序盒被插入到在游戲機主體1所提供的一個槽內(在圖中未視出)。該盒2包括譯碼器電路23和ROM20和RAM21。沒有被壓縮的游戲操作程序和壓縮的圖象數據被事先寫入ROM20,和RAM被用來存儲,例如,程序操作的過程,游戲計分結果等以及具有電池作為RAM21的備用電源。
在譯碼器電路23中,它可以在通過模式和譯碼模式中變化,在通過模式中,譯碼電路23原樣輸出輸入的數據。在譯碼模式中,譯碼器電路23譯碼或恢復輸入的壓縮的數據和然后實時輸出這樣的數據。特別是,在通過模式中,譯碼器電路23對ROM20進行存取,讀出數據和然后輸出這樣讀出的數據到游戲機主體)的系統總線15,在譯碼模式中,譯碼器電路23從ROM20中讀取壓縮的數據和對這樣讀出的數據進行譯碼。然后,譯碼器電路23輸出這樣譯碼的數據到游戲機主體1的系統總線15,模式變換的操作是作為CPL10執行存取操作的結果而執行的。
參看圖3,將描述本發明的第一實施例的譯碼器電路23。
譯碼器電路23包括譯碼器230,用于對壓縮的數據進行譯碼;一地址產生電路231,用于產生由譯碼器230使用的地址,以從在ROM230中讀出壓縮的數據,和能由CPU10自由地存取的小容量RAM232。RAM232是一個存儲器,它總是由譯碼器電路23外部地加以存取。
此外,映象電路232變換上述RAM232的地址為ROM20的任意地址。一內部寄存器234提供一存儲區域,用來存儲壓縮的數據的第一個地址;控制寄存器區域;狀態寄存器區域等。內部寄存器是存儲器,它總是能被外部地加以存取。
控制電路235控制整個譯碼器電路23。一傳送量計數器23b在開始譯碼操作以后對傳送的數據量進行計數,一結束檢測電路237檢測預先設置的傳送量和傳送量計數器23b的計數值的一致,這樣結束譯碼操作。
地址譯碼器電路238輸出一芯片選取信號以選取ROM20或電池后備的RAM21。地址開關電路239包括多路器,該電路239根據譯碼器230的輸出選取從地址產生電路231的地址輸出或系統總線15的系統地址總線的輸出,和提供從兩輸出中選取的一個到ROM20的ROM20地址總線,上述的從地址產生電路231的地址輸出是一個用來從ROM20中讀取數據的地址輸出和提供數據到譯碼器230。
數據開關電路240包括一個多路器。該電路240從ROM20來的數據,從內部RAM232來的數據,從譯碼器230來的數據和從內部寄存器234來的數據中選取一個。該電路240然后提供這樣選取的數據到系統總線15的系統數據總線。緩沖器電路241對到系統數據總線的輸入狀態和到系統數據總線的輸出狀態之間進行切換。
在第一個實施例當中,當提供電源時,譯碼器電路23是在通過模式,在該模式中ROM20能被存取,和這樣數據能原樣讀出,即在ROM20中所存儲的模式讀出。在這時,譯碼器電路23的地址開關電路239選取從系統總線15的系統地址總線轉送的地址,并且把該地址送到ROM20。近而,數據開關電路240輸出不是ROM20的數據總是內部RAM232的數據到系統總線15的系統總線。該狀態是CPU10能對ROM20進行正常存儲器存取操作的狀態。
下面將描述對存儲在ROM內的壓縮的數據進行譯碼操作。
游戲機主體1的CPU10在其初始化例程中讀出處理程序以從ROM20中執行DMA轉送操作,和把這樣讀出的程序寫入到譯碼器23的內部RAM232。近而,為了交換ROM20的任意RCM地址的程序CPU10近而在譯碼器23的內部寄存器234內寫入RAM232的地址,在該地址下該程序是這樣寫入的。
依照此程序譯碼的數據的DMA轉送操被執行,該此處理程序將結合圖5一般地加以描述。
當譯碼操作開始時,一譯碼地址被寫入譯碼器電路23的內部寄存器234和這樣的譯碼準備在S1中執行。在S2中,譯碼的開始位寫入器部寄存器234,譯碼器230開始譯碼操作,和數據傳送量被設定。然后在S3中,執行對DMA控制器11的設定和開始地址和傳送量被在其內設定。在S4,這確定是否譯碼的數據已經準備了用于作為被執行的譯碼操的結果被傳送。如果確定譯碼的數據已經被準備,在S5內開始DMA操作。然后,確定DMA傳送操作在S6內被停止,當前的操作結果。
參看圖4a和4b,將描述在內部RAM232內的變換狀態。在變換更改執行以前,RAM232的地址是位于如圖4A所示的不同于ROM20其它部分的一區域。處理程序的地址位于地址映象內的程序區(在映象的上半部分)。處理程序被復制到內部RAM232。然后內部RAM232的地址被設置在譯碼器電路23的內部寄存器234內使得內部RAM232的地址被映象為ROM2的地址。在影象更改執行以后,地址圖如圖4B所示。
作為結果,當CPU10依照圖4B所示的地址映象執行存取操作時,當企圖對相關于在ROM20的處理程序的地址進行存取時,CPU10自動地存取相關于內部RAM232的地址。這樣,CPU10存取內部RAM232和以此讀出處理程序,該程序按上述方法復制到內部存儲器232。這樣,沒有使用CPU10改變地址,CPU10自動地存取內部的RAM232和讀出處理程序。這樣,在譯碼操作期間,雖然CPU10不能接存取ROM20和這樣不能直接地讀存儲在ROM20中的處理程序,但是CPU10讀存儲在內部RAM232中的處理程序。
事實上對存儲ROM20的壓縮數據進行譯碼開始時,從譯碼器電路23讀出的數據僅僅是解碼的數據,在ROM20中的處理程序不被直接讀出。為了讀取處理程序,如上所述,處理程序被移到另外的區域例如內部RAM232,和這樣CPU10能從此讀取處理程序。在譯碼器電路23沒有內部RAM或類似存儲器的情況下,處理程序可以替換地復制到工作RAM12內,和處理程序可以由此被讀出。
如果處理程序出現在譯碼器電路23的內部RAM232中,甚至在譯碼器電路進入譯碼模式后CPU10能從內部RAM232中獲得諸指令。因此,很明顯,該狀況和CPU10直接從RAM20直接獲得指令的狀況相同。
現在描述特定的操作CPU10寫要被譯碼的壓縮的數據的開始地址和要被傳送的數據量入譯碼電路23的內部存儲器234。然后,CPU10寫譯碼的開始位入譯碼器電路23的內部寄存器234的控制寄存器區域和命令譯碼電路23開始譯碼操作。然后,以預定的方式執行DMAC11的設定。
在進入開始譯碼操作以后,譯碼器電路23需要時間去進入譯碼器電路23連續輸出譯碼的數據的狀態。因此在DMA傳送譯碼的數據之前,這就需要通過讀取內部寄存器234的狀態寄存器的區域,以確定是否譯碼器230已經結束了輸出的準備,如果輸出準備已經結束,CPU16命令游戲機主體1的DMAC11去開始DMA傳送操作。
然而,這可能是這種情況,在由CPU10已經提供了譯碼開始諸指令之后,在CPU10所需要的時間內以預定的方式完成對DMAC11的進行設定時,譯碼器電路23可以完成譯碼數據輸出準備工作。在這種情況下,沒有必要讀取內部寄存器234的狀態寄存器區域。
當譯碼器電路23開始譯碼操作時,電路23進入了譯碼模式,在譯碼器電路23內部的地址開關電路239選取地址產生電路231的地址輸出,并且把該地址輸出提供到與ROM20相關的地址總線。近而,數據開關電路240不是選取譯碼器230的輸出數據,就是選取內部RAM232的數據,和將選取的數據提供給外部系統總線15的系統數據總線。
地址產生電路231是連續地對壓縮的數據開始地址進行地址的增量,該開始地址是預先寫入到內部寄存器234,根據從譯碼器230提供的指令和不斷地輸出它。譯碼器230這樣使用地址產生電路231,從ROM20中讀取壓縮的數據和然后對壓縮的數據進行譯碼。如果數據輸出準備工作已經完成,指示數據輸出準備完成的狀態位在內部寄存器234中被設置。當DMA傳送工作然后開始時,然后譯碼器電路23根據數據讀出信號提供譯碼的數據到外部系統總線15的系統數據總線。傳送量計數器236對數據傳送量加以升數,當譯碼操作開始時,傳送量計數器236的計數值被重置為零。
結束檢測電路237使用預先寫入在內部寄存器234內傳送量和傳送量計數器236的計數值去檢測傳輸操作的結果。如果傳送操作的結束這樣被檢測出,控制電路235結束譯碼模式并使譯碼器電路23返回到通過模式。
在預先設置數據的傳送完成后,DMA的傳送操作停止。在結束DMA傳送操作后,依照處理程序來決定DMA傳送操作結束,依照處理操作的操作被結束了。然而,該DMA傳送操作完成的決定不是必需需要的。
在第一個實施例中,在程序盒2的內部配有譯碼器電路23。從程序盒22傳送到游戲機主體1的數據是作為對壓縮數據進行譯碼的結果而獲得的數據。因此,數據傳送能以這樣方式進行,在該方式中,明顯的存在ROM中的非壓縮的數據被傳送,因此游戲機主體1的配置可以是和相關的現有技術的游戲機主體的配置是相同的,譯碼操作和與此相關的傳送操作是在譯碼器電路23內單獨的進行的,這正如上所述。作為結果,CPU10可以完全不考慮譯碼操作和相關的數據傳輸操作,作為結果,不發生圖象顯示延遲和可以平滑地執行圖象顯示。
此外,從程序盒2讀出的數據是作為對ROM20中的壓縮的數據進行譯碼或恢復的結果而獲得的數據,壓縮的數據并不直接與非壓縮的初始數據的地址相關。作為結果,從程序盒2的ROM20中復制數據是非常困難的,這樣,可以防止非法的復制。
現在參看圖6描述本發明的第二實施例的譯碼器電路,在圖6中,和第一實施例的譯碼器中的標號相同的標號被使用表示相應的元件。
和上述第一實施例類似,根據由地址產生電路231所產生的地址,從ROM20中讀出壓縮的數據。這樣讀出的壓縮數據被存儲在FIFO的存儲器242中。這樣存儲在FIFO存儲器242內的壓縮的數據被提供給譯碼器230,該譯碼器對這樣提供的壓縮的數據進行解碼或恢復。
CPU10對ROM進行存取和從ROM20內讀取壓縮的數據。在第二實施例的譯碼器電路23恢復這樣讀出的壓縮的數據,然后使用DMA操作傳送恢復的數據到游戲機主體1。為此目的,CPU10通過系統總線把這傳送初始地址數據傳到譯碼器電路23的地址寄存器243,這樣傳送初始地址數據指示在ROM20的地址,從該地址壓縮的數據應被讀出;被恢復和被傳送到游戲機主體1。提供給地址寄存器組243的這樣傳送的初始地址數據然后被寫在地址寄存器組中。
地址寄存器組243是由大量的寄存器組成作為DMAC11選擇地適當地使用的預定的大量DMA通道,和以此改善了傳輸效率。傳送初始地址的數據由CPU10來提供,借以使用在大量DMA通道當中的DMA通道來執行DMA傳送操作,這樣提供的傳送初始地址數據然后被寫入在大量寄存器中相關于上述DMA道的那個寄存器。這樣,傳送大量初始地址的數據被分別寫入地址寄存器組243中的大量寄存器。這樣寫入的傳送初始地址數據通過多路器243a被傳送到地址產生電路231。
類似地,CPU10把指示要由DMA操作傳送的數據量的傳送量數據提供到譯碼器電路23的內部寄存器244,并且把數據的傳送量寫在其中,寄存器組244是由大量的寄存器組成用于預定的大量DMA信道,CPU10提供數據傳送量用于使用在大量DMA信道中的一DMA信道來執行DMA傳送操作。這樣提供的傳送量數據被寫入在大量的寄存器當中相關于上述DMA信道的那個寄存器。這樣,大量數據傳送送量的數據被分別寫入寄存器組244的大量寄存器內。這樣寫入的要被傳輸的數據量然后通過多路器244a提供給檢測電路237。
在譯碼操作開始以后要傳送的數據量由傳送量計數器236加以計數和計數器236的計數值被提供給結束檢測電路237。
通過確定由寄存器組244提供的傳送量和計數器237的計數值一致,結束檢測電路確定,譯碼操作結束。
上述寄存器243和244所具有的地址和在譯碼器電路23外面的游戲機主體1的DMA控制器11的傳送初始地址寄存器和傳送量寄存器的內容一樣。寄存器組243和244是對此僅能執行寫操作的寄存器。因此,當CPU10企圖從DMAC11的地址寄存器或傳送量寄存器中讀取數據和這樣提供了相關的地址時,從DMAC11的寄存器和譯碼器電路23的寄存器中讀出數據沖突就被防止了。
在第二實施例的譯碼器電路23包括總線使用檢測電路245,用來檢測作為作為監示通過系統地址總線的數據流的結果的DMA操作的執行。這樣從游戲機主體1的CPU10提供的數據受到監視。近而,譯碼器電路23確定是否由系統地址總線的數據所指出的諸地址和特定的諸地址一致。
現在描述在第二實施例中的譯碼器23的操作。
按圖7所示,游戲機主體1的CPU10執行初始化設定,以恢復存儲在ROM20中的圖象數據和使用DMA操作傳送恢復的圖象數據。
在S10中,在多個DMA通道中的DMA通道在譯碼器電23的內部寄存器234中沒設定,通過這些通道可執行所希望的恢復操作,反當該設置值應當改變時才執行該設定。
在步驟S11中,在DMAC11中傳送初始地址,傳送目標地址和指示傳送量的數據。在這時,和在DMAC11中設定相同的傳送初始地址和傳送量數據被寫入到傳送初始地址寄存器組243和傳送量寄存器組244,在正常的DMA操作中傳送初始地址被增量或減量。然而,使用DMA通道執行恢復操作的DMA傳送操作的傳送初始地址既不增量也不減量而是固定的。為了使這樣的操作能被執行,該DMAC11要被適當地設置。
CPU10應當固定被使用的地址以執行由數據恢復操作所伴隨的存儲器存取操作。地址產生電路231以適合在ROM20中的壓縮的數據的數據密度的方式增加該固定的地址,這里可能是這種情況,這存在著這種可能性,為獲得原始數據對ROM20進行存取操作,而同時由數據恢復操相伴的存儲器存取操作也被正在執行,在這種情況下,這就有必要確定,是否當前執行的存儲器存取操作是由數據恢復操作相伴的操作。通過維持僅提供給如上所述的壓縮數據的開始地址,這就可能確定,當前執行的存儲器存取操作是由數據恢復操作相伴的操作。依此,當DMA操作執行時,該操作是使用硬件開始的,并且具有高的優先僅和不必數據恢復操作所伴隨和當CPU正執行數據傳送操作時,這就需要固定要被使用的地址以使存儲器存取操作伴隨著數據恢復操作。
在使用單個DMA通道的執行單個DMA操作的情況下,譯碼器電路23應當僅有一個傳送初始地址寄存器和一個傳送量寄存器。此外,可能會有這樣的情況,其中設置傳送初始地址的地址是與設置數據傳送量信息的地址相同。在該情況下,在DMAC11中設置傳送初始地址數據和數據傳送量信息能夠依照預定的步驟加以執行,同樣,譯碼器電路23可具有這樣的功能,使得依照同樣預定的步驟使用譯碼器23能夠自動地檢測和獲得傳送初始地址數據和數據傳送量信息。
在S12,然后,CPU10命令DMAC11開始DMA操作,在該實施例中,CPU10能指定使用大量DMA通道的DMA操作。使用大量DMA通道的所執行的DMA傳送操作可以包括以固定的方式執行恢復操作和一般簡單DMA傳送操作的DMA操作。近而,當DMAC11接到DMA操作開始的諸指命時,DMAC要求CPU10允許使用總線。在CPU10把總線交給DMAC11以后,DMAC11開始DMA操作。
當DMA操作被開始時,開始寫操作開始命令到DMAC11的一預定順序由CPU連續地執行,因此,為了預先檢測DMA操作的開始,譯碼器電路23檢測被提供給DMAC11的操作開始指令作為檢測數據通過系統地址總線的結果。該檢測可以由檢測命令DMA操作開始的某個特定地址例如CPU10寫命令到DMAC11的控制寄存器的地址加以執行。
在該第二個實施例中,在譯碼操作真實開始之前也可能由CPU10提供指示要被使用的DMA通道的數據或者由CPU從ROM20中得到相同的數據。在這種情況下,譯碼器電路23能預先地知道要被使用的DMA通道。
如果沒有這樣特定的地址,通過檢測預定的設置順序的一預定步的開始,使DMA操作的開始能被檢測到,如果沒有一個用來作為DMA操作的通道是預先的恢復操作所使用而設定的DMA通道,那末譯碼器電路23不開始任何操作。
參看圖8A,8B,8C,8D,8E,8F,8G和8H,在第二實施例中使用譯碼器電路23的DMA操作將被描述。
如圖8A所示由CPU10提供的一地址啟動信號是低電平,數據即在地址總線上產生的數據是有效的,在圖8F示出的譯碼器電路23輸出的地址指示相關于ROM20被連接到譯碼器電路23的地址在圖8H示出的譯碼器輸入數據是響應由外部系統地址總線或內部地址產生電路231提供的與ROM20相關的地址而由ROM提供的數據。
在圖8A-8H的時序圖內,在DMAC11已經命令DMA操作開始以后,執行一個指令恢復周期和這樣作為如圖8B所示的作為ROM地址被送到系統地址總線上的結果ROM數據從ROM20被提供到如圖8E所示的系統數據總線。然后,執行DMA操作和這樣譯碼的數據被提供到如圖8E所示的系統數據總線。上述的指令恢復取決于當前被使用的DMA操作開始步驟的系統和這里可能出現指令恢復被省略的情況。
在該時序圖內,實線箭頭指示一個周期,在該周期內使用外部系統地址總線所提供的地址進行數據輸出,虛線箭頭指示一個周期,在該周期內使用內部地址產生電路231提供的地址進行輸出。
在第二實施例的譯碼器電路23的操作將被描述。
譯碼器電路23可以檢測DMA操作的開始,用以檢測從CPU10提供到DMAC11的操作開始命令來進行恢復操作。如果如此,恢復操作的一DMA通道從預定的大量的DMA通道中選出。使用大量DMA通道的預定的DMA操作具有為此目地而預先分別設定的預定的優先權順序。要被這樣選出的DMA通道是一個在恢復操作中的大量DMA通道中具有最高優先權順序的一個。然后,與這樣選出DMA通道相關的傳送初始地址通過多路器243a從傳送初始地址寄存器組243被提供到地址產生電路231。這樣,地址產生電路的一地址被設定。這樣譯碼操作開始了。然后,傳送量寄存器組244,按如上所述提供與選出的該DMA通道相關的寄存器的輸出。
一控制寄存器包括在諸內部寄存器234中和控制著多路器243a和244a的操作。這樣,依靠預定的優先權順序控制著諸譯碼操作的開始。
在DMA操作已經開始后的瞬間,被在圖8H指示為壓縮的數據的一壓縮的數據項按照地址產生電路231所提供的地址ROM20中被讀出,這樣讀出的數據被寫入到FIFO的存儲器242,譯碼器230從FIFO存儲器242中讀出數據和對它進行譯碼,這樣譯碼的數據被提供到如圖8E所示的系統數據總線。然后,譯碼器電路23再次進入通過模式和這樣輸出到ROM20的地址包括了通過外部系統地址總線所提供的諸地址。譯碼器23進入通過模式的時間由圖8G的實線箭頭指出。
在DMA操作的每一個存儲器存取同期開始時,譯碼器這樣進入通過模式。然后,總線使用檢測電路245這樣使用一地址,該地址是由CPU10所提供和流過系統地址總線。地址使用檢測電路245這樣確定是否這樣獲得的地址是否與如上述選取的DMA通道相關的預先設定的傳送初始地址相同。這就是,是否這樣獲得的地址與在DMA操作開始時從傳送初始地址寄存器組243當中預先選出的一寄存器所提供的地址相同。如果從系統地址總線獲得的地址與選出的傳送初始地址相同,數據選取開關240選取從譯碼器230來的數據和輸出該數據。與此同時,依照地址產生電路231的地址,從ROM20中隨后被讀出壓縮的數據項(在圖8H中的壓縮的數據2)。
如果從系統地地址總線獲得的地址不與選出的傳送初始地址相同,譯碼器電路23進入通過模式。由系統地址總線提供的該地址被用來對ROM20進行存取。數據開關電路240選取這樣從ROM20讀出的數據。從ROM20讀出的數據被原樣提供到系統數據總線,即,缺乏恢復操作,這樣游戲機主體1能夠從ROM20的數據,如果首先應當執行的DMA操作是通常的DMA操作和沒有恢復操作的DMA操作,譯碼器電路23的譯碼操作被停止和在通過的模式下執行DMA操作。
結束檢測電路237確定傳送量計數器236的計數值與傳送量寄存器組244的值相一致。這樣,電路237確定使用當前DMA通道的譯碼操作的結束。
在上述的第一個實施例中,當存儲在ROM20中的壓縮的數據的譯碼開始時,從譯碼器電路23中讀出的數據僅僅是譯碼的數據,在ROM20中的處理程序并不能被讀出。為了讀處理程序,處理程序被移到另一個區域和CPU10才能讀處理程序。為此目的,譯碼器電路23具有一個內部的RAM232,并且把處理程序復制到內部的RAM,在第一個實施例中執行內部RAM的指令恢復。
與此相對照,在第二實施例的譯碼器電路23中,在DMA操作讀周期的開始時通過系統地址總線從CPU10發送的一地址被使用和在譯碼模式和通過模式之間要執行一適當的選取。作為結果,當處理程序從ROM20中讀出時間,譯碼電路23進入通過模式。這樣,就不需要復制存在ROM20當中處理程序或類似的程序到譯碼電路23。
此外,上述的方法可以應用到DMA傳送操作被執行的情況,在情況中DMA傳送操作的開始并不受軟件的控制。這樣的一個傳送操作是例如這樣一個操作,當顯示操作的一些參數隨著一圖象信號例如NTSC,PAL等等的每一個水平同步信號被傳送到PPU13時該傳送操作被執行。這樣的DMA操作由每個水平同步信號開始,和比由軟件開始的其它DMA操作有較高的優先權順序,并且在中斷較低優先權順序的其它DMA操作之后應當被執行。
譯碼器電路23通過總線使用檢測電路245監視在DMA操作的每一個存儲器存取周期的流過系統地地址總線的地址。當上述的具有較高優先權順序的DMA操作要求被執行時,DMAC11可以提供不同于先前為DMA操作而設置的地址數據的地址數據以進行恢復操作。總線使用檢測電路245然后檢測當前通過系統地址總線的地址數據是不同于預先設置的地址數據。作為結果,譯碼器電路23進入通過模式和DMAC11按相關的地址對ROM進行存取,和執行上述的DMA操作,該DMA操作的開始并不受軟件的控制。
參看圖9A,9B,9C,9D,9E,9F和9G,這樣的操作將被再次地加以描述。在為此例的這些圖形所示的操作中,恢復操作的DMA操作被執行和這樣譯碼的數據被提供到如圖9D所示的系統數據總線。然后,指示為DMA2地址并且不同于預定的傳送初始地址(DMA1地址)的地址數據被提供到如圖9A所示的系統地址總線。作為結果,恢復操作的這樣執行的DMA操作被中斷和開始一個有較高優先權順序的另一個DMA操作,根據另一個DMA操作的開始,譯碼器電路23進入通過模式和ROM數據直接提供給如圖9A所示的系統數據總線。實事上,當由總線使用檢測電路234檢測的地址數據不同于所期望的數據時,數據開關電路240選取從ROM20來的數據和這樣從ROM20來的數據提供給系統數據總線。
同樣,在上述的DMA譯碼操作中,當譯碼器電路23的結束檢測電路237確定傳送量計數器236的計數值和傳送量寄存器組244值一致,譯碼器電路23確定,使用DMA通道的當前譯碼操作已經結束。
在譯碼器23已經完成了預先設置的數據傳送量的譯碼之后,譯碼器電路23初始化FIFO存儲器。然后,傳送初始地址寄存器組243提供與-DMA通道相關的寄存器的傳送初始地址,在諸DMA通道中該通道是預先設置的并且具有的優先權順序在最高的一個之后。譯碼器23在地址產生電路231設定這樣的地址。
然后使用這樣的地址按,如上所述譯碼器電路從ROM20中讀取相關壓縮的數據的第一項,和并寫這樣讀出的壓縮的數據到FIFO存儲器242。譯碼器230然后從FIFO存儲器242中讀取這樣寫的壓縮的數據和對其進行譯碼,這樣被譯碼的數據提供給系統數據總線。近而,傳送量寄存器組244已提供相關的寄存器的傳送量數據到具有隨后優先權順序的該DMA通道,如果FIFO存儲器242已經滿,將停止從ROM20中讀取的數據和執行譯碼的數據瞬間的DMA傳送。這樣,以類似于第一DMAC11設定情況的方式,使用DMA通道的當前的DMA操作被執行。然后,類似地,順序地執行使用DMA通道進行恢復操作的所有DMA操作。這樣,譯碼器電路23完成預定的譯碼操作。
這也可能是被使用的DMA通道僅僅是一個單獨的通道的情況,在使用該單獨DMA通道進行DMA操作時這不存在著可能性使任何其它DMA操作被插入。在這種情況下,在由CPU10提供監視地址數據的DMA操作中就沒有必要在每個存儲器存取周期的開始插入通過模式。因為在恢復的DMA操作時這不必由CPU10提供監視地址數據,也不必要由CPU去維持一地址的地址數據作為開始傳送初始地址。
在第二個實施例中,在CPU10提供了DMA操作開始指令之后,譯碼器電路23開始從ROM20中讀取壓縮的數據,恢復它和DMA傳送它,然而這會出現這種情況,在CPU10提供了DMA操作開始指令以后,該情況要求譯碼器立即輸出譯碼的數據。在這種情況下,在CPU10提供DMA操作開始指令之前,這就需要開始從ROM20中讀取壓縮的數據,恢復它和DMA傳送它。在本發明的第三個實施例的譯碼器電路23以這樣的方式執行譯碼操作。
參看圖10,11和12A,12B,12C,12D,12E和12F描述第三實施例中的譯碼電路23。
參看圖10,在第三個實施例中,和圖6所示的配置不同的是,一第二地址產生電路246,一多路器250,用于從兩個地址產生電路246和231所提供的地址數據中選出一個和提供選出地址,一用于存儲從ROM20來的數據的數據寄存器。
參看圖11描述第三實施例的操作。
在S5中,與第二實施例類似,在預定的大量的DMA通道中,進行恢復并進行DMA操作而使用的諸DMA通道被設定在譯碼器電路23的內部寄存器234中。僅當初始化設定和改變初始設定值時才應該做此設定。
然后,在S16中,CPU10設定傳送初始地址,傳送目的地址和在DMAC中與傳送量有關的數據。在這時,與設置在DMAC11中的數據相同的傳送量初始地址數據和傳送量數據被寫入到傳送初始地址寄存器組243和傳送量寄存器組244,和第二例的情況相類似,在通常的DMA傳送操作中,傳送初始地址被增量或減量。然而,在使用DMA通道和執行恢復操作的DMA操作的傳送初始地址即不被增量也不被減量,而是固定的,為了使這樣的操作被執行,DMAC11要適當地加以設置。
然后,在S16A,CPU10把當前要被使用的DMA通道寫入譯碼器電路23的內部寄存器,在S17,CPU對除ROM20之外的預定部分進行存取,然后,在S18中,CPU10命令DMA操作的開始。
如上所述,在16A,CPU10把當前要被使用的DMA通道寫入在S16A中的譯碼器電路23的內部寄存器234。這樣寫入的DMA通道可以包括不進行恢復操作的通常的DMA通道。譯碼器電路23確定是滯內部寄存器234具有恢復操作的DMA通道。如果內部寄存器234具有恢復操作的DMA通道,譯碼器電路開始相關于壓縮的數據的恢復操作。特別是,在恢復操作的DMA通道當中,具有最高優先權順號的DMA通道的傳送初始地址由傳送初始地址寄存器組243的相關寄存器提供到地址產生電路231作為開始地址。近而,具有優先權順號在最高優先權順號之后的DMA通道的傳送初始地址由傳送初始地址寄存器組243的一相關的寄存器提供給第二地址產生電路246作為另外一個開始地址,如果在內部寄存器234內沒有恢復操作的DMA通道,沒譯碼操作開始,近而,這里僅僅存在一個恢復操作的DMA通道,沒有數據設置在第二地址產生電路246內。
然后,CPU10對除ROM區域之外的預定部分存取預定的次數。
存取ROM區域意指按指示ROM20的地址進行存取,在上述依本發明的實施例中,當CPU存取ROM區域時,CPU并不總是直接存取ROM20,但是CPU對包括在譯碼器230內的緩沖存儲器和由此從中讀出譯碼的數據,譯碼器230對一定量的壓縮數據進行譯碼和存儲這樣譯碼的數據到緩沖存儲器,當這樣存儲的譯碼的數據被讀出時,譯碼器230對隨后的定量的壓縮數據進行譯碼和存儲譯碼的數據到緩沖存儲器。
在圖12A-12F所示的操作中,除ROM20以外的預定部分即被指為在圖12B的非ROM也址被存取一次。該系統決定對除ROM20以外的預定部分所進行存取的次數。在CPU對除ROM20以外的預定部分進行存取的期間,譯碼器電路23使用預先設定在地址產生電路231中的開始地址,從ROM20中讀取必要要的壓縮的數據和然后開始對這樣讀出的壓縮的數據進行譯碼。譯碼器電路23盡可能長的進行譯碼操作。當譯碼器電路23已經完成了對這樣讀出量的壓縮的數據的譯碼操作時,譯碼操作停止直到隨后一定量的壓縮的數據從ROM20中讀出。
當譯碼器電路23已經檢測到由CPU10提供的DMA操作開始指令時,在開始檢測DMA操作開始指令提供到真實DMA操作開的結束這段時間內,譯碼器電路23可以使用預先設置在地址產生電路231預先設定的開始地址,從ROM20中讀出壓縮的數據,和然后寫這樣讀出的數據到FIFO存儲器242在這段時間內是否這樣數據讀出應當被執行取決于被使用的數據譯碼器系統,在提供DMA操作開始指令之后,在真實開始DMA操作所需時是很短的情況下,這樣壓縮的數據的讀出操作并不能被執行,在這樣的情況,這就需要預先從ROM20中讀出預定量的壓縮數據。
譯碼器230從FIFO存儲器242中讀出壓縮的數據和開始對壓縮的數據進行譯碼。然后,到ROM20的一地址輸出被返回,從內部地址產生電路231的一輸出轉到從外部系統地址總線的輸出。當DMA操作的讀周期開始時、這就決定是否從CPU10提供的地址數據是預先設定的相關于恢復操作的DMA通道的傳送初始地址。如果由CPU提供的地址是預先設定的傳送初始地址,數據開關電路241選取從譯碼器230來的數據和輸出這樣譯碼的數據,對ROM20的地址輸出改變為地址產生電路231的輸出是瞬時完成的。然后,隨后量的壓縮的數據從ROM20中讀出和上述的操作被重復。
如果在上述的操作中FIFO存儲器滿,當對ROM20進行存取時譯碼器電路23使用第二地址產生電路246。這樣,譯碼器電路23從ROM20中讀出壓縮的數據,和寫這樣讀出的數據到數據寄存器247。在數據寄存器滿時。寫入數據寄存器24下的數據停止。在恢復的DMA操作實際開始之前這樣寫入數據寄存器247的數據對于準備預先的譯碼的數據來說是必要的。
在完成預先設置的數據傳送量的譯碼以后,譯碼器電路23初始化FIFO存儲器242,和設置第二地址產生電路246的當前地址到第一地址產生電路231。傳送量寄存器組244的輸出是在預先設置的諸DMA通道當中相關于恢復的DMA通道的一寄存器的輸出,該寄存器具有最高的優先權順序。當壓縮的數據隨后從ROM20中讀出的時候,第一地址產生電路231提供一地址和這樣讀出的數據被寫入FIFO存儲器242。
當譯碼器電路23已經完成了預先設置的數據傳送量的譯碼時,通過一當前DMA通道的DMA操作正在進行。在由當前恢復操作伴隨的DMA操作和由隨后恢復操作伴隨的另一個DMA操作之間的時間差是很短的情況時,這就要求在由隨后恢復操作伴隨的DMA操作開始之前去讀取壓縮的數據和對此進行譯碼。
為此目的,譯碼器電路23讀出預先從ROM20中讀出的壓縮的數據和然后寫入數據寄存器247和對它進行譯碼。當寫入到數據寄存器247的數據已經完全地被譯碼以后,譯碼器230從FIFO存儲器241中讀出壓縮的數據和對它進行譯碼。
當當前執行的DMA操作是最后的一個和這里沒有要隨后執行DMA操作的情況下如果FIFO存儲器242滿,從ROM20讀出壓縮的數據還沒有執行,該壓縮數據的讀出本是和在DMA操作的譯碼器230中讀出的譯碼的數據同時執行的。這樣,當使用DMA通道以進行恢復的所有的操作已經完成時,譯碼器電路23結束譯碼操作。
在該第三實施例中在由恢復操作伴隨的DMA操作開始之前譯碼器電路23的操作已經開始了。在作為CPU10對除ROM20以外的預定部分進行存取的作為結果的產生時間里壓縮的數據能預先從ROM20中讀出。這樣就可能在DMA開始以前預先地準備要被譯碼的數據。近而,該第二地址產生電路246和預先從ROM20中讀出壓縮的數據的數據寄存器247可以配置在譯碼器電路23內部。這樣,當使用一DMA通道執行譯碼操作的期間該FIFO存儲器242滿時,地址產生電路246和寄存器247可以被使用和這樣為隨后DMA操作而從ROM20中讀出的壓縮的壓縮的數據能被寫入到寄存器247中。這樣,當當前DMA操作已經結束時,使用存儲在寄存器247中的數據執行為隨后DMA操作的譯碼操作。作為結果,這就可能縮短使用DMA通道的順序DMA操作之間的時間間隔,這樣,譯碼器電路23能夠執行隨后的DMA操作而對譯碼不要被額外的準備時間。
參看圖13,本發明第四個實施例的譯碼器將被描述。
如圖13所示,在第四個實施例中,所提供的第二個FIFO存儲器248代替了在第二實施例中所提供的數據寄存器247,在該實施例中,當執行由第一恢復操作伴隨的DMA操作時,由優先權低于最高一個的恢復操作伴隨的DMA操作的開始地址設置在第二地址產生電路246。
當由第恢復操作伴隨的DMA操作的執行期間第一個FIFO存儲器242滿時,第二地址產生電路246和第二FIFO存儲器248被使用以用來為隨后的DMA操作存儲從ROM20中讀出的壓縮的數據。當當前DMA操作完成時和隨后的DMA操作開始時,第二地址產生電路246被連續地使用和這樣從ROM20讀出的壓縮數據被寫入第二FIFO存儲器248。當第二FIFO存儲器248及第二地址產生電路246這樣被連續地使用以進行隨后的DMA操作,第一FIFO存儲器242被清零和第一和第二地址產生電路231和246的功能隨著第一和第二FIFO存儲器242和248的功能之間的切換而切換。
在這一例中,優先權在最高優先權隨后的優先權(第二最好優先權)所伴隨的DMA操作的一開始地址被設置在第一地址產生電路246中。譯碼器從第二FIFO存儲器248中讀出壓縮的數據和對該壓縮的數據進行譯碼。
如果隨后的DMA操作是一個不由恢復操作所伴隨的操作,譯碼器電路230并不提供譯碼的數據,這樣,譯碼操作停止直到由隨后恢復操作伴隨的DMA操作開始。
當隨后恢復操作伴隨的DMA操作開始時,譯碼操作重新開始,同時第二地址產生電路246被使用以產生地址,壓縮的數據被讀出和然后寫入到第二個FIFO存儲器248。當壓縮的數據在往其里邊寫時如果FIFO存儲器滿,第一地址產生電路然后被使用和這樣壓縮的數據從ROM20中讀出,因為隨后的DMA操作是存儲在第一FIFO存儲器242中以進行隨后的譯碼操作。
然后,當由當前恢復操作伴隨的DMA操作已經完成時,第一和第二地址產生電路231和246的功能隨著第一和第二FIFO存儲器242和248之間的功能切換而切換。
如果,在此時,由隨后恢復操作伴隨的DMA操作是由最后恢復操作所伴隨的該DMA操作,第二地址產生電路246和第二FIFO存儲器248并不使用。
這樣,在第四實施例中,第一地址產生電路246和第一FIFO存儲器242,和第二地址產生電路246和第二FIFO存儲器248是交替地使用。作為結果,這樣可以容易地控制數據的讀取和存儲操作。
事實上,在該寄存器和一個單獨的FIFD存儲器一塊使用的情況和使用兩個FIFO存儲器的情況加以比較,當第一個恢復操在一塊的DMA操作已經結束時,由第二地址產生電路提供的當前地址是一地址,該地址已是事先獲得的DMA操作和隨后恢復操作的開始地址。這樣事先獲得的地址應當被設置在第一地址產生電路內。然后,譯碼操作應以這樣的方式被執行,在該方式中,在寄存器存儲的數據首先被譯碼,在它被譯碼以后,存儲在FIFO存儲器中的數據被譯碼,這樣,對譯碼操作而言所要求的控制操作是復雜的。
然而,與此相對比,在第四個實施例中使用兩個FIFO存儲器的情況下,為了相同的目地僅需要在兩個地址產生電路和兩個FIFO存儲器之間折的切換。依此,控制方法可以簡化。
每一個上述的實施例均是一DMA操作的實施例。然而,本發明也應用這樣的實施例,該實施例使用了通常存儲器存放方法,在該實施例中CPU10以執行軟件程序的通常方式執行存取操作。參看圖14將要描述的第五個實施例是使用一通常存儲方法的實施例。
如圖14所示,在第五個實施例中,提供了一個開始地址寄存器250,在該開始地址寄存器中設置有要被恢復的壓縮的數據的開始地址。CPU10把在傳送操作中使用的開始地址寫入開始地址寄存器250。該開始地址寄存器250然后提供開始地址到地址產生電路231。CPU10對ROM進行存取,從中讀出壓縮的數據,使數據被譯碼和被傳送。數據傳送量由CPU通過軟件加以控制。作為結果,不提供檢測結束譯碼的裝置。然而,這也是可能的,類似于其它實施例,去監視當前的傳送量和通過預定的電路自動地結束譯碼操作。
參看圖15,在第五個實施例中在CPU10的控制下由譯碼電路23執行的數據讀出,譯碼和傳送操作將被描述,當CPU10企圖使壓縮的數據被譯碼和最終傳送到CPU10時,在S20,CPU10把壓縮數據一開始地址寫入到譯碼器電路23的一開始地址寄存器50。然而,在S21,CPU10命令譯碼器電路23開始譯碼。
作為結果,譯碼器電路23開始譯碼和首先設置存儲在開始地址寄存器250的開始地址到地址產生電路231。譯碼器電路23監視系統地址總線和確定是否CPU10對除ROM20以上的任何部分進行存取。在S22,CPU10對除ROM20以外的預定部分進行存取。
當確定如果CPU10對除ROM區域以外的預定部分進行存取時,譯碼器電路23使用由地址產生電路231提供的開始地址和從ROM20中讀取壓縮的數據。這樣讀出的壓縮數據然后寫入到FIFO存儲器242。在S23,譯碼器230從FIFO存儲器242讀取壓縮的數據,對其進行譯碼和輸出譯碼的數據到系統數據總線。在預定的時間過去以后,CPU10開始從系統數據總線讀取譯碼的數據,該預定的時間是譯碼器譯碼壓縮的數據和能夠提供譯碼的數據到系統數據總線所需的時間。在CPU10通過存取緩沖器開始從譯碼器230包括的緩沖存儲器讀出譯碼的數據之前,這不需要CPU10執行涉及數據譯碼和傳送的操作。
從ROM20讀出的壓縮數據使用的地址僅是那些從預先設定開始地址開始的地址、在譯碼操作開始以后,譯碼器電路23總是監視系統地址總線和確定是否在開始地址寄存器250中存儲的開始地址出現。僅當在開始地址寄存器250存儲的開始地址在系統地址總線上存在時,譯碼器電路23提供譯碼的數據。這樣如果甚至在譯碼操作期間CPU10企圖對ROM20進行存取時,CPU10可以向系統地址總線提供不同于存儲在開始地址寄存器250的開始地址。作為結果,譯碼器電路23停止提供譯碼的數據到系統數據總線和這樣系統數據總線能用來傳送直接從ROM20讀出的數據。
當CPU10已經結束從系統數據總線讀取預定量的譯碼的數據時,CPU10譯碼器電路23停止譯碼。然而,當使用該譯碼器電路23時,在上述譯碼操作時CPU10能直接存取ROM2。依此,這就可能,當它要求停止當前譯碼操作和然后開始隨后的譯碼操作,一新的開始地址可以設置在開始地址寄存器250中。作為結果,當然譯碼操作是自動地停止和使用這樣設置新地址的隨后的譯碼操作自動開始。這樣,沒有停止當前譯碼操作的特殊操作是需要被執行。
在上述的一些實施例中,壓縮的數據由CPU10從ROM20中讀出既不先于檢測DMA操作開始指令,也不先于為從中讀出譯碼的數據而對譯碼器23的緩沖存儲器進行存取。在預定的時間內在譯碼操作已經執行完后,不是執行DMA操作式是由CPU10執行譯碼器的緩沖存儲器的存取操作和緩沖存儲器中讀取數據,和譯碼的數據被提供。然而,這可能出現這種情況,這不可能提供使預先從ROM20中讀取壓縮的數據和對其進行譯碼的所需的時間,在這種情況下,將參考圖16詳細描述的第六實施例的譯碼器電路23將是非常有用的。
如圖16所示,在第六實施例中,數據開關電路249被附加提供給在圖6示出的第二實施例的配置,數據開關電路249從通過ROM數據總線從ROM20提供的兩個字節數據之間選取一個字節數據。
在第六個實施例中,初始化設置僅僅是設置DMAC11,存在ROM20的數據具有結構例如如圖18所示的結構,特別是,數據的第一和第三字節是非壓縮的數據,和第二,第四和所有字據的字節是壓縮的數據。該實施例的必要條件是,譯碼器電路23在每一個DMA存取周期讀取的數據量大于在每一個DMA周期從譯碼器電路23中讀出的數據量。例如,在DMA操作時,在每一個周期一字節的數據從譯碼器電路23傳送出,而在每一個周期中譯碼器電路23能從ROM2D中讀出1.5到2個字節的數據。在該實施例中,ROM20的ROM數據總線的總線寬度是兩個字節和系統數據總線的總線寬度是一個字節。
當CPU10在DMAC11中設置傳送初始地址,傳送目的地址和傳送量時,同樣的傳送量初始地址和傳送量分別被設置在對應各自DMA通常的傳送初始地址寄存器組234和傳送量寄存器組244。然后,CPU10命令OMAC11開始DMA操作和使DMA操作開始。
譯碼器電路23通過監視系統地址總線的結果檢測DMA操作的開始,譯碼器電路23然后把預先設定的諸傳送初始地址中的一個設定給地址產生電路231和在從ROM20來的具有如圖18所示結構的大量字節中讀取兩個字節數據(如圖17F所示的壓縮的數據1)。這些兩字節的數據是一個字節非壓縮的數據和一個字節壓縮的數據,這如圖18所示,這樣讀出的兩字節的數據中的第二字節數據被寫入FIFO存儲器242。這第二字節的數據是如圖18所示的壓縮的數據。譯碼器230從FIFO存儲242中讀出該字節的壓縮的數據和對其進行譯碼,第一字節數據,即非壓縮的數據通過數據開關電路249提供給系統數據總線。
在隨后的DMA周期,第三和第四字節的如圖18所示的數據從ROM20中讀出,該第三字節數據,即非壓縮字節數據和第二字節數據一樣通過數據開關電路249被提供給系統數據總線。第四和第五壓縮數據字節被寫入到FIFO存儲器242。在這時,譯碼器電路23已經準備了在隨后DMA周期要被提供的譯碼的數據。因此,在從第三個DMA周期開始的每一個DMA周期內,譯碼器230提供如圖17C所示的譯碼的數據。
這樣,在該第六實施例中,當提供系統數據總線上的數據開始時可以開始譯碼的操作。
作為結果,譯碼器電路23的控制是非常簡單的,事實上,在上述的情況下,在譯碼器230的緩沖存儲器的譯碼的數據被讀出之前,譯碼器電路讀出壓縮的數據。這樣,這就需要CPU對除ROM區域之外預定部分進行存取。在第六實施例中,這樣額外的操作并不需要被執行,近而,在CPU對ROM區域進行存取以讀取譯碼的數據之前并不需要讀取壓縮的數據。依此,在執行DMA操作以前這并不需要在譯碼器的電路內去寫要被當前使用的DMA通道。
然而,由壓縮數據表示的初始數據量取決于當前被使用的系統,在圖18所示壓縮數據的數據結構僅僅是一個實例。圖17A-17F所示的操作順序的變化對壓縮的數據的數據結構而言可以被認為是適當的。近而,第六實施例的概念也可以應用到使用數據傳送方法的譯碼器系統,在該方法中,CPU10對譯碼器230的緩沖存儲器進行存取而不使用DMA方法。
在上述的實施例中,譯碼器電路23是包括在如圖2所示的程序盒內。然而,這也可能使譯碼器電路23在如圖19所示的游戲機主體1內,在圖19所示的實施例中,和圖1所示相關現有技術的程序盒相同的程序盒包含有ROM20和含有后背電池22的RAM。DMAC11使程序數據和要被傳送的壓縮的數據從ROM20到譯碼器電路23。譯碼器電路23可以具有和上述實施例的配置相同的配置。譯碼器電路23可以通過模式和譯碼模式的兩種模式進行操作。在通過模式中輸入數據以同輸入數據模式相同的格式輸出。特別是,在通過模式中,譯碼器電路23對ROM進行存取,并由此讀出數據和以這樣讀出的數據格式相同的格式把數據提供給系統總線15,在譯碼模式中,輸入壓縮的數據被譯碼和然后實時輸出。特別是,在譯碼模式中,譯碼器電路23對ROM20進行存取,并且從中讀出壓縮的數據,對其進行譯碼和提供這樣譯碼的數據到系統總線15。按CPU10對ROM區存取的結果執行通過模式和譯碼模式之間的變化。特別是,按如上所示提供特定的數據到系統總線10。
這樣,當游戲機主體1包括依本發明的譯碼器電路23,程序盒2具有的配置和相關現有技術的配置相同。依此,這就有可能維持程序盒的低成本。
如上所述,依照本發明,當作為壓縮的數據的譯碼的結果而獲得的數據被成功的傳送,CPU10僅僅操作好象直接存取ROM20,因為對壓縮的數據的譯碼操作是由譯碼器電路單獨地執行的。這樣CPU可以完全不考慮傳送壓縮的數據到工作RAM的時間和對壓縮的數據進行譯碼所需的時間,這樣圖象顯示可以無延遲的平滑的執行。
因此,即使在相當多的時間被用來對壓縮的數據進行譯碼的情況,該時間仍可以不予考慮,這是因為操作是由譯碼器電路單獨地進行的。依此,盡管在這種情況,程序盒能具有在ROM20中減少了存儲容量的壓縮的數據。
近而,如果數據傳送量不預先地設置,在預定的量的數據已經被譯碼和傳送以后,這就需要使譯碼器電路23停止當前譯碼操作和這樣進入通過模式。然而,依照本發明,通過設置必要的數據傳送量,必要數據量的譯碼和傳送的完成是由譯碼器電路23自動地檢測的和譯碼器電路23自動地進入到通過模式。
此外,依照本發明,譯碼器電路23具有內部RAM232和RAM232的地址是位于ROM20的地址映象位置。依此,在譯碼模式中,CPU10通過一操作從RAM232中讀出處理程序,該操作和CPU10從ROM20讀取算是程序的操作相同。這樣,就不必需使用工作RAM去執行處理程序,這樣,操作程序可以簡單地維持。
此外,在相關的現有技術中,在譯碼器電路已經進入了譯碼模式,這就不可能直接對ROM進行存取和這就不可能去執行設置存儲在ROM20中的DMA設定軟件程序。依此,這就必需使用除ROM20以外的存儲器,該存儲器連到譯碼器電路,以執行存儲在另一個存儲器內的DMA設定軟件程序。然而,在本發明的第一實施例中,DMA設定程序被復制到在譯碼器電路內的內部RAM和指示內部RAM的一地址區域作為ROM區域的一部分被映象,作為結果,在此可以執行DMA設定程序。依此,這就沒有必要執行存在存儲器內的設定程序,該存儲器并不以系統的譯碼器電路相連接。近而,在本發明的另外一個實施例中,這也沒有必要執行存在存儲器中的DMA設定程序,該存儲器不連到系統的譯碼器電路。因此,僅僅通過執行DMA設定和指定一譯碼操作,可以容易地執行譯碼數據的DMA傳送。
此外,甚至當譯碼操作時,當不同于指定地址的另一地址被給出時,譯碼器電路23進入通過模式。使用這樣的操作,CPU10能獲得除了譯碼的數據之外的數據。依此,在恢復數據的DMA操作期間另一個具有較高優先權順序的DMA操作被要求,這就可能執行諸DMA操作,包括以混合的方式執行恢復數據的DMA操作和另一個通常的DMA操作,作為結果,這很容易地使用譯碼器電路23。
如上所述,在譯碼器電路已進入譯碼模以后,這就不可能對ROM20進行直接存取和這也不可能執行存在ROM20中的存儲器存取設定軟件程序。依此,這就必需使用除了ROM20之外的連接到譯碼器電路的一存儲器,以執行存在這另外一個存儲器內的存儲器傳送設定軟件程序。然而在本發明的第五和第六個實施例中,甚至在譯碼器電路已經進入譯碼模式以后仍然可以從連接到譯碼器電路的ROM20中恢復命令。這樣,可以執行存在ROM20中的存儲器存取設定程序,這是因為根據監視流過系統地址總線上的地址數據結果,譯碼模式和通過模式的變化可以在譯碼器電路23中的自動地執行,作為結果,CPU10可以控制通過和譯碼模式的改變和維持通過模必要的時間而能執行存在ROM20中的存儲器設定程序和這樣CPU10可以對ROM20進行存取。這樣,甚至當譯碼操作期間,也不限制由CPU10執行的ROM存取操作。(然而,如上所述,這就須要在每一個譯碼的數據傳送周期獲得相關的地址)。
這樣,使用硬件例如譯器電路的實時數據譯碼能被容易地完成。
此外,如果當前使用的系統是這樣一個系統,在該系統中,在譯碼的數據輸出被命令以前這里沒有預先從ROM20中讀出壓縮的數據的準備時間,合作例如圖16所示的第六實施例的配置的配置可以容易地執行譯碼操作。
在本發明并不局限于上述的實施例,在不脫離本發明的范圍的情況下可以做出各種變化和修改。
權利要求
1.一數據譯碼方法,包括以下步驟a)當對記錄介質(20)進行存取以讀取壓縮的數據時,對譯碼電路(23)進行初始化使其進入譯碼模式,所說的譯碼電路讀取和譯碼所說的壓縮的數據和提供壓縮的數據;和b)當所說的譯碼電路已經處理了預定量的壓縮的數據時,對所說的譯碼電路進行初始化并使其進入通過模式,所說的譯碼電路從所說的記錄介質讀取數據但不對從所說記錄介質讀出的所說數據進行操作,提供從所說記錄介質中讀出的所說數據。
2.一數據譯碼器電路包括一地址產生電路(231),用于產生地址作為對給定地址的增量或減量的結果;一譯碼器電路(230),根據所說譯碼器產生的地址從記錄介質(20)讀取壓縮的數據,所說的譯碼器對所說壓縮的數據進行譯碼以提供恢復的數據和輸出所說恢復的數據;一地址開關電路(239),它從由所說的地址產生電路提供的一地址和由外部地址總線提供的一地址中選出一個,和輸出所說選出的地址;一數據開關電路(240),用于從所說記錄介質提供的數據和從所說的譯碼器提供的數據中選出一個,和輸出所選出的數據到數據總線;所說的譯碼器電路(23)進入通過模式和譯碼模式之一,在所說的通過模式中輸入數據以輸入的形式被輸出,在所說的譯碼模式中輸入壓縮的數據被譯碼和輸出;和當所說記錄介質的地址是由外部提供時,所說記錄介質進入所說通過模式,從所說記錄介質讀出的數據被輸出到所說數據總線,和當所說記錄介質的地址是從所說地址產生電路所給出時,所說譯碼器電路進入所說譯碼模式,從所說記錄介質中讀出壓縮的數據,譯碼所說壓縮的數據和輸出所說譯碼的數據到所說的數據線。
3.權利要求2的數據譯碼器電路,其中,從所說譯碼器電路(23)要被提供的數據量是預先設定的,當所說譯碼器電路已經提供了所說數據量時所說譯碼器電路進入所說通過模式。
4.權利要求2的數據譯碼器電路,進而包括一內部存儲器(232);和一地址映象電路(233),用于任意地設定包括所說內部存儲器地址的地址映象;所說數據開關電路從所說內部存儲器、所說記錄介質和所說譯碼器中的一個選出數據。
5.權利要求2的數據譯碼器電路,其中,一壓縮數據的開始地址被預先設定在所說譯碼器電路(23)內;僅當地址和給定的地址相同時,所說的譯碼器電路輸出譯碼的數據和從所說記錄介質中讀取壓縮的數據;和當地址和所說開始地址不同時,所說譯碼器電路進入通過模式;
6.權利要求2的數據譯碼器電路;其中,所說記錄介質(20)存儲壓縮的數據和非壓縮的數據;所說壓縮數據的一開始地址和非壓縮數據的開始地址是預先設定的;和當給出預先設定的地址時,所說譯碼器電路開始讀取所說壓縮的數據和非壓縮的數據;在第一讀周期和最初多個讀周期的一個中,所說譯碼器電路輸出所說非壓縮的數據,順序地輸出因對壓縮數據譯碼而獲得的數據;
7.數據譯碼器電路,包括一地址產生電路(231),對給定地址進行增量或減量而產生地址;一譯碼器(230),根據由所說地址產生電路提供的地址從記錄介質讀取壓縮的數據,所說譯碼器對所說壓縮的數據進行譯碼和提供恢復的數據和輸出所說恢復的數據;一地址開關電路(239),它從由所說地址產生電路提供的地址和從外部地址總線提供的地址中選出一個和輸出所說選出的地址;一數據開關電路(240),它從由所說記錄介質提供的數據和由所說譯碼器提供的數據中選出一個,和輸出所說選出的數據到一數據總線;和一檢測電路(245),檢測通過所說地址總線的地址;當執行DMA操作時,所說譯碼器電路(23)被設置去執行恢復操作;所說的檢測電路檢測所說DMA操作的地址,由所說地址產生產電路用來作為地址而提供的地址,依該地址數據從所說的記錄介質中讀出,所說恢復的數據被輸出到所說的數據總線;在所說檢測電路沒有檢測所說DMA操作地址時,通過所說地址總線提供的地址被用來作為地址,依此地址,數據從所說介質中讀出,所說讀出的數據被輸出到所說數據總線作為從所說記錄介質的讀出。
8.權利要求7的數據譯碼器電路,其中,當檢測到除所說記錄介質以外的其它部分的給定地址時,響應進入所說譯碼模式的諸指令,所說的譯碼器電路從所說的記錄介質讀出壓縮的數據和開始恢復所說壓縮的數據以提供譯碼的數據;和當檢測到DMA操作開始指令時,所說譯碼器電路輸出所說譯碼的數據。
9.數據譯碼器電路包括一地址產生電路(231)對給定地址進行增量或減量而產生地址;一譯碼器電路(230),用于根據所說地址產生電路所提供的地址從一記錄介質中讀出壓縮的數據,所說的譯碼器對所說的壓縮的數據進行譯碼以提供作為譯碼數據的恢復數據和輸出所說的恢復的數據;一地址開關電路(239),它從由地址產生電路提供一地址和從外部地址總線提供一地址中選取一個和輸出這樣選取的地址;一數據開關電路(240),它從由所說的記錄介質提供的數據和由所說譯碼器提供的數據中選取一個和輸出所選取的數據;和一檢測電路(245),用于檢測在所說地址總線內所選取的地址;所說譯碼器電路(23)操作在通過模式和譯碼模式這兩個模式中的一個,在所說的通過模式中,輸入數據以輸入形式被輸出,在所說的譯碼模式中,輸入壓縮的數據被譯碼和所說被譯碼的數據被輸出;和響應在所說譯碼模式中操作的指令,根據檢測到的除所說記錄介質以外的其它預定部分的給定地址,所說的譯碼器電路從所說記錄介中讀出的壓縮的數據和恢復所說的壓縮的數據;一旦給定地址和預先設定地址的一致,所說譯碼器輸出所說譯碼的數據;和一旦給定地址和預先設定的地址的不一致,所說譯碼器電路操作在所說的通過模式。
10.一數據譯碼器電路,包括第一組寄存器(243),其中讀壓縮的數據的諸地址被設置;一控制寄存器(234),用于控制具有預先設定的優先權順序的大量譯碼操作的開始,所說的大量譯碼操作對應著所說大量寄存器的各自的一些;第二組寄存器(244),其中對應所說第一組大量寄存器的各自的一些,要被傳送的預定的數據量被設定;根據一給定地直一的增量或減量之一,所說的第一和第二地址產生電路(231,246)輸出地址;第一和第二存儲裝置(242,247;242,248)根據第一和第二地址產生電路輸出的地址存儲從記錄介質中讀出的壓縮數據;一譯碼器(230),用于根據由所說地址產生電路提供的地址從一記錄介質中讀出壓縮的數據;所說譯碼器電路對所說的壓縮的數據進行譯碼以提供恢復的數據作為譯碼的數據和輸出這樣恢復的數據;一地址開關電路(239),它從由所說第一和第二地址產生電路提供的一地址和由一外部地址總線提供的一地址中選出一個,和輸出所說選出的地址;一數據開關電路(240),用于從所說記錄介質提供的數據和由所說譯碼器提供的數據中選出一個,和輸出這樣選出的數據到一數據總線;所說的譯碼器電路(23)在通過模式和譯碼模式的兩個模式中的一個進行操作,在所說的通過模式中,輸入數據以輸入的形式被輸出,在所說譯碼的模式中,輸入壓縮的數據被譯碼和所說被譯碼的數據被輸出;當地址是由所說外部地址總線提供時,所說的譯碼器操作在通過模式;當一地址是由所說第一和第二地址產生電路之一所提供時,所說的譯碼器電路操作在所說的譯碼器模式中,為了響應所說大量譯碼操作的開始諸指令,根據由所說第一地址產生電路提供的地址、具有一優先權順序的一地址被設定在所說第一地址產生電路,所說的壓縮的數據從所說的記錄介質中讀出和存儲在所說的第一存儲裝置內,所說存儲的數據被所說的譯碼器讀出和加以譯碼。根據第一存儲裝置達到滿容量時,所說的第二地址產生電路從優先權順序在所說優先權順序后面的一地址中提供諸地址,根據所提供的地址,所說被壓縮的數據從所說的記錄介質中讀出和存儲在所說第二存儲裝置中,這樣,在第一指定的地址已經輸出預定傳送量的數據以后,在隨后恢復操作中,所說的譯碼器開始從所說第二存儲裝置以數據,所說第二地址產生電路連續地產生諸地址,壓縮的數據從所說記錄介質被讀出,所說讀出的數據被存儲在所說第二存儲裝置中,根據所說第二存儲裝置達到滿容量,所說第一地址產生電路從隨后的優先權順序的一地址中提供滿地址,根據所提供的地址,壓縮的數據從所說的記錄介質中讀出和存儲在所說的第一存儲裝置中。
11.權利要求11的數據譯碼器電路,其中,所說的第一和第二存儲裝置包括FIFO存儲器(242,248)。
12.權利要求10的數據譯碼器電路,其中,所說第一和第二存儲裝置包括FIFO存儲器(242)和一寄存器(247)。
全文摘要
一地址產生電路(231)產生一地址,根據地址產生電路產生的地址一譯碼器(230)從一記錄介質(20)讀出壓縮的數據并且對這樣讀出的數據進行譯碼,一地址開關電路(239)選取由地址產生電路提供的地址和從外部地址總線提供的地址中的一個,一數據開關電路(240)選取由記錄介質提供的數據和由譯碼器提供的數據中的一個,譯碼器電路(23)進行通過模式和譯碼模式中的一個,在通過模式中輸入數據原樣被輸出,在譯碼模式中,輸入壓縮的數據被譯碼和這樣被譯碼的數據被輸出。
文檔編號H03M7/30GK1131360SQ9511310
公開日1996年9月18日 申請日期1995年12月8日 優先權日1994年12月9日
發明者笠忠則 申請人:株式會社理光