亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

樂音產(chǎn)生設(shè)備的制作方法

文檔序號:6771204閱讀:307來源:國知局
專利名稱:樂音產(chǎn)生設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般地涉及一種基于波形存儲器方案的樂音產(chǎn)生設(shè)備(即,基于波形存儲器的樂音產(chǎn)生設(shè)備),更具體地涉及一種在外部存儲介質(zhì)(比如NAND型閃速存儲器)中預(yù)存儲波形數(shù)據(jù)并在將波形數(shù)據(jù)從外部存儲介質(zhì)經(jīng)由緩沖器讀出到波形存儲器的同時(shí)對波形數(shù)據(jù)進(jìn)行再現(xiàn)的樂音產(chǎn)生設(shè)備。
背景技術(shù)
迄今為止已知的是例如在日本專利第沈71747號和第4089687號(專利文獻(xiàn)1和 2)中公開的樂音產(chǎn)生設(shè)備,其將波形數(shù)據(jù)預(yù)存儲在硬盤(HD)中,并且在將波形數(shù)據(jù)從硬盤讀出到緩沖器并隨后從緩沖器讀出到波形存儲器中的同時(shí)對波形數(shù)據(jù)進(jìn)行再現(xiàn)。在這樣的樂音產(chǎn)生設(shè)備中,由于預(yù)存儲在硬盤中的波形數(shù)據(jù)是通過響應(yīng)于樂音產(chǎn)生指令經(jīng)由緩沖器讀出到波形存儲器而被再現(xiàn)的,所以樂音產(chǎn)生的實(shí)際開始會被不希望地延遲;因此采取了這樣的布置,在對樂音產(chǎn)生設(shè)備上電時(shí)將波形數(shù)據(jù)的前導(dǎo)部分預(yù)讀取到波形存儲器中。隨后,響應(yīng)于樂音產(chǎn)生指令,樂音產(chǎn)生設(shè)備立即開始從波形存儲器對波形數(shù)據(jù)的前導(dǎo)部分進(jìn)行再現(xiàn),并在前導(dǎo)部分的再現(xiàn)期間將波形數(shù)據(jù)的后續(xù)部分從硬盤經(jīng)由緩沖器讀出到波形存儲器中。在完成前導(dǎo)部分的再現(xiàn)時(shí),樂音產(chǎn)生設(shè)備對已經(jīng)讀出到波形存儲器的波形數(shù)據(jù)的后續(xù)部分進(jìn)行再現(xiàn),而在該再現(xiàn)期間,該設(shè)備讀出波形數(shù)據(jù)的下一后續(xù)部分。通過重復(fù)上述操作,樂音產(chǎn)生設(shè)備連續(xù)進(jìn)行再現(xiàn)。通過上述方式,樂音產(chǎn)生設(shè)備可以在接收到樂音產(chǎn)生指令時(shí)沒有延遲地開始產(chǎn)生樂音。利用上述基于波形存儲器的方案,每當(dāng)讀入緩沖器的一簇波形數(shù)據(jù)(樣本數(shù)據(jù)) 被從緩沖器讀出到波形存儲器中時(shí)(即,緩沖器空了),就向CPU發(fā)出一個(gè)傳輸請求中斷。 響應(yīng)于該傳輸請求中斷,CPU指定接下來將要讀出的存儲在硬盤中的另一簇波形數(shù)據(jù),并命令傳輸部件將這個(gè)簇從硬盤傳輸?shù)骄彌_器。因此,中斷CPU的操作是個(gè)重要的操作。另外,在這些傳統(tǒng)已知的基于波形存儲器的樂音產(chǎn)生器之中采用突發(fā)傳輸是在日本專利第3163984號(專利文獻(xiàn)3)中公開的技術(shù)。專利文獻(xiàn)3中公開的技術(shù)布置成將從波形存儲器中讀出的波形樣本暫時(shí)存儲在緩沖存儲器中,并隨后通過有選擇地從緩沖存儲器讀出必要的波形樣本來產(chǎn)生樂音。從波形存儲器到緩沖存儲器的這種波形樣本的讀出是通過一次發(fā)送多個(gè)樣本的突發(fā)傳輸來執(zhí)行的。這樣的突發(fā)傳輸可以實(shí)現(xiàn)訪問時(shí)間的減少。近年來,已經(jīng)開發(fā)出容量大、成本低的NAND型閃速存儲器,并且已經(jīng)做出各種嘗試來將NAND型閃速存儲器與硬盤一起用作各種設(shè)備中的大容量存儲裝置。盡管NAND型閃速存儲器需要較長時(shí)間以對頁(對應(yīng)于硬盤的一個(gè)簇)進(jìn)行即時(shí)訪問(instant access), 但它在即時(shí)訪問開始之后可以實(shí)現(xiàn)快速的數(shù)據(jù)傳輸速度。另外,基于糾錯(cuò)碼的糾錯(cuò)是至關(guān)重要的。然而,雖然期望使樂音產(chǎn)生設(shè)備中能夠同時(shí)產(chǎn)生或再現(xiàn)樂音的通道數(shù)量最大化, 但使用硬盤的樂音產(chǎn)生設(shè)備會出現(xiàn)對硬盤的訪問速度成為瓶頸的不便之處,從而限制了能夠同時(shí)再現(xiàn)的通道數(shù)量。一種可以想到的使得能夠同時(shí)再現(xiàn)樂音的通道數(shù)量最大化的方式是采用NAND型閃速存儲器替代硬盤。由于NAND型閃速存儲器可以實(shí)現(xiàn)比硬盤明顯更快的數(shù)據(jù)傳輸速度,因此可以例如以因子10或更小的因子來大大減小作為最小讀出單位的每個(gè)簇(頁)的尺寸。但是,在這種情況下,將傳輸請求中斷發(fā)出到CPU的頻率也將會以因子 10或更大的因子而顯著增大。即,在使用NAND型閃速存儲器作為用于存儲要在樂音產(chǎn)生器中使用的波形數(shù)據(jù)的存儲器的情況中,需要CPU對樂音產(chǎn)生器進(jìn)行控制的頻率將會增大, 從而出現(xiàn)了 CPU的負(fù)擔(dān)增大到相當(dāng)大的程度的問題。因此,期望的是,應(yīng)當(dāng)由在使用NAND型閃速存儲器的樂音產(chǎn)生器中所提供的樂音產(chǎn)生器專用硬件電路裝置來執(zhí)行迄今為止由CPU 在使用硬盤的樂音產(chǎn)生設(shè)備中按照處理程序所執(zhí)行的控制。此外,從NAND型閃速存儲器讀出的數(shù)據(jù)比從其它類型的存儲器讀出的數(shù)據(jù)更容易含有錯(cuò)誤,因此,當(dāng)在NAND型閃速存儲器中存儲數(shù)據(jù)時(shí),將數(shù)據(jù)連同按每頁附到該數(shù)據(jù)的糾錯(cuò)碼一并存儲是至關(guān)重要的。硬盤也會出現(xiàn)類似的數(shù)據(jù)錯(cuò)誤問題,但在傳統(tǒng)已知的使用硬盤的樂音產(chǎn)生設(shè)備中,將數(shù)據(jù)校正作為硬件裝置內(nèi)的處理器的固件處理而自動(dòng)執(zhí)行已經(jīng)成為慣例。結(jié)果,從將地址提供給介入的處理器的時(shí)刻到能夠得到數(shù)據(jù)的時(shí)刻會發(fā)生所不期望的時(shí)間延遲。因此,在使用NAND型閃速存儲器的樂音產(chǎn)生設(shè)備中,為了實(shí)現(xiàn)訪問速度的增大,所期望的是在NAND型閃速存儲器的LSI與樂音產(chǎn)生設(shè)備的LSI之間沒有處理器介入。但是,在這樣的情況下,NAND型閃速存儲器其本身不能執(zhí)行數(shù)據(jù)校正。目前可以在市場上得到在NAND型閃速存儲器中存儲波形數(shù)據(jù)的樂音產(chǎn)生器(樂音產(chǎn)生設(shè)備),并且這些樂音產(chǎn)生器每個(gè)都以如下方式來構(gòu)造在由樂音產(chǎn)生器產(chǎn)生樂音之前,CPU從NAND型閃速存儲器讀出所有必需的波形數(shù)據(jù),校正所讀出的波形數(shù)據(jù)中的錯(cuò)誤,并隨后將糾錯(cuò)后的波形數(shù)據(jù)存儲到由RAM實(shí)現(xiàn)的波形存儲器中。然而,在此情況下,由于RAM所實(shí)現(xiàn)的波形存儲器的尺寸的緣故,波形數(shù)據(jù)在尺寸上受到限制。

發(fā)明內(nèi)容
考慮到上述問題,本發(fā)明一個(gè)目的是提供一種改進(jìn)的樂音產(chǎn)生設(shè)備,其將波形數(shù)據(jù)預(yù)存儲在比如NAND型閃速存儲器之類的外部存儲介質(zhì)中,并在經(jīng)由緩沖器將波形數(shù)據(jù)讀出到波形存儲器的同時(shí)對波形數(shù)據(jù)進(jìn)行再現(xiàn),該樂音產(chǎn)生設(shè)備可以減小CPU的負(fù)擔(dān),并且可以通過使用樂音產(chǎn)生部件內(nèi)的硬件而不使用比如NAND型閃速存儲器之類的外部存儲介質(zhì)內(nèi)的CPU或處理器來對從該外部存儲介質(zhì)所讀出的數(shù)據(jù)執(zhí)行檢錯(cuò)和糾錯(cuò)。本發(fā)明的另一個(gè)目的是提供一種改進(jìn)的樂音產(chǎn)生設(shè)備,其將波形數(shù)據(jù)預(yù)存儲在比如NAND型閃速存儲器之類的外部存儲介質(zhì)中,并在經(jīng)由緩沖器將波形數(shù)據(jù)讀出到波形存儲器的同時(shí)對波形數(shù)據(jù)進(jìn)行再現(xiàn),該樂音產(chǎn)生設(shè)備可以顯著減小CPU的負(fù)擔(dān)。本發(fā)明的又一個(gè)目的是提供一種技術(shù),其可以通過使用樂音產(chǎn)生部件內(nèi)的硬件而不使用比如NAND型閃速存儲器之類的外部存儲介質(zhì)等內(nèi)的CPU或處理器等來對從該外部存儲介質(zhì)所讀出的數(shù)據(jù)執(zhí)行檢錯(cuò)和糾錯(cuò),并且可以用新的頁來替代發(fā)生錯(cuò)誤的出錯(cuò)頁。為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種改進(jìn)的樂音產(chǎn)生設(shè)備,其包括外部存儲器,其具有多個(gè)頁,每個(gè)頁由頁地址指定并且在其中存儲數(shù)據(jù)和針對該數(shù)據(jù)的糾錯(cuò)碼,所述外部存儲器將多個(gè)波形存儲為數(shù)據(jù),每個(gè)波形由一系列波形樣本構(gòu)成并且在所述外部存儲器中將每個(gè)波形分成多個(gè)波形樣本;樂音產(chǎn)生部件,其能夠同時(shí)產(chǎn)生多個(gè)通道的音樂樂音; 以及控制部件,其根據(jù)演奏信息控制所述樂音產(chǎn)生部件中的樂音產(chǎn)生。所述樂音產(chǎn)生部件包括波形存儲器,其具有針對多個(gè)波形提供的多個(gè)前導(dǎo)波形存儲區(qū)以及針對多個(gè)通道提供的多個(gè)緩沖區(qū),一個(gè)針對波形的前導(dǎo)波形存儲區(qū)存儲該波形的前導(dǎo)頁的波形樣本,而一個(gè)針對通道的緩沖區(qū)臨時(shí)存儲用于該通道的音樂樂音的樂音產(chǎn)生的波形樣本;控制寄存器部件,其具有針對多個(gè)通道提供的多個(gè)通道區(qū),每個(gè)針對通道的通道區(qū)存儲由所述控制部件設(shè)置的、用于控制該通道的音樂樂音的樂音產(chǎn)生的參數(shù),通道的參數(shù)包括用于控制音樂樂音的音高的速率參數(shù)、對在所述波形存儲器中的前導(dǎo)波形區(qū)域進(jìn)行指定的前導(dǎo)波形地址、對在所述外部存儲器中的波形的位置進(jìn)行指示的波形位置信息、以及用于控制音樂樂音的幅度包絡(luò)的幅度控制信息;讀出部件,其響應(yīng)于針對每個(gè)通道的激活指令,以對應(yīng)于該通道的速率參數(shù)的速率來首先從所述波形存儲器中的由該通道的前導(dǎo)波形地址所指定的前導(dǎo)波形存儲區(qū)讀出前導(dǎo)頁的波形樣本,并且隨后在所述波形存儲器中從對應(yīng)于該通道的緩沖區(qū)以相同的速率重復(fù)地讀出波形樣本,所述讀出部件能夠在所述波形存儲器中同時(shí)針對多個(gè)通道以分時(shí)多路復(fù)用的方式讀出波形樣本;下一地址產(chǎn)生部件,其針對每個(gè)通道基于該通道的波形位置信息來產(chǎn)生對下一個(gè)要從所述外部存儲器讀出的一頁波形樣本進(jìn)行指定的下一頁地址信息,并且將所產(chǎn)生的該通道的下一頁地址信息設(shè)置到下一頁地址存儲部件中;傳輸指令產(chǎn)生部件,其針對每個(gè)通道在每當(dāng)由所述讀出部件針對該通道所執(zhí)行的波形樣本讀出前進(jìn)了一頁時(shí)產(chǎn)生傳輸指令;傳輸隊(duì)列,其響應(yīng)于任何通道的激活指令和傳輸指令,將該通道的通道號入隊(duì)(enqueue)到其中;傳輸部件,其基于先進(jìn)先出方式從所述傳輸隊(duì)列取出通道的通道號,隨后以突發(fā)方式從所述外部存儲器讀出由設(shè)置在下一頁地址存儲部件中的該通道的下一頁地址信息所指定的頁的波形樣本,并且隨后將讀出的波形樣本寫入與該通道相對應(yīng)的緩沖區(qū)中;糾錯(cuò)部件,其使用通過所述傳輸部件從所述外部存儲器針對通道讀出的頁的糾錯(cuò)碼對該頁的波形樣本執(zhí)行檢錯(cuò),并且如果檢測到錯(cuò)誤并且該錯(cuò)誤是可校正的,則所述糾錯(cuò)部件執(zhí)行該波形樣本的錯(cuò)誤的校正;衰減部件,當(dāng)由所述糾錯(cuò)部件在針對通道的波形樣本上檢測到錯(cuò)誤并且該錯(cuò)誤是不可校正的時(shí),該衰減部件迅速衰減正在由所述樂音產(chǎn)生部件產(chǎn)生的該通道的音樂樂音;以及幅度控制部件,其針對每個(gè)通道按照該通道的幅度控制信息來控制由所述讀出部件所讀出的波形樣本的幅度包絡(luò),從而產(chǎn)生該通道的音樂樂音。當(dāng)所述控制部件接收到用于新開始一個(gè)音高的音樂樂音的演奏信息時(shí),所述控制部件將多個(gè)通道中的一個(gè)通道分配給要新產(chǎn)生的音樂樂音,將對應(yīng)于所述音高的速率參數(shù)、前導(dǎo)波形地址、波形位置信息和幅度控制信息設(shè)置到所述控制寄存器部件的針對該一個(gè)通道的通道區(qū)中,并且進(jìn)一步發(fā)出針對該通道的激活指令。根據(jù)本發(fā)明的樂音產(chǎn)生設(shè)備,響應(yīng)于從傳輸隊(duì)列給出的指令來自動(dòng)執(zhí)行傳輸部件的逐頁傳輸,而無需向控制部件(CPU)發(fā)出中斷。因此,可以減小控制部件的負(fù)擔(dān)或負(fù)載。 另外,因?yàn)樵诒景l(fā)明的樂音產(chǎn)生設(shè)備中自動(dòng)執(zhí)行根據(jù)糾錯(cuò)碼對波形數(shù)據(jù)進(jìn)行的讀出檢錯(cuò), 并且在檢出的錯(cuò)誤可校正的情況下自動(dòng)執(zhí)行糾錯(cuò),所以本發(fā)明的樂音產(chǎn)生設(shè)備即使在發(fā)生了這樣的錯(cuò)誤時(shí)也能夠繼續(xù)產(chǎn)生樂音。一旦發(fā)生不可校正的錯(cuò)誤,在所考慮的通道中正在產(chǎn)生的樂音信號被自動(dòng)地消音或靜音。通過這種方式,控制部件無需執(zhí)行關(guān)于外部存儲器的各種處理,從而可以顯著減小控制部件的負(fù)擔(dān),使得控制部件能夠以更好的響應(yīng)來執(zhí)行控制。在本發(fā)明的一個(gè)實(shí)施例中,當(dāng)通過糾錯(cuò)部件已經(jīng)檢測出任何錯(cuò)誤時(shí),衰減部件向控制部件發(fā)送錯(cuò)誤通知,該錯(cuò)誤通知包括對外部存儲器中的發(fā)生了該錯(cuò)誤的頁進(jìn)行識別的信息和指示該錯(cuò)誤是否能夠被適時(shí)地校正的信息。如果錯(cuò)誤通知指示檢測到的錯(cuò)誤是可校正的錯(cuò)誤,則控制部件將對發(fā)生了該錯(cuò)誤的頁進(jìn)行識別的信息記錄為替代等待頁。如果錯(cuò)誤通知指示檢測的錯(cuò)誤是不可校正的錯(cuò)誤,則控制部件發(fā)出指示不可能正常產(chǎn)生樂音的警告。因此,當(dāng)發(fā)生了可校正錯(cuò)誤時(shí),控制部件對發(fā)生了該錯(cuò)誤的頁(即出錯(cuò)頁)進(jìn)行記錄, 隨后在適當(dāng)?shù)暮罄m(xù)定時(shí)處替換該出錯(cuò)頁。在這種情況下,在錯(cuò)誤發(fā)生時(shí)沒有立即向用戶發(fā)送錯(cuò)誤通知,以便不打擾用戶執(zhí)行演奏。另外,因?yàn)樘鎿Q了出錯(cuò)頁,所以可以降低發(fā)生不可校正錯(cuò)誤的可能性或概率。另一方面,如果數(shù)據(jù)錯(cuò)誤是不可校正的,則立即向用戶發(fā)出警告以告知不可能正常產(chǎn)生樂音(即不能演奏)。另外,當(dāng)發(fā)生了傳輸錯(cuò)誤時(shí),控制部件可以立即警告不可能正常產(chǎn)生樂音。此外,控制部件可以將“總帶寬”降低預(yù)定的量(或數(shù)量)以減小發(fā)生錯(cuò)誤的可能性。 根據(jù)本發(fā)明的另一方面,提供了一種樂音產(chǎn)生設(shè)備,其包括外部存儲器,其具有在虛擬地址空間中連續(xù)布置的多個(gè)頁并且存儲多個(gè)波形,每個(gè)波形由一系列波形樣本構(gòu)成并且將每個(gè)波形分成多個(gè)頁的波形樣本,所述外部存儲器的多個(gè)頁中的每一個(gè)由虛擬頁地址所指定并且存儲一頁波形樣本;樂音產(chǎn)生部件,其能夠同時(shí)產(chǎn)生多個(gè)通道的音樂樂音;以及控制部件,其根據(jù)演奏信息控制所述樂音產(chǎn)生部件中的樂音產(chǎn)生。所述樂音產(chǎn)生部件包括波形存儲器,其具有針對多個(gè)波形提供的多個(gè)前導(dǎo)波形存儲區(qū)以及針對多個(gè)通道提供的多個(gè)緩沖區(qū),一個(gè)針對波形的前導(dǎo)波形存儲區(qū)存儲該波形的前導(dǎo)頁的波形樣本, 而一個(gè)針對通道的緩沖區(qū)臨時(shí)存儲用于該通道的音樂樂音的樂音產(chǎn)生的波形樣本;地址轉(zhuǎn)換表,其被提供用于將識別虛擬地址空間中的頁的虛擬頁地址轉(zhuǎn)換成真實(shí)頁地址;控制寄存器部件,其具有針對多個(gè)通道提供的多個(gè)通道區(qū),每個(gè)針對通道的通道區(qū)存儲由所述控制部件設(shè)置的、用于控制該通道的音樂樂音的樂音產(chǎn)生的參數(shù),通道的參數(shù)包括用于控制音樂樂音的音高的速率參數(shù)、對在所述波形存儲器中的前導(dǎo)波形區(qū)域進(jìn)行指定的前導(dǎo)波形地址、對在所述外部存儲器中的波形的位置進(jìn)行指示的波形位置信息、以及用于控制音樂樂音的幅度包絡(luò)的幅度控制信息;讀出部件,其響應(yīng)于針對每個(gè)通道的激活指令,以對應(yīng)于該通道的速率參數(shù)的速率來首先從所述波形存儲器中的由該通道的前導(dǎo)波形地址所指定的前導(dǎo)波形存儲區(qū)讀出前導(dǎo)頁的波形樣本,并且隨后在所述波形存儲器中從對應(yīng)于該通道的緩沖區(qū)以相同的速率重復(fù)地讀出波形樣本,所述讀出部件能夠在所述波形存儲器中同時(shí)針對多個(gè)通道以分時(shí)多路復(fù)用的方式讀出波形樣本;下一地址產(chǎn)生部件,其針對每個(gè)通道基于該通道的波形位置信息來產(chǎn)生對下一個(gè)要在所述外部存儲器的虛擬地址空間中讀出的一頁波形樣本進(jìn)行指定的虛擬頁地址,參考地址轉(zhuǎn)換表來將虛擬頁地址轉(zhuǎn)換成真實(shí)頁地址,并且隨后將轉(zhuǎn)換后的真實(shí)頁地址設(shè)置到下一頁地址存儲部件中;傳輸指令產(chǎn)生部件,其針對每個(gè)通道在每當(dāng)由所述讀出部件針對該通道所執(zhí)行的波形樣本讀出前進(jìn)了一頁時(shí)產(chǎn)生傳輸指令;傳輸隊(duì)列,其響應(yīng)于任何通道的激活指令和傳輸指令,將該通道的通道號入隊(duì)到其中;傳輸部件,其基于先進(jìn)先出方式從所述傳輸隊(duì)列取出通道的通道號,隨后以突發(fā)方式從所述外部存儲器讀出由設(shè)置在下一頁地址存儲部件中的該通道的下一頁地址信息所指定的頁的波形樣本,并且隨后將讀出的波形樣本寫入與該通道相對應(yīng)的緩沖區(qū)中;以及幅度控制部件,其針對每個(gè)通道按照該通道的幅度控制信息來控制由所述讀出部件所讀出的波形樣本的幅度包絡(luò),從而產(chǎn)生該通道的音樂樂音。當(dāng)所述控制部件接收到用于新開始一個(gè)音高的音樂樂音的演奏信息時(shí),所述控制部件將多個(gè)通道中的一個(gè)通道分配給要新產(chǎn)
11生的音樂樂音,將對應(yīng)于所述音高的速率參數(shù)、前導(dǎo)波形地址、波形位置信息和幅度控制信息設(shè)置到所述控制寄存器部件的針對該一個(gè)通道的通道區(qū)中,并且進(jìn)一步發(fā)出針對該通道的激活指令。根據(jù)本發(fā)明,下一地址設(shè)置部件參考地址轉(zhuǎn)換表來將下一個(gè)要被讀出的頁的虛擬頁地址轉(zhuǎn)換成真實(shí)頁地址,從而獲取下一頁地址,并且,響應(yīng)于傳輸隊(duì)列的指令,傳輸部件使用下一頁地址從外部存儲器讀出一頁,隨后將所讀出的頁傳輸?shù)讲ㄐ未鎯ζ鳌R虼耍?由硬件自動(dòng)執(zhí)行傳輸部件的逐頁傳輸,而無需對控制部件(CPU)發(fā)出中斷。因此,可以減小控制部件的負(fù)擔(dān)。作為本發(fā)明的一個(gè)實(shí)施例,地址轉(zhuǎn)換表可以原始地存儲在外部存儲器中, 并且,在樂音產(chǎn)生設(shè)備啟動(dòng)(上電)之時(shí),可以從外部存儲器讀出地址轉(zhuǎn)換表并且將其存儲到內(nèi)部的地址轉(zhuǎn)換表存儲部件中。作為本發(fā)明的一個(gè)實(shí)施例,該樂音產(chǎn)生設(shè)備還可以包括糾錯(cuò)部件,其使用通過所述傳輸部件從所述外部存儲器讀出的頁的糾錯(cuò)碼對該頁的波形樣本執(zhí)行檢錯(cuò),并且如果檢測到錯(cuò)誤并且該錯(cuò)誤是可校正的,則所述糾錯(cuò)部件執(zhí)行該波形樣本的錯(cuò)誤的校正;衰減部件,當(dāng)由所述糾錯(cuò)部件在針對通道的波形樣本上檢測到錯(cuò)誤并且該錯(cuò)誤是可校正的時(shí),該衰減部件向所述控制部件發(fā)送錯(cuò)誤通知,該錯(cuò)誤通知包括對已經(jīng)檢測到可校正錯(cuò)誤進(jìn)行指示并且對在所述外部存儲器中發(fā)生了該錯(cuò)誤的頁進(jìn)行識別的信息。在這種情況下,控制部件將對發(fā)生了可校正錯(cuò)誤的頁進(jìn)行識別的信息記錄為替代等待頁。如果存在當(dāng)前被記錄為替代等待頁的任何頁,所述控制部件通過自動(dòng)開始的后臺處理或者通過響應(yīng)于用戶指令而開始的處理來保證在所述外部存儲器中的替代頁,讀出被記錄為替代頁的頁的波形樣本, 如果在被記錄為替代頁的頁的波形樣本讀出中發(fā)生了錯(cuò)誤,則執(zhí)行糾錯(cuò)以得到適當(dāng)?shù)牟ㄐ螛颖?,并且隨后將適當(dāng)?shù)牟ㄐ螛颖敬鎯Φ教娲撝?,從而以替代頁代替發(fā)生了錯(cuò)誤的頁。當(dāng)替代等待頁的虛擬頁地址要被轉(zhuǎn)換成真實(shí)頁地址時(shí),所述控制部件以能夠獲取替代頁的真實(shí)頁地址的方式來修改所述地址轉(zhuǎn)換表。通過提供衰減部件和糾錯(cuò)部件,在本發(fā)明的樂音產(chǎn)生設(shè)備中自動(dòng)執(zhí)行對波形數(shù)據(jù)的讀出錯(cuò)誤檢測,并且在檢測出的錯(cuò)誤可校正的情況下自動(dòng)執(zhí)行糾錯(cuò),因此,本發(fā)明的樂音產(chǎn)生設(shè)備即使在發(fā)生了這樣的錯(cuò)誤時(shí)也能夠繼續(xù)產(chǎn)生樂音。控制部件記錄發(fā)生了錯(cuò)誤的頁(即出錯(cuò)頁),并隨后在適當(dāng)?shù)暮罄m(xù)定時(shí)處替換該出錯(cuò)頁。在這種情況下,可以容易地完成以替代頁來代替出錯(cuò)頁,這是因?yàn)榈刂忿D(zhuǎn)換表定義了虛擬頁和真實(shí)頁之間的對應(yīng)關(guān)系。根據(jù)本發(fā)明的又一方面,提供了一種樂音產(chǎn)生設(shè)備,其包括外部存儲器,其具有在虛擬地址空間中連續(xù)布置的多個(gè)頁并且存儲多個(gè)波形,每個(gè)波形由一系列波形樣本構(gòu)成并且將每個(gè)波形分成多個(gè)頁的波形樣本,所述外部存儲器的多個(gè)頁中的每一個(gè)由虛擬頁地址所指定并且存儲一頁波形樣本和下一個(gè)要讀出的下一頁的真實(shí)頁地址;樂音產(chǎn)生部件, 其能夠同時(shí)產(chǎn)生多個(gè)通道的音樂樂音;以及控制部件,其根據(jù)演奏信息控制所述樂音產(chǎn)生部件中的樂音產(chǎn)生。所述樂音產(chǎn)生部件包括波形存儲器,其具有針對多個(gè)波形提供的多個(gè)前導(dǎo)波形存儲區(qū)以及針對多個(gè)通道提供的多個(gè)緩沖區(qū),一個(gè)針對波形的前導(dǎo)波形存儲區(qū)存儲該波形的前導(dǎo)頁的波形樣本,而一個(gè)針對通道的緩沖區(qū)臨時(shí)存儲用于該通道的音樂樂音的樂音產(chǎn)生的波形樣本;控制寄存器部件,其具有針對多個(gè)通道提供的多個(gè)通道區(qū),每個(gè)針對通道的通道區(qū)存儲由所述控制部件設(shè)置的、用于控制該通道的音樂樂音的樂音產(chǎn)生的參數(shù),通道的參數(shù)包括用于控制音樂樂音的音高的速率參數(shù)、對在所述波形存儲器中的前導(dǎo)波形區(qū)域進(jìn)行指定的前導(dǎo)波形地址、以及用于控制音樂樂音的幅度包絡(luò)的幅度控制信息;讀出部件,其響應(yīng)于針對每個(gè)通道的激活指令,以對應(yīng)于該通道的速率參數(shù)的速率來首先從所述波形存儲器的由前導(dǎo)波形地址所指定的前導(dǎo)波形存儲區(qū)讀出前導(dǎo)頁的波形樣本,并且隨后從所述波形存儲器的對應(yīng)于該通道的緩沖區(qū)以相同的速率重復(fù)地讀出波形樣本;傳輸指令產(chǎn)生部件,其針對每個(gè)通道在每當(dāng)由所述讀出部件針對該通道所執(zhí)行的波形樣本讀出前進(jìn)了一頁時(shí)產(chǎn)生傳輸指令;傳輸隊(duì)列,其響應(yīng)于任何通道的激活指令和傳輸指令,將該通道的通道號入隊(duì)到其中;下一頁地址存儲部件,其針對每個(gè)通道在其中存儲下一個(gè)要從所述外部存儲器讀出的頁的真實(shí)頁地址;第一下一頁地址設(shè)置部件,其在每個(gè)通道中開始產(chǎn)生樂音之時(shí),將要被首先讀出的頁的真實(shí)頁地址寫入所述下一頁地址存儲部件中;傳輸部件,其基于先進(jìn)先出方式從所述傳輸隊(duì)列取出通道的通道號,隨后從所述外部存儲器讀出設(shè)置在所述下一頁地址存儲部件中的在該通道中下一個(gè)要被讀出的真實(shí)頁地址的頁的波形樣本,并且隨后將讀出的波形樣本寫入所述波形存儲器的與該通道號指示的通道相對應(yīng)的緩沖器中;第二下一頁地址設(shè)置部件,其針對每個(gè)通道并且在下一頁的波形樣本已經(jīng)被所述傳輸部件從所述外部存儲器讀出時(shí),將所讀出的頁中包括的下一頁的真實(shí)頁地址覆寫到所述下一頁地址存儲部件中;以及幅度控制部件,其針對每個(gè)通道按照幅度控制信息來控制由所述讀出部件所讀出的波形樣本的幅度包絡(luò),從而產(chǎn)生該通道的音樂樂音。當(dāng)所述控制部件接收到用于新開始一個(gè)音高的音樂樂音的演奏信息時(shí),所述控制部件將多個(gè)通道中的一個(gè)通道分配給要新產(chǎn)生的音樂樂音,將對應(yīng)于所述樂音音高的速率參數(shù)、前導(dǎo)波形地址和幅度控制信息設(shè)置到所述控制寄存器部件的針對該一個(gè)通道的通道區(qū)中,并且進(jìn)一步發(fā)出針對該通道的激活指令。根據(jù)本發(fā)明,外部存儲器具有在虛擬地址空間中連續(xù)布置的多個(gè)頁,并且每個(gè)頁存儲多個(gè)波形和真實(shí)頁地址的數(shù)據(jù),真實(shí)頁地址即指向下一個(gè)要讀出的頁(即下一頁)的指針。因此,通過跟隨該指針就可以獲取下一個(gè)要讀出的頁的真實(shí)頁地址。因此,響應(yīng)于傳輸隊(duì)列的指令,傳輸部件使用下一頁地址從外部存儲器中讀出一頁,隨后將所讀出的頁傳輸?shù)讲ㄐ未鎯ζ鳌R虼?,由硬件自?dòng)執(zhí)行傳輸部件的逐頁傳輸,而無需向控制部件(CPU)發(fā)出中斷,從而可以顯著減小控制部件的負(fù)擔(dān)。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,該樂音產(chǎn)生設(shè)備還包括糾錯(cuò)部件,其使用通過所述傳輸部件從所述外部存儲器針對通道讀出的頁的糾錯(cuò)碼對該頁的波形樣本執(zhí)行檢錯(cuò),并且如果檢測到錯(cuò)誤并且該錯(cuò)誤是可校正的,則所述糾錯(cuò)部件執(zhí)行該波形樣本的錯(cuò)誤的校正; 衰減部件,當(dāng)由所述糾錯(cuò)部件在針對通道的波形樣本上檢測到錯(cuò)誤并且該錯(cuò)誤是可校正的時(shí),該衰減部件向所述控制部件發(fā)送錯(cuò)誤通知,該錯(cuò)誤通知包括對已經(jīng)檢測到可校正錯(cuò)誤進(jìn)行指示并且對在所述外部存儲器中發(fā)生了該錯(cuò)誤的頁進(jìn)行識別的信息。在這種情況下, 控制部件將對發(fā)生了可校正錯(cuò)誤的頁進(jìn)行識別的信息記錄為替代等待頁。如果存在當(dāng)前被記錄為替代等待頁的任何頁,所述控制部件通過自動(dòng)開始的后臺處理或者通過響應(yīng)于用戶指令而開始的處理來保證在所述外部存儲器中的替代頁,讀出被記錄為替代頁的頁的波形樣本,如果在被記錄為替代頁的頁的波形樣本讀出中發(fā)生了錯(cuò)誤,則執(zhí)行糾錯(cuò)以得到適當(dāng)?shù)牟ㄐ螛颖?,并且隨后將適當(dāng)?shù)牟ㄐ螛颖敬鎯Φ教娲撝?,從而以替代頁代替發(fā)生了錯(cuò)誤的頁??刂撇考⑻娲却撝暗囊豁撝兴ǖ南乱豁摰恼鎸?shí)頁地址修改成替代等待頁的真實(shí)頁地址。通過提供衰減部件和糾錯(cuò)部件,在本發(fā)明的樂音產(chǎn)生設(shè)備中自動(dòng)執(zhí)行對波形樣本的讀出錯(cuò)誤檢測,并且在檢測出的錯(cuò)誤可校正的情況下自動(dòng)執(zhí)行糾錯(cuò),因此,本發(fā)明的樂音產(chǎn)生設(shè)備即使在發(fā)生了這樣的錯(cuò)誤時(shí)也能夠繼續(xù)產(chǎn)生樂音??刂撇考涗洶l(fā)生了錯(cuò)誤的頁,并隨后在適當(dāng)?shù)暮罄m(xù)定時(shí)處替換該出錯(cuò)頁。因?yàn)橄噜彽捻摫恢赶蛳乱豁摰闹羔樻溄悠饋?,所以可以容易地通過對該出錯(cuò)頁之前的頁中所包括的指針進(jìn)行覆寫完成以替代頁來代替出錯(cuò)頁。下面將描述本發(fā)明的實(shí)施例,但應(yīng)當(dāng)理解,本發(fā)明不限于所描述的實(shí)施例,可以在不脫離基本原理的情況下做出本發(fā)明的各種改型。因此,本發(fā)明的范圍僅由所附權(quán)利要求確定。


為了更好地理解本發(fā)明的目的和其它特征,下面將參照附圖更加詳細(xì)地描述優(yōu)選實(shí)施例,其中圖1是示出本發(fā)明的樂音信號產(chǎn)生設(shè)備(系統(tǒng))的一個(gè)實(shí)施例的示例一般布置的框圖;圖2A至圖2E是示出該實(shí)施例中采用的NAND型閃速存儲器的存儲分配圖的示圖;圖3A和圖:3B是示意性示出在該實(shí)施例中采用的波形存儲器的存儲分配圖的示圖;圖4是說明在該實(shí)施例中執(zhí)行的波形數(shù)據(jù)傳輸?shù)亩〞r(shí)的時(shí)序圖;圖5是示出在該實(shí)施例中采用的樂音產(chǎn)生器和傳輸控制部件的細(xì)節(jié)的框圖;圖6是示出跟在樂音產(chǎn)生開始之后的(針對一個(gè)通道的)各個(gè)地址隨時(shí)間的變化的示圖;圖7A和圖7B是在該實(shí)施例中執(zhí)行的主處理和音符打開(Note-On)事件處理的流程圖;圖8A和圖8B是在VP地址產(chǎn)生部件和在B — M傳輸部件中執(zhí)行的處理的流程圖; 以及圖9A和圖9B是在登記了 “替代等待頁”的情況下執(zhí)行的處理的流程圖。
具體實(shí)施例方式圖1是示出本發(fā)明的樂音信號產(chǎn)生設(shè)備(系統(tǒng))的一個(gè)實(shí)施例的示例一般布置的框圖。通過將預(yù)定的外圍設(shè)備(比如存儲器)連接到樂器或者樂音產(chǎn)生器LSI (大規(guī)模集成電路)100來構(gòu)造樂音產(chǎn)生設(shè)備。CPU 101是用于控制樂音產(chǎn)生設(shè)備整體操作的處理裝置。存儲器I/F(接口)102 是用于將NOR型閃速存儲器121連接到樂器LSI 100的接口。NOR型閃速存儲器121是已經(jīng)在其中存儲了各種數(shù)據(jù)(比如由CPU 101執(zhí)行的程序和音色數(shù)據(jù))的可重寫非易失性存儲器。隨機(jī)存取存儲器(RAM) 103是用作由CPU 101使用的各種工作區(qū)的易失性存儲器。 顯示器I/F 104、并行I/F 105和串行I/F 106是用于連接顯示裝置122、控制單元123和 MIDI I/O 1 的接口。顯示裝置122顯示各種信息,控制單元123包括在外部面板等上提供的諸如各種開關(guān)之類的控制器。MIDI I/O 1 是用于從/向各種MIDI設(shè)備輸入/輸出 MIDI信號的接口。存儲器接口(I/F) 107是用于對提供為外部存儲器的NAND型閃速存儲器125進(jìn)行訪問的接口。NAND型閃速存儲器125是其中預(yù)存儲了多種類型的波形數(shù)據(jù)等的可重寫非易失性存儲器,并且基于逐頁的方式來執(zhí)行從/向NAND型閃速存儲器125讀取/寫入的數(shù)據(jù)。S卩,NAND型閃速存儲器(外部存儲器)125具有多個(gè)頁并且在其中存儲針對每頁的數(shù)據(jù)。存儲在存儲器125中的針對每頁的數(shù)據(jù)包括多個(gè)波形,每個(gè)波形由一系列波形樣本構(gòu)成并且在存儲器125中將每個(gè)波形分成多個(gè)波形樣本。存儲器125中的每個(gè)頁由頁地址指定以便用于逐頁的讀取和寫入。每個(gè)頁包括2112個(gè)字節(jié)??梢酝ㄟ^突發(fā)傳輸以極高的速度來執(zhí)行這種逐頁的數(shù)據(jù)讀出。后面將參照圖2詳細(xì)描述NAND型閃速存儲器125的示例存儲分配圖。傳輸緩沖器109是用于將波形數(shù)據(jù)從NAND型閃速存儲器125傳輸?shù)讲ㄐ未鎯ζ?26的緩沖存儲器,并且通過能夠同時(shí)在其上讀取和寫入數(shù)據(jù)的雙端口半導(dǎo)體存儲器來實(shí)現(xiàn)傳輸緩沖器109。更具體地,傳輸緩沖器109具有靜態(tài)RAM(SRAM)的形式,其具有一頁的容量(即2112字節(jié))。波形存儲器1 具有同步動(dòng)態(tài)RAM(SDRAM)的形式,將參照圖 3詳細(xì)描述它的示例存儲分配圖。存儲器I/F 112是用于訪問波形存儲器126的接口。注意,傳輸緩沖器109和波形存儲器1 與閃速存儲器125相比能夠以極高的速度進(jìn)行隨機(jī)訪問(即,響應(yīng)于對各個(gè)地址的指定來讀取和寫入)。另外,本實(shí)施例可以使用突發(fā)方式以增大的速度來執(zhí)行對連續(xù)地址的訪問。F至B傳輸部件108執(zhí)行用于基于逐頁的方式將頁數(shù)據(jù)從NAND型閃速存儲器125 傳輸?shù)絺鬏斁彌_器109的操作。B至M傳輸緩沖器110執(zhí)行用于將一頁的波形數(shù)據(jù)以分成三部分的方式從傳輸緩沖器109傳輸?shù)讲ㄐ未鎯ζ?26的操作。糾錯(cuò)部件111對從閃速存儲器125讀出的數(shù)據(jù)執(zhí)行諸如檢錯(cuò)、校正之類的操作。F至B傳輸部件108、B至M傳輸緩沖器110和糾錯(cuò)部件111在傳輸控制部件113的控制下操作。后面將參照圖4等詳細(xì)描述傳輸操作的定時(shí)。傳輸控制部件113控制從閃速存儲器125至傳輸緩沖器109的傳輸以及從傳輸緩沖器109至波形存儲器126的傳輸。當(dāng)已經(jīng)發(fā)生了多個(gè)傳輸請求時(shí),傳輸控制部件113控制所請求的傳輸,使得基于先來先得的方式進(jìn)行逐頁傳輸,這是因?yàn)橐淮蝺H能傳輸一頁。注意,目前商業(yè)可用的NAND型閃速存儲器每個(gè)的數(shù)據(jù)寬度都限制為八位。因此,F(xiàn) 至B傳輸部件108連接在一起從而將從NAND型閃速存儲器125的兩個(gè)連續(xù)地址讀出的兩組8位數(shù)據(jù)轉(zhuǎn)換成16位數(shù)據(jù),并隨后將該16位數(shù)據(jù)寫入具有16位數(shù)據(jù)寬度的傳輸緩沖器 109中。另外,波形存儲器1 也具有16位的數(shù)據(jù)寬度,從而16位的數(shù)據(jù)存儲在波形存儲器126的每個(gè)地址中。因此,B至M傳輸緩沖器110不必執(zhí)行如F至B傳輸部件108所執(zhí)行的數(shù)據(jù)轉(zhuǎn)換。樂音產(chǎn)生器114具有在多個(gè)(本情況中為1 個(gè))樂音產(chǎn)生通道(下文也簡稱為 “通道”)的每一個(gè)中產(chǎn)生波形的功能。對于每個(gè)樂音產(chǎn)生通道,樂音產(chǎn)生器114產(chǎn)生讀取地址,從波形存儲器1 讀出波形數(shù)據(jù)(波形樣本數(shù)據(jù)),對讀出的波形數(shù)據(jù)賦予包絡(luò),并從而產(chǎn)生針對該通道的樂音信號。此外,樂音產(chǎn)生器114將這樣產(chǎn)生的多個(gè)樂音產(chǎn)生通道的樂音信號混合在一起,并對得到的混合樂音信號賦予音效(比如混響)。從樂音產(chǎn)生器114 輸出的樂音信號經(jīng)由數(shù)模轉(zhuǎn)換器(DAC周期)127被轉(zhuǎn)換成模擬音頻信號,并經(jīng)由聲音系統(tǒng) 1 而可聽地產(chǎn)生或發(fā)聲。參考數(shù)字115代表將各種部件相互連接的控制總線、數(shù)據(jù)總線和地址總線的組合;即,下文將把這些控制總線、數(shù)據(jù)總線和地址總線統(tǒng)稱為“總線115”。下面參照圖2描述NAND型閃速存儲器125的存儲分配圖。如所公知,NAND型閃速存儲器特征在于,盡管它對期望頁進(jìn)行即時(shí)訪問是費(fèi)時(shí)的(術(shù)語“即時(shí)訪問”在本文中用來指從對閃速存儲器給出一個(gè)讀取指令和讀取地址的時(shí)刻到開始數(shù)據(jù)讀出的時(shí)刻的時(shí)間段,
15或者在這樣一個(gè)時(shí)間段中執(zhí)行的操作),但它比掩膜ROM成本低并且能夠在數(shù)據(jù)讀出開始之后以高速實(shí)現(xiàn)數(shù)據(jù)傳輸(突發(fā)傳輸)。對NAND型閃速存儲器125的數(shù)據(jù)讀出和寫入是基于逐頁方式執(zhí)行的。對于構(gòu)成一頁數(shù)據(jù)的2112字節(jié)(即頁數(shù)據(jù)),將2048字節(jié)用作一個(gè)數(shù)據(jù)區(qū),將64 字節(jié)用作附加信息區(qū)。附加信息包括糾錯(cuò)碼。在將2048字節(jié)的數(shù)據(jù)寫入數(shù)據(jù)區(qū)中時(shí),基于寫入的數(shù)據(jù)通過預(yù)定算術(shù)運(yùn)算來產(chǎn)生糾錯(cuò)碼,并將糾錯(cuò)碼寫入附加信息區(qū)。在讀出頁數(shù)據(jù)時(shí),可以通過寫入附加信息區(qū)中的糾錯(cuò)碼來檢查或確定從數(shù)據(jù)區(qū)讀出的2048字節(jié)的數(shù)據(jù)是否存在任何錯(cuò)誤。如果讀出的2048字節(jié)的數(shù)據(jù)存在任何錯(cuò)誤(并且如果出錯(cuò)的位的數(shù)目小于預(yù)定的值),則可以執(zhí)行糾錯(cuò)處理。注意,可以使用基于任一個(gè)傳統(tǒng)已知的方案(比如漢明碼方案和BCH碼方案)的生成算術(shù)表達(dá)式來產(chǎn)生糾錯(cuò)碼。一般而言,對于每個(gè)生成算術(shù)表達(dá)式,預(yù)先確定用于計(jì)算錯(cuò)誤發(fā)生的狀態(tài)(即,該錯(cuò)誤包括多少位,以及該錯(cuò)誤是否可校正)的檢錯(cuò)算術(shù)表達(dá)式,和在該錯(cuò)誤可校正時(shí)用于計(jì)算要校正的位的位置的糾錯(cuò)算術(shù)表達(dá)式。對于每個(gè)算術(shù)表達(dá)式,預(yù)先確定在寫入數(shù)據(jù)區(qū)的α字節(jié)數(shù)據(jù)中能夠由β位的糾錯(cuò)碼校正直到多少位的錯(cuò)誤。圖2Α示意性示出在本實(shí)施例中用作外部存儲介質(zhì)的NAND型閃速存儲器125的總體存儲分配圖。閃速存儲器125包括可以通過真實(shí)頁地址訪問的多個(gè)真實(shí)頁,并在這些頁中存儲數(shù)據(jù)。在閃速存儲器125中預(yù)存儲了地址轉(zhuǎn)換表(A CON. TBL) 201和多串波形數(shù)據(jù) 202。這里假設(shè)地址轉(zhuǎn)換表201和波形數(shù)據(jù)202分開地預(yù)存儲在頁中。以將真實(shí)頁地址和虛擬頁地址按照一對一關(guān)系彼此對應(yīng)的方式,在閃速存儲器 125中設(shè)置波形數(shù)據(jù)202的虛擬地址空間和真實(shí)地址空間,如圖2B和2E所示。假設(shè)真實(shí)地址空間和虛擬地址空間的每一個(gè)都是可以通過每個(gè)具有20 ( 二十)位的頁地址來進(jìn)行訪問的范圍。圖2B示出在波形數(shù)據(jù)的虛擬地址空間中的數(shù)據(jù)格式。在用于波形數(shù)據(jù)202的存儲區(qū)中存儲了多個(gè)波形數(shù)據(jù)組Wavel、Wave2,...。在每個(gè)波形數(shù)據(jù)組中,如在關(guān)于波形數(shù)據(jù)組WaVe2的示圖中代表性地示出的那樣,與連續(xù)的虛擬頁地址(即在虛擬地址空間中連續(xù)布置的地址)相關(guān)聯(lián)地存儲了多個(gè)頁W2(0)+hf、W2⑴+Inf、...。在波形數(shù)據(jù)組x(x= 1, 2,...)的連續(xù)虛擬頁地址處存儲的各個(gè)頁的數(shù)據(jù)區(qū)或者在數(shù)據(jù)區(qū)中存儲的波形樣本數(shù)據(jù) (每個(gè)包括IOM個(gè)字)由ffx(0)、ffx(l)、...表示。因?yàn)槊宽摰臄?shù)據(jù)(即每一頁數(shù)據(jù))包括了數(shù)據(jù)區(qū)的波形樣本數(shù)據(jù)與附于其上的附加信息(64字節(jié))的組合,所以每頁的數(shù)據(jù)由該數(shù)據(jù)區(qū)的參考標(biāo)記“fe”和“+hf”的組合來表示。如上所述,附加信息包括糾錯(cuò)碼。每個(gè)波形數(shù)據(jù)組Wavex被分開地存儲在虛擬地址空間中連續(xù)布置的多個(gè)頁中。因此,例如當(dāng)要讀出波形數(shù)據(jù)組Wave2時(shí),僅需要給出前導(dǎo)頁“W2 (0) +inf ”的虛擬頁地址P,這是因?yàn)樵诟S前導(dǎo)頁W2 (0) +inf之后的各個(gè)其它頁W2 (1) +inf、W2 (2) +inf、...可以通過它們各自的虛擬頁地址Ρ+1、Ρ+2、...來被讀出。盡管圖2B示出的好象波形數(shù)據(jù)組WaVel、WaVe2、...之間沒有空白頁,但在波形數(shù)據(jù)組WaVel、WaVe2、...之間也可以存在空白頁。所必要的僅僅是對應(yīng)于一種類型的波形的一串波形數(shù)據(jù)(或波形數(shù)據(jù)集)應(yīng)連續(xù)地存儲在虛擬地址空間中。在圖2B中,“WA”表示控制寄存器之一,被提供用于在其中設(shè)置波形數(shù)據(jù)集的第二虛擬頁“ffx (1) +Inf"的虛擬頁地址,如下文詳細(xì)所述。前面已經(jīng)描述了可以采用虛擬頁地址來讀出每個(gè)頁。然而,實(shí)際上,必須將每個(gè)給出的虛擬頁地址轉(zhuǎn)換成真實(shí)頁地址,使得可以采用轉(zhuǎn)換后的真實(shí)頁地址從閃速存儲器125 讀出對應(yīng)頁。在本實(shí)施例的樂器LSI 100中,可以將兩種不同的模式(即模式1和模式2) 中的任一模式指定為用于在虛擬頁地址與真實(shí)頁地址之間轉(zhuǎn)換的方案。首先在下文中說明模式1。模式1采用“塊”的方案或概念,其中將16(十六)個(gè)連續(xù)的頁設(shè)置成一個(gè)塊,如圖2C所示。在模式1中,圖2A所示的用于波形數(shù)據(jù)集202的存儲區(qū)被分成多個(gè)塊,并基于逐塊的方式來使用,在每個(gè)塊中,以升序的真實(shí)頁地址來連續(xù)地存儲波形數(shù)據(jù)。例如,當(dāng)要將一個(gè)波形數(shù)據(jù)組WaVe2存儲到閃速存儲器125中時(shí),在閃速存儲器125中確保具有用于存儲該波形數(shù)據(jù)組WaVe2所必需的特定數(shù)量的塊,以使得前導(dǎo)頁W2 (0) +inf 一直到頁W2 (15) +inf被順次地存儲到第一塊中,并且頁W2 (16) +inf 一直到頁W2(31)+inf被順次地存儲到下一塊中,等等。假設(shè)不同的波形數(shù)據(jù)組(例如Wavel和 Wave2)被存儲到不同的塊中。注意,通過每16(十六)頁進(jìn)行“邊界對齊”來將這些塊彼此對準(zhǔn)。圖2D示出在模式1中采用的用于將虛擬頁地址轉(zhuǎn)換成真實(shí)頁地址的具體方案?,F(xiàn)在假設(shè)給出了 20位的虛擬頁地址(或頁號)221。虛擬頁地址221的高16位指示用于識別特定塊的虛擬塊號,而虛擬頁地址221的低4位是對塊中的16個(gè)頁之一進(jìn)行識別的數(shù)據(jù)。 由虛擬頁地址221的高16位所指示的虛擬塊號被轉(zhuǎn)換成真實(shí)頁地址223的高16位。虛擬頁地址221的低4位被直接設(shè)置為真實(shí)頁地址223的低4位。采用以前述方式獲得的真實(shí)頁地址223來訪問閃速存儲器125,從而從閃速存儲器125讀出虛擬頁地址221的頁數(shù)據(jù)。在系統(tǒng)啟動(dòng)之時(shí),從閃速存儲器125的區(qū)201讀出地址轉(zhuǎn)換表222并將其設(shè)置到波形存儲器126中以備后續(xù)使用。區(qū)201在圖2A中僅顯示為“A CON. TBL(地址轉(zhuǎn)換表)”; 然而,實(shí)際上,通過對區(qū)201的多個(gè)頁的數(shù)據(jù)區(qū)中所存儲的數(shù)據(jù)進(jìn)行組合,可以得到含義更豐富的地址轉(zhuǎn)換表。當(dāng)將波形數(shù)據(jù)存儲到閃速存儲器125中時(shí),所有虛擬塊號與真實(shí)塊號之間的對應(yīng)關(guān)系被預(yù)先登記在構(gòu)成區(qū)201的多個(gè)頁的數(shù)據(jù)區(qū)中。預(yù)先確定區(qū)201的多個(gè)頁的真實(shí)頁地址。注意,在圖2B中所示的附加信息hf中所包含的“指向下一頁的指針NP” 是用在模式2中而非模式1中所需的數(shù)據(jù)。在模式2中,當(dāng)要將波形數(shù)據(jù)組存儲到閃速存儲器125中時(shí),將三個(gè)字節(jié)的“指向下一頁的指針NP”設(shè)置到每個(gè)頁的附加信息hf中,如圖2B所示。在指向下一頁的指針NP 中預(yù)先設(shè)置了以波形數(shù)據(jù)的前進(jìn)次序(progression order)看時(shí)的下一頁(即,其中存儲了跟在所考慮的頁之后的波形樣本的頁)的真實(shí)頁地址。圖2E示出在模式2中在數(shù)據(jù)組 Wave2的真實(shí)頁地址處存儲的頁的示例數(shù)據(jù)格式。如果僅給出了前導(dǎo)虛擬頁W2 (0)+hf的真實(shí)頁地址,則可以通過參考該頁數(shù)據(jù)中包含的“指向下一頁的指針NP”來訪問下一個(gè)虛擬頁Ι2(1)+^ι ·。然后,可以按照上述方式來跟蹤其它頁,從而可以順次地讀出波形數(shù)據(jù)。對于模式1和模式2的每一個(gè),如下面將描述的那樣,在系統(tǒng)啟動(dòng)之時(shí)將所有波形數(shù)據(jù)組Wavel、Wave2,...的前導(dǎo)頁Wx(O)預(yù)設(shè)置到波形存儲器126中。因此,在模式2 中,可以以第二虛擬頁fe (1)+hf的虛擬頁地址WA為開始,使用每個(gè)指向下一頁的指針NP 來跟蹤頁。使用已經(jīng)被讀出到波形存儲器1 的地址轉(zhuǎn)換表來執(zhí)行從首次給出的虛擬頁地址WA到真實(shí)頁地址的轉(zhuǎn)換。反過來說,在地址轉(zhuǎn)換表中,必須彼此相互關(guān)聯(lián)地預(yù)存儲的僅僅是各個(gè)波形數(shù)據(jù)組Wavel、Wave2,...的第二虛擬頁地址和從第二虛擬頁地址轉(zhuǎn)換得到的真實(shí)頁地址。上文涉及圖2D描述的在模式1中的地址轉(zhuǎn)換表是這樣的表一旦給出一個(gè)16位虛擬塊號作為地址,則輸出存儲在那個(gè)地址中的16位的真實(shí)塊號。另一方面,在模式 2中,地址轉(zhuǎn)換表是這樣的表一旦給出了波形數(shù)據(jù)組Wavel、Wave2,...的20位的第二虛擬頁地址,則從存儲在地址轉(zhuǎn)換表中的多個(gè)第二虛擬頁地址之中查找與給出的第二虛擬頁地址相匹配的第二虛擬頁地址,并且,如果成功地找到了這樣匹配的第二虛擬頁地址,則輸出與該第二虛擬頁地址關(guān)聯(lián)的20位的第二真實(shí)頁地址。在圖2A的區(qū)201中,在將波形數(shù)據(jù)預(yù)存儲到閃速存儲器125中時(shí),預(yù)先登記所有第二虛擬頁地址與真實(shí)頁地址之間的對應(yīng)關(guān)系。對于模式1和模式2的每一個(gè),任一個(gè)波形都被存儲在連續(xù)布置于虛擬頁地址空間的多個(gè)頁(即,存儲在連續(xù)的虛擬頁地址)中,因此,不必對應(yīng)讀出的每個(gè)頁都進(jìn)行指定; 即,僅需在波形數(shù)據(jù)讀出開始時(shí)指定波形數(shù)據(jù)集的第一虛擬頁地址。假設(shè)將NAND型閃速存儲器125構(gòu)造成以8位寬度作為讀取或?qū)懭雴卧獊碜x取或?qū)懭霐?shù)據(jù)。圖3A和;3B示意性地示出波形存儲器126的存儲分配圖。波形存儲器1 包括地址轉(zhuǎn)換表區(qū)301、預(yù)加載區(qū)(前導(dǎo)波形存儲區(qū))302、緩沖器區(qū)303和下一頁地址(NPA)區(qū) 304。地址轉(zhuǎn)換表區(qū)301是用于在其中設(shè)置從圖2A的閃速存儲器125的預(yù)定區(qū)201所讀出的地址轉(zhuǎn)換表的區(qū)。預(yù)加載區(qū)302是用于將存儲于NAND型閃速存儲器125中的波形數(shù)據(jù)組 WaveUffave2,ffave3的各個(gè)前導(dǎo)頁的波形數(shù)據(jù)Wl (0)、W2 (0)、W3 (0)存儲到其中的區(qū)。各個(gè)前導(dǎo)頁的波形數(shù)據(jù)是在系統(tǒng)啟動(dòng)之時(shí)被存儲到預(yù)加載區(qū)302中的。緩沖器區(qū)303對于每個(gè)樂音產(chǎn)生通道都包括兩個(gè)緩沖區(qū)域;即,緩沖區(qū)域的總數(shù)目等于樂音產(chǎn)生通道的數(shù)目X2。 在緩沖器區(qū)303中的每個(gè)緩沖區(qū)域具有一頁等于IOM個(gè)字的容量或尺寸。以Bia和Bib 來表示對應(yīng)于樂音產(chǎn)生通道i(i = 1,2, ... ,128)的緩沖區(qū)域。將緩沖區(qū)域Bia和Bib連續(xù)地布置在波形存儲器126的地址空間之內(nèi)。這里,術(shù)語“頁”和“頁數(shù)據(jù)”在與閃速存儲器125和傳輸緩沖器109相關(guān)地使用時(shí),以指稱包括附加信息Inf在內(nèi)的2112字節(jié)的一個(gè)頁和在該頁中包含的數(shù)據(jù),但是在與波形存儲器126相關(guān)地使用時(shí),則指稱不包括附加信息Inf在內(nèi)的IOM個(gè)字的數(shù)據(jù)區(qū)和在該數(shù)據(jù)區(qū)中包含的波形數(shù)據(jù)。簡而言之,與閃速存儲器125和傳輸緩沖器109相關(guān)地使用的術(shù)語“頁”著重于考慮要被讀出或?qū)懭氲囊粋€(gè)數(shù)據(jù)單元,而當(dāng)數(shù)據(jù)從閃速存儲器125中被讀出,經(jīng)過糾錯(cuò)并隨后設(shè)置到波形存儲器126中時(shí),術(shù)語“頁”則被認(rèn)為是IOM個(gè)字的波形樣本數(shù)據(jù)。在系統(tǒng)啟動(dòng)之時(shí),由傳輸控制部件113主要通過初始設(shè)置處理來執(zhí)行將地址轉(zhuǎn)換表設(shè)置到波形存儲器126的地址轉(zhuǎn)換表區(qū)301中的設(shè)置以及將波形數(shù)據(jù)組的各個(gè)前導(dǎo)頁 Wx(O)設(shè)置到預(yù)加載區(qū)302中的設(shè)置。為了促進(jìn)對預(yù)加載區(qū)302的初始設(shè)置處理,可以將波形數(shù)據(jù)組的各個(gè)前導(dǎo)頁—起存儲在閃速存儲器125的預(yù)定的連續(xù)真實(shí)頁地址區(qū)域中。在圖3A中,參考字符“PA”表示用于對預(yù)加載區(qū)302中所包含的前導(dǎo)頁的讀取地址進(jìn)行設(shè)置的寄存器,該地址是在樂音產(chǎn)生器114從波形存儲器1 讀出波形樣本時(shí)首先要讀出的。圖3A示出了這樣一種情況其中已經(jīng)命令了對第二通道中的波形數(shù)據(jù)組WaVe3 進(jìn)行再現(xiàn),并且其中已經(jīng)由寄存器PA指定了波形存儲器1 中的前導(dǎo)頁的波形數(shù)據(jù)W3(0)。 箭頭311指示樂音產(chǎn)生器114讀出前導(dǎo)頁的波形樣本所采用的讀取地址前進(jìn)方向(音高計(jì)數(shù)器,pitch counter)。此外,“ΒΑ”表示這樣的寄存器其用于設(shè)置對當(dāng)完成從預(yù)加載區(qū)302讀出前導(dǎo)頁之后應(yīng)從緩沖器區(qū)303的哪一個(gè)緩沖器讀出波形樣本進(jìn)行指示的讀取地址。因?yàn)樵谒鍪纠幸呀?jīng)命令了在第二通道中的波形數(shù)據(jù)再現(xiàn),所以將由第二通道使用的緩沖器Bh或B2b的前導(dǎo)地址設(shè)置到寄存器BA中。箭頭312指示讀取地址的前進(jìn)方向(音高計(jì)數(shù)器)。在已經(jīng)如箭頭312所示讀取了緩沖器Bh和B2b的波形樣本之后,讀出操作返回到緩沖器Bh和B2b的前端,以便如箭頭313和314所示持續(xù)讀出波形樣本。為了執(zhí)行這樣的波形存儲器的讀取,通過交替使用緩沖器Bh和B2b來持續(xù)再現(xiàn)波形樣本,以使得當(dāng)正在從預(yù)加載區(qū)302讀出波形數(shù)據(jù)組WaVe3的同時(shí)將接下來要讀出的波形樣本數(shù)據(jù)存入緩沖器B2a,在當(dāng)正從緩沖器Bh讀出波形樣本數(shù)據(jù)的同時(shí)將波形樣本數(shù)據(jù)存入緩沖器B2b, 隨后當(dāng)正在從緩沖器B2b讀出波形樣本數(shù)據(jù)的同時(shí)將波形樣本數(shù)據(jù)存入緩沖器B2a,等等。 注意,作為替代,可以每通道提供三個(gè)緩沖器而不是兩個(gè)緩沖器。同樣,假設(shè)將波形存儲器 126構(gòu)造成以16位寬度作為讀取或?qū)懭雴卧獊碜x取和寫入。下一頁地址(NPA)區(qū)304是用于在其中存儲每個(gè)樂音產(chǎn)生通道的下一頁地址的區(qū)。圖:3B示出了 NPA區(qū)304的示例存儲分配圖。NPAi指示第i個(gè)通道的下一頁地址。更具體地,下一頁地址NPAi是要從閃速存儲器125讀出到波形存儲器126的閃速存儲器125 的頁的真實(shí)頁地址。下面將詳細(xì)描述下一頁地址NPAi的設(shè)置定時(shí)和設(shè)置數(shù)據(jù)。圖4是說明由傳輸部件108和110在傳輸控制部件113的控制下執(zhí)行的波形數(shù)據(jù)傳輸?shù)亩〞r(shí)的時(shí)序圖,其中箭頭t為時(shí)間流逝方向。多個(gè)垂直線401每一個(gè)指示采樣時(shí)鐘產(chǎn)生定時(shí),并且每對相鄰垂直線401之間的時(shí)間部分表示一個(gè)采樣周期(以下稱為“一個(gè)DAC 周期”)。在本實(shí)施例中,一個(gè)DAC周期是22. 67納秒。圖4中的“NAND型閃速存儲器至傳輸緩沖器”表示由F至B傳輸部件108執(zhí)行的用于將一頁波形樣本(即一頁數(shù)據(jù))和附加信息傳輸?shù)絺鬏斁彌_器109的處理的時(shí)序圖。圖4中的“傳輸緩沖器至波形存儲器”表示由B至M傳輸部件110執(zhí)行的用于將一頁波形樣本(即一頁數(shù)據(jù))從傳輸緩沖器109傳輸?shù)讲ㄐ未鎯ζ?26的緩沖區(qū)303(即對應(yīng)于所考慮的通道的緩沖器)的處理、以及由樂音產(chǎn)生器114執(zhí)行的用于從波形存儲器1 讀出波形樣本的處理的時(shí)序圖。圖4中的參考數(shù)字411表示對頁進(jìn)行即時(shí)訪問的時(shí)間部分(或周期),其從開始將真實(shí)頁地址供給NAND型閃速存儲器125的時(shí)刻直到在閃速存儲器125中完成了對由該真實(shí)頁地址所表示或指定的頁的輸出數(shù)據(jù)所進(jìn)行的準(zhǔn)備的時(shí)刻。在完成了對由411所表示的頁的即時(shí)訪問之后,讀出(突發(fā)傳輸)該頁的數(shù)據(jù)(2048字節(jié)的數(shù)據(jù)區(qū)和附加信息hf)。 在本實(shí)施例中,在四個(gè)DAC周期中可以將一頁的數(shù)據(jù)和附加信息Inf從NAND型閃速存儲器 125讀出并寫入到傳輸緩沖器109,如411至413所示。四個(gè)DAC周期的傳輸時(shí)間是基于 NAND型閃速存儲器125關(guān)于頁讀出(突發(fā)傳輸)的規(guī)格而確定的。圖4中的參考數(shù)字421表示當(dāng)樂音產(chǎn)生器114從波形存儲器1 讀出1 個(gè)通道的波形樣本以用于樂音產(chǎn)生時(shí)的波形樣本讀出時(shí)間部分(或周期)。422表示當(dāng)將傳輸緩沖器109的數(shù)據(jù)區(qū)的一頁波形樣本(即一頁數(shù)據(jù))傳輸?shù)讲ㄐ未鎯ζ?26的相應(yīng)通道緩沖器時(shí)的突發(fā)傳輸時(shí)間部分。該傳輸是從樂器LSI 100的內(nèi)部寄存器到DRAM的數(shù)據(jù)傳輸,并且以高速在突發(fā)模式下執(zhí)行。423表示當(dāng)更新波形存儲器126時(shí)的更新時(shí)間部分。更新時(shí)間部分423具有由波形存儲器126的規(guī)格所確定的時(shí)間長度。將更新的時(shí)間部分423排除在外之后的一個(gè)DAC周期的時(shí)間部分由波形樣本讀出時(shí)間部分421和突發(fā)傳輸時(shí)間部分422 分享。
在一個(gè)DAC周期中的波形樣本讀出時(shí)間部分421的時(shí)間長度由設(shè)計(jì)人員基于要求的規(guī)格來確定,所述要求的規(guī)格關(guān)于在樂音產(chǎn)生設(shè)備的實(shí)施例中要執(zhí)行多少通道的樂音產(chǎn)生并且關(guān)于在每個(gè)通道中要執(zhí)行多少個(gè)點(diǎn)之間的插值,并且所述時(shí)間長度還由設(shè)計(jì)人員基于這樣的規(guī)格來確定關(guān)于在一個(gè)DAC周期中在分時(shí)基礎(chǔ)上,樂音產(chǎn)生器114可以從波形存儲器126以何種時(shí)間分辨率以及每個(gè)通道多少個(gè)波形樣本進(jìn)行讀出。一個(gè)DAC周期中的突發(fā)傳輸時(shí)間部分422的時(shí)間長度由設(shè)計(jì)人員基于如下規(guī)格來確定關(guān)于在該時(shí)間部分中應(yīng)當(dāng)傳輸多少個(gè)波形樣本的所要求的規(guī)格,以及關(guān)于從傳輸緩沖器109至波形存儲器126的突發(fā)傳輸?shù)乃俣鹊囊?guī)格。傳輸緩沖器109是能夠在其上同時(shí)執(zhí)行讀取和寫入的存儲器,并且具有一頁波形樣本數(shù)據(jù)加上附加信息的容量或尺寸。因此,基本上,從閃速存儲器125讀出到傳輸緩沖器109的一頁(2048個(gè)字節(jié))波形樣本必須以和從閃速存儲器125讀出到傳輸緩沖器109的頁數(shù)量相同的DAC周期來從傳輸緩沖器109傳輸?shù)讲ㄐ未鎯ζ?26。因此, 在一個(gè)突發(fā)傳輸時(shí)間部分422中,必須傳輸給定數(shù)量的樣本,通過將一頁的樣本數(shù)量除以 DAC周期的數(shù)量來計(jì)算該給定數(shù)量(將小數(shù)點(diǎn)后的數(shù)截去而得到的數(shù))。在本實(shí)施例中,其中需要四個(gè)DAC周期來從閃速存儲器125的一頁數(shù)據(jù)區(qū)將一頁的數(shù)據(jù)(2048個(gè)字節(jié)=1024 個(gè)樣本)讀出到傳輸緩沖器109,將讀出到傳輸緩沖器109的一頁波形樣本傳輸?shù)讲ㄐ未鎯ζ? 也要在四個(gè)DAC周期中執(zhí)行。因此,在一個(gè)突發(fā)傳輸時(shí)間部分422中傳輸了 256個(gè)樣本,其為一頁數(shù)據(jù)的四分之一。這里假設(shè)在每個(gè)通道中執(zhí)行兩點(diǎn)插值,并且在總共1 個(gè)通道中執(zhí)行樂音產(chǎn)生, 以及波形樣本讀出時(shí)間部分421具有允許這種在1 個(gè)通道中產(chǎn)生樂音所必需的時(shí)間長度。而且,假設(shè)采用的硬件能夠在時(shí)間部分422(即,一個(gè)DAC周期將波形樣本讀出時(shí)間部分421和更新時(shí)間部分423從中排除之后的剩余部分)中突發(fā)傳輸256個(gè)樣本(字)。下面描述由糾錯(cuò)部件111執(zhí)行的糾錯(cuò)處理。如上所述,由F至B傳輸部件108在時(shí)間部分412和413中執(zhí)行從閃速存儲器125至傳輸緩沖器109的數(shù)據(jù)傳輸。在這樣的數(shù)據(jù)傳輸中,糾錯(cuò)部件111分析所傳輸?shù)臄?shù)據(jù)并執(zhí)行糾錯(cuò)處理。431表示執(zhí)行糾錯(cuò)算術(shù)處理時(shí)的時(shí)間部分。糾錯(cuò)處理通過對所傳輸?shù)臄?shù)據(jù)執(zhí)行預(yù)定算術(shù)運(yùn)算來計(jì)算糾錯(cuò)碼,將計(jì)算出的糾錯(cuò)碼與附加信息hf中記錄的糾錯(cuò)碼比較,從而檢測錯(cuò)誤,確定檢出的錯(cuò)誤是否可校正, 以及,如果該錯(cuò)誤是可校正的,則所述糾錯(cuò)處理對已經(jīng)檢出錯(cuò)誤的位的位置進(jìn)行識別。因?yàn)闄z錯(cuò)操作可以在緊隨時(shí)間部分412中的從閃速存儲器125至傳輸緩沖器1 的數(shù)據(jù)傳輸開始之后立即順序執(zhí)行,所以在緊隨時(shí)間部分412中的數(shù)據(jù)傳輸開始之后立即開始糾錯(cuò)算術(shù)處理431。隨著數(shù)據(jù)傳輸412的進(jìn)行,糾錯(cuò)部件111在糾錯(cuò)算術(shù)處理時(shí)間部分431中通過執(zhí)行檢錯(cuò)操作來計(jì)算糾錯(cuò)碼。在完成傳輸413時(shí),糾錯(cuò)部件111基于計(jì)算出的糾錯(cuò)碼和記錄在附加信息hf 中的糾錯(cuò)碼來執(zhí)行預(yù)定的錯(cuò)誤確定算術(shù)運(yùn)算,以確定是否存在錯(cuò)誤,如果存在任何錯(cuò)誤,則確定該錯(cuò)誤是否可校正,并且如果該錯(cuò)誤是可校正的,則最終確定要校正的錯(cuò)誤的位置。同時(shí),不管是否存在錯(cuò)誤,B至M傳輸部件110都在四個(gè)傳輸時(shí)間部分422 中將傳輸緩沖器109的IOM個(gè)樣本寫入到波形存儲器126中。如果已經(jīng)檢出錯(cuò)誤,并且基于糾錯(cuò)算術(shù)處理431的結(jié)果已經(jīng)獲取到要校正的錯(cuò)誤的位置,則糾錯(cuò)部件111在時(shí)間部分 425中對波形存儲器126的相應(yīng)波形數(shù)據(jù)執(zhí)行糾錯(cuò)。這里,糾錯(cuò)的對象在模式1的情況下是數(shù)據(jù)區(qū)的2048個(gè)字節(jié)的數(shù)據(jù),在模式2的情況下是數(shù)據(jù)區(qū)的2048個(gè)字節(jié)的數(shù)據(jù)和下一頁的指針NP。S卩,在模式2的情況下,假設(shè)每頁都存儲了針對該數(shù)據(jù)區(qū)和下一頁的指針NP的
20糾錯(cuò)碼。在比開始從NAND型閃速存儲器125到傳輸緩沖器109的傳輸晚兩個(gè)DAC周期的 DAC周期中,開始從傳輸緩沖器109至波形存儲器1 的突發(fā)傳輸。兩個(gè)DAC周期的延遲的原因是,使得能夠通過422所表示的突發(fā)傳輸按照每個(gè)時(shí)間部分256個(gè)樣本分成四個(gè)不同時(shí)間部分來傳輸由412所表示的2048個(gè)字節(jié)的一頁數(shù)據(jù)(等于IOM個(gè)樣本);S卩,以這樣的方式來使用兩個(gè)DAC周期的延遲對于四個(gè)突發(fā)傳輸422的每一個(gè)而言,在開始256個(gè)樣本數(shù)據(jù)的突發(fā)傳輸之前,能夠完整地將要進(jìn)行突發(fā)傳輸?shù)?56個(gè)樣本數(shù)據(jù)從NAND型閃速存儲器125傳輸?shù)絺鬏斁彌_器109。因此,傳輸緩沖器109不必一定是上述的雙端口型,而可以是使用兩個(gè)RAM的在讀操作和寫操作之間交替切換的類型。不過,在本實(shí)施例中,傳輸緩沖器109是由雙端口 RAM實(shí)現(xiàn)的,以便以安全可靠的方式來執(zhí)行讀操作和寫操作。圖5是示出樂音產(chǎn)生器114和傳輸控制部件113的細(xì)節(jié)的框圖,其中由普通箭頭表示地址的輸入和輸出,而由實(shí)心黑色三角形頭的箭頭表示除地址以外的其它數(shù)據(jù)的輸入和輸出。樂音產(chǎn)生器114包括模式寄存器501,用于在其中設(shè)置指定模式1或模式2的模式信息M,模式1或模式2定義了用于將虛擬頁地址轉(zhuǎn)換成真實(shí)頁地址的方案。由設(shè)計(jì)人員預(yù)先確定當(dāng)前樂器LSI 100應(yīng)當(dāng)操作在模式1和模式2的哪一個(gè)之下。另外,以對應(yīng)于該模式的數(shù)據(jù)格式在閃速存儲器125中預(yù)存儲地址轉(zhuǎn)換表和波形數(shù)據(jù)。在系統(tǒng)啟動(dòng)之時(shí)將模式信息設(shè)置到模式寄存器501中。樂音產(chǎn)生器114包括控制寄存器(樂音產(chǎn)生器寄存器)部件502,用于在其中存儲各個(gè)通道的參數(shù)和音符打開事件數(shù)據(jù)Ν0Ν。例如,在經(jīng)由MIDI I/O 1 接收到樂音產(chǎn)生指令時(shí),CPU 101分配樂音產(chǎn)生通道中的一個(gè)來產(chǎn)生樂音,根據(jù)演奏信息將參數(shù)設(shè)置到控制寄存器部件502中,并將音符打開事件數(shù)據(jù)寫入控制寄存器部件502中。因此,樂音產(chǎn)生器 114在所分配的樂音產(chǎn)生通道中開始產(chǎn)生樂音。樂音產(chǎn)生指令對應(yīng)于針對所分配的通道的激活指令。下面將描述控制寄存器部件502中包括的各種寄存器。(I)WA 這是用于在其中設(shè)置如前文參照圖2B所述的在NAND型閃速存儲器125 中的、針對所分配的通道要從NAND型閃速存儲器125讀出的波形數(shù)據(jù)組Wavex的第二頁 Wx(I)+Inf的虛擬頁地址的寄存器。(2)PA 這是用于在其中設(shè)置如前文參照圖3A所述的波形存儲器126的預(yù)加載區(qū) 302中的、針對所分配的通道要從預(yù)加載區(qū)302讀出的波形數(shù)據(jù)組Wavex的前導(dǎo)頁Wx(O)的地址的寄存器。在系統(tǒng)啟動(dòng)之時(shí),所有波形數(shù)據(jù)組Wavex的前導(dǎo)頁Wl(O)、W2(0)...都從閃速存儲器125中被存儲到波形存儲器126的預(yù)加載區(qū)302中。(3)BA 這是用于在其中設(shè)置如前文參照圖3A所述的波形存儲器126的緩沖區(qū) 303中的、與所分配的通道對應(yīng)的那對緩沖器Bna和&ib的地址的寄存器。(4)F:這是用于在其中設(shè)置F數(shù)字的寄存器。F數(shù)字是具有整數(shù)部分和小數(shù)部分的參數(shù),其用于對要讀出的波形數(shù)據(jù)的音高進(jìn)行改變(或控制),并且按照要產(chǎn)生的音樂樂音的音高來確定F數(shù)字的值。更具體地說,如果不需要改變波形數(shù)據(jù)的音高,則將F數(shù)字設(shè)置成值“1”,如果要升高波形數(shù)據(jù)的音高(升調(diào)),則將其設(shè)置為大于“1”的值,以及如果要降低波形數(shù)據(jù)的音高(降調(diào)),則將其設(shè)置為小于“1”的值。F數(shù)字是與要產(chǎn)生的樂音的音高相對應(yīng)的頻率數(shù)或速率信息。
(5) IL, HT、1DR、1DL、2DR、2DL和RR:這些是用于在其中設(shè)置意在控制音樂樂音幅度包絡(luò)的參數(shù)的寄存器。IL表示初始水平,HT表示保持時(shí)間。這些參數(shù)表示在從樂音產(chǎn)生開始起的保持時(shí)間HT期間,初始水平IL應(yīng)當(dāng)以作為幅度包絡(luò)波形的固定方式持續(xù)地輸出。 在NAND型閃速存儲器125中準(zhǔn)備的每個(gè)波形數(shù)據(jù)集是這樣的數(shù)據(jù)集如果按照原始采樣波形中存在的音量變化本身的樣子來使用它,那么對于其起音(attack)部分,該數(shù)據(jù)集可以實(shí)現(xiàn)更真實(shí)的樂音。因此,對于與起音部分對應(yīng)的保持時(shí)間HT的時(shí)間部分,初始水平IL被設(shè)置為包絡(luò)波形。IDR表示第一衰減率,IDL表示第一衰減水平。這些參數(shù)意在輸出一個(gè)在保持時(shí)間HT過去之后以第一衰減率IDR所表示的變化率達(dá)到第一衰減水平IDL的目標(biāo)值的包絡(luò)波形。類似地,2DR表示第二衰減率,2DL表示第二衰減水平。這些參數(shù)意在輸出一個(gè)在第一衰減之后以第二衰減率2DR所表示的變化率達(dá)到第二衰減水平2DL的目標(biāo)值的包絡(luò)波形。在第二衰減之后發(fā)生音符關(guān)閉(Note-Off)事件時(shí),音量水平以釋放率RR所表示的變化率逐漸地降低。一旦樂音音量水平低于預(yù)定水平,該樂音就靜下來或消失。(6) Ν0Ν:這是用于在其中設(shè)置命令開始產(chǎn)生音樂樂音的音符打開事件數(shù)據(jù)的寄存
ο一旦CPU 101將上述參數(shù)(包括音符打開事件)設(shè)置到對應(yīng)于給定通道的控制寄存器部件502中,樂音產(chǎn)生器114就在該通道中開始樂音產(chǎn)生處理。注意,在圖5的樂音產(chǎn)生器114的塊內(nèi)示出的各種參數(shù)是在特定時(shí)間點(diǎn)處被處理的通道的參數(shù)。即,這些參數(shù)的值隨著要處理的通道的改變而改變。下面描述在各個(gè)塊或部件(比如樂音產(chǎn)生器114)中對一個(gè)通道執(zhí)行的處理。每個(gè)DAC周期(采樣周期)在分時(shí)基礎(chǔ)上對所有1 個(gè)通道都執(zhí)行類似的處理,因此并行地產(chǎn)生多個(gè)樂音。即,以分時(shí)多路復(fù)用的方式同時(shí)執(zhí)行對波形存儲器126中的針對多個(gè)通道的波形樣本讀出。將音符打開事件NON和F數(shù)字輸入到音高計(jì)數(shù)器504。響應(yīng)于音符打開事件,音高計(jì)數(shù)器504被預(yù)設(shè)為零,并隨后在每個(gè)DAC周期(采樣周期)累計(jì)F數(shù)字。將所得到的累計(jì)值從音高計(jì)數(shù)器504輸出為整數(shù)部分和小數(shù)部分的組合。對累計(jì)值的排除了其低十位的整數(shù)部分(下文稱為“整數(shù)部分的高位”)進(jìn)行表示的數(shù)據(jù)被輸入VP (即虛擬頁)地址產(chǎn)生部件505和PB地址產(chǎn)生部件506。累計(jì)值的整數(shù)部分的低十位(下文稱為“整數(shù)部分的低十位”)被輸入到讀出部件507。累計(jì)值的小數(shù)部分被輸入到插值部件508。在預(yù)定的定時(shí)處,音高計(jì)數(shù)器504向VP地址部件505和傳輸隊(duì)列521輸出傳輸指令信號。下面將參照圖 6詳細(xì)描述上述整數(shù)部分和小數(shù)部分、傳輸指令定時(shí)等隨時(shí)間的變化。音高計(jì)數(shù)器504在音符關(guān)閉事件之后繼續(xù)F數(shù)字的累計(jì),但是一旦所考慮的通道的樂音產(chǎn)生處理終止,就不再繼續(xù)F數(shù)字的累計(jì)。PB地址產(chǎn)生部件506輸入了上面在與控制寄存器部件502有關(guān)的( 和( 中說明的地址PA (也稱為“PA地址”)和地址BA (也稱為“BA地址”),地址PA是在波形存儲器 126的預(yù)加載區(qū)302中的在緊隨樂音產(chǎn)生開始之后要立即讀出的前導(dǎo)頁的地址(見圖3A), 地址BA是在上文涉及圖3A而說明的在波形存儲器1 中存儲的與所考慮的通道對應(yīng)的緩沖器地址。隨后,PB地址產(chǎn)生部件506將PB地址輸出到讀出部件507。PB地址是用于對波形存儲器126的要被讀出的區(qū)的頭部進(jìn)行指定的高位地址;然而,實(shí)際上,因?yàn)镻B地址僅僅是高位地址部分,所以將通過對PB地址的較低端設(shè)置十個(gè)位的0(零)而得到的地址作為用于對波形存儲器126的要被讀出的區(qū)的頭部進(jìn)行指定的絕對地址。更具體地,PB地址產(chǎn)生部件506輸出PA地址作為緊隨樂音產(chǎn)生開始之后的PB地址;輸出BA地址作為在完成了對由PA地址所指定的波形存儲器126的預(yù)加載區(qū)302的前導(dǎo)頁的波形樣本數(shù)據(jù)所進(jìn)行的讀取之時(shí)的PB地址;以及輸出BA+1作為在完成了對波形存儲器1 的緩沖區(qū)303的、對應(yīng)于所考慮的通道并且由BA地址所指定的那個(gè)緩沖器Bia( “i”是通道號)的波形樣本數(shù)據(jù)所進(jìn)行的讀取之時(shí)的PB地址(BA+1表示緩沖器Bib,這是因?yàn)锽A地址是如上所述排除了其低十位的高位地址部分)。另外,在完成了對波形存儲器126的緩沖區(qū)303的、對應(yīng)于所考慮的通道并且由BA+1地址所指定的的緩沖器Bib的波形樣本數(shù)據(jù)所進(jìn)行的讀取之時(shí),PB 地址產(chǎn)生部件506再次輸出BA地址作為PB地址,并且此后交替地輸出BA地址和BA+1地址作為PB地址,以使得交替地讀取緩沖器Bia和緩沖器Bib。通過將從音高計(jì)數(shù)器504輸出的整數(shù)部分的低十位加到這樣的PB地址的較低端,產(chǎn)生了讀取地址(即絕對地址)。讀出部件507使用如此產(chǎn)生的讀取地址經(jīng)由存儲器I/F 112來從波形存儲器1 讀出所考慮的通道的波形樣本數(shù)據(jù)。這里假設(shè)一次讀出兩個(gè)波形樣本,即由讀取地址指定的波形樣本和接下來的波形樣本。注意,波形存儲器126具有長度為一個(gè)字的單位數(shù)據(jù),并且在波形存儲器126的每個(gè)地址處存儲波形數(shù)據(jù)的一個(gè)樣本。在每個(gè)DAC周期,插值部件508按照從音高計(jì)數(shù)器504輸出的小數(shù)部分地址在讀出的兩個(gè)樣本之間執(zhí)行兩點(diǎn)插值,從而計(jì)算一個(gè)插值樣本。對于已經(jīng)終止了樂音產(chǎn)生處理的每個(gè)通道,輸出插值樣本“0”。幅度包絡(luò)產(chǎn)生器(EG) 503基于所考慮的通道的包絡(luò)波形產(chǎn)生參數(shù)來產(chǎn)生幅度包絡(luò)(AE)波形,并將如此產(chǎn)生的幅度包絡(luò)(AE)波形輸出到音量控制部件509。在每個(gè)DAC周期,音量控制部件509基于AE波形的值來控制插值樣本的幅度,并輸出幅度受控的樣本作為所考慮的通道的樂音樣本。在每個(gè)DAC周期,累計(jì)部件510累計(jì)各個(gè)通道的樂音樣本以輸出所有通道的混合的樂音樣本。注意,可以將樂音樣本賦予音效(比如混響)之后再輸出ο從音高計(jì)數(shù)器504輸出的整數(shù)部分的高位被輸入VP (虛擬頁)地址產(chǎn)生部件505 和PB地址產(chǎn)生部件506。對VP地址產(chǎn)生部件505輸入的是在NAND型閃速存儲器125中的、正從NAND型閃速存儲器125讀出的針對所考慮的通道的波形數(shù)據(jù)的第二虛擬頁地址 WA(見圖2B)。VP地址產(chǎn)生部件505基于輸入數(shù)據(jù)產(chǎn)生VP地址。VP地址是對下一個(gè)將要從NAND型閃速存儲器125讀出的針對所考慮的通道的波形數(shù)據(jù)的頁進(jìn)行指定的虛擬頁地址。因?yàn)樵跇芬舢a(chǎn)生器114緊隨音符打開事件之后正從波形存儲器126的預(yù)加載區(qū)302 的、由PA地址所指定的頁中讀出波形樣本的同時(shí)而從閃速存儲器125被讀出的頁是閃速存儲器125的由虛擬頁地址WA所指定的頁,所以在該時(shí)間點(diǎn)的VP地址是虛擬頁地址WA。另外,如上文關(guān)于圖2所說明的,因?yàn)椴ㄐ螖?shù)據(jù)被存儲在虛擬地址空間中連續(xù)布置的頁中,所以下面將參照圖6詳細(xì)描述此后VP地址如WA+1、WA+2、WA+3...的變化。此外,在模式1的情況下,每當(dāng)輸入傳輸指令,VP地址產(chǎn)生部件505就經(jīng)由存儲器 I/F 112訪問波形存儲器126的地址轉(zhuǎn)換表區(qū)301,以得到對應(yīng)于當(dāng)前VP地址的真實(shí)頁地址,并隨后將如此得到的真實(shí)頁地址寫入在波形存儲器126中針對所考慮的通道而提供的下一頁地址區(qū)域NPAi中。因此,在模式1中,VP地址產(chǎn)生部件505起到“下一頁地址產(chǎn)生部件”的作用。在模式2的情況下,VP地址產(chǎn)生部件505響應(yīng)于第一次給出的VP地址(其
23值等于所存儲的與第一次給出的傳輸指令相對應(yīng)的控制寄存器WA的值),如在模式1中一樣訪問地址轉(zhuǎn)換表區(qū)301,以得到對應(yīng)于該VP地址的真實(shí)頁地址,隨后將如此得到的真實(shí)頁地址寫入在波形存儲器1 中針對所考慮的通道而提供的下一頁地址區(qū)域NPAi中。在模式2中,在VP地址此后如WA+1、WA+2、WA+3...而改變的情況中,對該通道設(shè)置下一頁地址區(qū)域NPAi是由B至M傳輸緩沖器110執(zhí)行的,而不是由VP地址產(chǎn)生部件505執(zhí)行的。因此,在模式2中(除了第一次激活的模式2以外),B至M傳輸緩沖器110起到“下一頁地址產(chǎn)生部件”的作用。下面將參照圖6等詳細(xì)描述波形存儲器126的NPA區(qū)域中所設(shè)置的地址變化。在該情況下,音高計(jì)數(shù)器504起到傳輸指令產(chǎn)生部件的作用。傳輸隊(duì)列521是先進(jìn)先出隊(duì)列。一旦從音高計(jì)數(shù)器504輸出傳輸指令,傳輸隊(duì)列 521就獲取從VP地址產(chǎn)生部件505輸出的通道號,并將所獲取的通道號登記在隊(duì)列中。艮口, 響應(yīng)于任何通道的激活指令和傳輸指令,傳輸對列521將該通道的通道號入隊(duì)到其中。下面將參照圖6詳細(xì)描述排隊(duì)的定時(shí)。簡單地說,如此地登記在傳輸隊(duì)列521中的通道號表明,對于所登記的通道號的該通道,在從波形存儲器126讀出并再現(xiàn)的頁數(shù)據(jù)的讀出完成之前的時(shí)刻,在波形存儲器126中針對該通道而提供的區(qū)域NPAi中所設(shè)置的真實(shí)頁地址的頁數(shù)據(jù)必定已經(jīng)從NAND型閃速存儲器125經(jīng)由傳輸緩沖器109被傳輸?shù)搅瞬ㄐ未鎯ζ? 中。如上文關(guān)于圖4所說明的通過F至B傳輸部件108的傳輸和通過B至M傳輸部件110 的傳輸是響應(yīng)于從傳輸隊(duì)列521順序輸出的通道號來執(zhí)行的;即,每個(gè)通道號都起到用于這些傳輸?shù)挠|發(fā)器的作用。即,傳輸部件(108,110)基于先進(jìn)先出方式從傳輸隊(duì)列521取出通道的通道號。在傳輸隊(duì)列521中登記了多個(gè)通道號的情況下,所登記的通道號基于先進(jìn)先出(即按照它們被登記在傳輸隊(duì)列521中相同的次序)方式順序地從傳輸隊(duì)列521輸出。響應(yīng)于來自傳輸隊(duì)列521的輸出,通過F至B傳輸部件108的傳輸和通過B至M傳輸部件110的傳輸每個(gè)都相應(yīng)于輸出的通道號來執(zhí)行傳輸。當(dāng)沒有執(zhí)行從NAND型閃速存儲器125到傳輸緩沖器109的頁數(shù)據(jù)傳輸時(shí),F(xiàn)至B 傳輸指令部件522從傳輸隊(duì)列521獲取通道號i,并將所獲得的通道號i發(fā)送到F至B傳輸部件108,并且命令F至B傳輸部件108將NAND型閃速存儲器125的下一個(gè)要讀出的頁數(shù)據(jù)傳輸?shù)絺鬏斁彌_器109。響應(yīng)于來自F至B傳輸指令部件522的這樣的傳輸指令,F(xiàn)至B 傳輸部件108經(jīng)由存儲器I/F 112讀出波形存儲器126中的該通道號的下一頁地址NPAi, 并將指定了下一頁地址NPAi的讀出指令輸出到閃速存儲器125。響應(yīng)于讀出指令。從閃速存儲器125突發(fā)傳輸一頁數(shù)據(jù)(2112字節(jié)),從而F至B傳輸部件108將所傳輸?shù)臄?shù)據(jù)寫入傳輸緩沖器109中。在該情況中,如上文對圖4的時(shí)序圖“NAND型閃速存儲器至傳輸緩沖器”(參考數(shù)字411至41 的說明那樣來執(zhí)行一頁數(shù)據(jù)傳輸。在F至B傳輸指令部件522將傳輸指令輸出到F至B傳輸部件108時(shí),該部件還將傳輸指令和通道號輸出到B至M傳輸指令部件523。響應(yīng)于這樣的傳輸指令,B至M傳輸指令部件523向B至M傳輸部件110輸出通道號和傳輸指令,并且控制B至M傳輸部件110 將傳輸緩沖109的頁數(shù)據(jù)(數(shù)據(jù)區(qū)的2048字節(jié))突發(fā)傳輸?shù)讲ㄐ未鎯ζ?26的與所考慮的通道相對應(yīng)的緩沖器。在接收到來自B至M傳輸指令部件523的通道號和傳輸指令時(shí), 在跟隨在由樂音產(chǎn)生器114對波形存儲器1 執(zhí)行的訪問周期(圖4中的421)之后的、比該傳輸指令的定時(shí)晚兩個(gè)DAC周期的一個(gè)DAC周期中,B至M傳輸部件110向傳輸部件109 輸出一個(gè)對頁數(shù)據(jù)的地址進(jìn)行指定的讀出指令。因此,從傳輸部件109突發(fā)傳輸該頁數(shù)據(jù)的第一個(gè)256字,從而B至M傳輸部件110將突發(fā)傳輸?shù)臄?shù)據(jù)寫入波形存儲器126中的與所考慮的通道對應(yīng)的緩沖區(qū)(如圖4的422所示)中。此外,在B至M傳輸部件110的控制下并且利用隨后三個(gè)DAC周期,隨后的256字X3塊的數(shù)據(jù)也被突發(fā)傳輸并寫入在波形存儲器126中提供的對應(yīng)于所考慮的通道的緩沖區(qū)中。通過上述方式,如對圖4的時(shí)序圖 “傳輸緩沖器至波形存儲器”(參考數(shù)字422所示)的說明那樣來執(zhí)行從傳輸部件109至波形存儲器126的突發(fā)傳輸。在模式2中,B至M傳輸部件110將正突發(fā)傳輸?shù)臄?shù)據(jù)中所包括的“指向下一頁的指針NP”寫入波形存儲器126中針對所考慮的通道chi而提供的區(qū)域 NPAi中。對區(qū)域NPAi的寫入在圖4的時(shí)間部分425的定時(shí)處(但是在執(zhí)行糾錯(cuò)寫入之前) 執(zhí)行。在通過從傳輸緩沖器109到波形存儲器126的突發(fā)傳輸將256個(gè)字傳輸?shù)讲ㄐ未鎯ζ?26的與所考慮的通道對應(yīng)的緩沖區(qū)中之前,必須確定應(yīng)當(dāng)將256個(gè)字傳輸?shù)絻蓚€(gè)緩沖器Bia和Bib中的哪一個(gè)。在樂音產(chǎn)生設(shè)備(系統(tǒng))的本實(shí)施例中,波形樣本必須已經(jīng)由樂音產(chǎn)生器114從預(yù)加載區(qū)302或所考慮的通道的緩沖器Bia和Bib中的任一個(gè)中讀出,因此,如果已經(jīng)從預(yù)加載區(qū)302或緩沖器Bia讀出樣本,則確定緩沖器Bib為突發(fā)傳輸目的地;如果已經(jīng)從預(yù)加載區(qū)302或緩沖器Bib讀出樣本,則確定緩沖器Bia為突發(fā)傳輸目的地。當(dāng)正在執(zhí)行從NAND型閃速存儲器到傳輸緩沖器的前述傳輸時(shí),糾錯(cuò)部件111分析所傳輸?shù)臄?shù)據(jù),并執(zhí)行圖4的431所表示的糾錯(cuò)算術(shù)處理。當(dāng)完成了附加信息^f的傳輸 413時(shí),糾錯(cuò)部件111檢測所傳輸?shù)臄?shù)據(jù)是否發(fā)生錯(cuò)誤,如果檢測到這樣的錯(cuò)誤,則檢測該錯(cuò)誤的可校正性,如果該錯(cuò)誤是可校正的,則檢測要校正的位置。如果檢測到錯(cuò)誤,如果檢測到的錯(cuò)誤是可校正的并且已經(jīng)計(jì)算出了該錯(cuò)誤的要校正的位置時(shí),糾錯(cuò)部件111在時(shí)間部分425處經(jīng)由存儲器I/F 112發(fā)出用于校正波形存儲器中要校正的位置的指令,以執(zhí)行糾錯(cuò)。在模式2中,NPAi也成為糾錯(cuò)的對象,因此,NPAi有時(shí)可以由糾錯(cuò)部件111通過糾錯(cuò)操作來校正。糾錯(cuò)部件111向檢錯(cuò)部件5M輸出指示已經(jīng)發(fā)生并已檢測到可校正錯(cuò)誤的糾錯(cuò)信息,如虛線箭頭541所示。并且,如果已經(jīng)發(fā)生并已被檢測到錯(cuò)誤而所檢測到的錯(cuò)誤是不可校正的,則糾錯(cuò)部件111向檢錯(cuò)部件5M輸出指示已經(jīng)發(fā)生不可校正的錯(cuò)誤的糾錯(cuò)信息,如虛線箭頭541所示。對于每個(gè)可校正的和不可校正的錯(cuò)誤,這里假設(shè)糾錯(cuò)信息包括在閃速存儲器125中發(fā)生該錯(cuò)誤的真實(shí)頁地址。檢錯(cuò)部件5M起到衰減部件的作用,當(dāng)由糾錯(cuò)部件111在針對通道的波形樣本上檢測到錯(cuò)誤并且該錯(cuò)誤是不可校正的時(shí),該衰減部件迅速衰減對應(yīng)通道的音樂樂音。從糾錯(cuò)部件111對檢錯(cuò)部件5M輸入了糾錯(cuò)信息。一旦輸入的是指示不可校正的錯(cuò)誤的糾錯(cuò)信息,則檢錯(cuò)部件5M命令幅度包絡(luò)產(chǎn)生器(EG) 503實(shí)現(xiàn)所考慮的通道的“強(qiáng)制切斷(forced dump) ”,從而迅速衰減該通道的樂音(虛線箭頭M5),但也將該錯(cuò)誤通知CPU 101(虛線箭頭542)。檢錯(cuò)部件5M從讀出部件507接收對樂音產(chǎn)生器114當(dāng)前正在執(zhí)行數(shù)據(jù)讀取的波形存儲器126的緩沖區(qū)進(jìn)行識別的PB地址(下文將把這樣的PB地址稱為“讀取PB地址”) (虛線箭頭M4)。檢錯(cuò)部件524從B至M傳輸緩沖器110接收對當(dāng)前為來自傳輸緩沖器109 的數(shù)據(jù)的傳輸目的地的波形存儲器126的緩沖區(qū)進(jìn)行識別的地址(下文將把這樣的地址稱為“傳輸PB地址”),并且在該傳輸完成時(shí),檢錯(cuò)部件5M接收一個(gè)指示傳輸已經(jīng)結(jié)束的傳輸結(jié)束信號(虛線箭頭M3)。當(dāng)針對給定通道正在正常地執(zhí)行利用波形存儲器1 中提供的緩沖器Bia和Bib的傳輸和讀出時(shí),如果讀取PB地址是“Bia” (即指定緩沖器Bia),則應(yīng)當(dāng)如下進(jìn)行操作。即,傳輸PB地址改變?yōu)椤癇ib”,使得開始從緩沖器Bib傳輸;隨后在完成傳輸時(shí)輸入傳輸結(jié)束信號,然后讀取地址改變?yōu)椤癇ib”,使得開始從緩沖器Bib讀出;隨后傳輸PB地址改變?yōu)椤癇ia”,使得開始從緩沖器Bia傳輸;隨后讀取地址改變?yōu)椤癇ia”,使得開始從緩沖器Bia讀出,等等。如果由于某種原因不能及時(shí)執(zhí)行傳輸來進(jìn)行讀出,則在傳輸PB地址設(shè)置為“Bib”的情況下在產(chǎn)生傳輸結(jié)束信號之前,讀取地址改變?yōu)椤癇ib”,并且在傳輸PB地址設(shè)置為“Bia”的情況下在產(chǎn)生傳輸結(jié)束信號之前,讀取地址改變?yōu)椤癇ia”。檢錯(cuò)部件5M檢查這樣的傳輸錯(cuò)誤是否已經(jīng)發(fā)生并已被檢測到,如果已經(jīng)發(fā)生傳輸錯(cuò)誤,則檢錯(cuò)部件5M命令幅度EG 503實(shí)現(xiàn)該通道的強(qiáng)制切斷,從而迅速衰減該通道的樂音(虛線箭頭M5),但也將傳輸錯(cuò)誤的發(fā)生與通道號一起通知CPU 101 (虛線箭頭M2)。圖6示出跟隨在樂音產(chǎn)生開始之后的(針對一個(gè)通道的)各個(gè)地址隨時(shí)間的變化。在該附圖中,“整數(shù)部分的低十位和小數(shù)部分”表示圖5的音高計(jì)數(shù)器504對所考慮的通道的F數(shù)字進(jìn)行累計(jì)而得到的累計(jì)結(jié)果的整數(shù)部分的低十位和小數(shù)部分隨時(shí)間的變化。 整數(shù)部分的低十位和小數(shù)部分的值響應(yīng)于F數(shù)字的累加而增大,隨后一旦低十位超過1023 則產(chǎn)生一個(gè)進(jìn)位,從而返回到“0”(準(zhǔn)確地說,是一個(gè)低于“ 1”的值,這是因?yàn)樾?shù)部分的值仍然保留),然后再次增加。因此,整數(shù)部分的低十位和小數(shù)部分的值呈現(xiàn)出鋸齒形的變化?!罢麛?shù)部分的高位”表示音高計(jì)數(shù)器504的整數(shù)部分的高位(即,累計(jì)結(jié)果從其中排除了整數(shù)部分的低十位和小數(shù)部分以后的高位部分)隨時(shí)間的變化。整數(shù)部分的高位的值緊隨在樂音產(chǎn)生開始之后為“0”,隨后每當(dāng)整數(shù)部分的低十位和小數(shù)部分中產(chǎn)生一個(gè)進(jìn)位時(shí)增加1。此外,在圖6中,“傳輸指令”指示從圖5的音高計(jì)數(shù)器504輸出到傳輸隊(duì)列521的傳輸指令信號。在樂音產(chǎn)生開始處輸出傳輸指令信號(如601所示),隨后每當(dāng)整數(shù)部分的低十位和小數(shù)部分產(chǎn)生進(jìn)位時(shí)輸出傳輸指令信號(如602或603所示)。“PB地址”表示從圖5的PB地址產(chǎn)生部件506輸出的所考慮通道的PB地址隨時(shí)間的變化。作為PB地址,緊隨在樂音產(chǎn)生開始之后輸出PA (其為表示波形存儲器1 的預(yù)加載區(qū)302中的前導(dǎo)頁的地址(圖3A)),然后在每當(dāng)“整數(shù)部分的高位”的值向上累計(jì)時(shí)交替地輸出BA和BA+1 (BA是對應(yīng)于該通道的緩沖器Bia的地址,而BA+1是對應(yīng)于該通道的緩沖器Bib的地址)。另外,“VP地址”表示由圖5的VP地址產(chǎn)生部件505內(nèi)部地產(chǎn)生的所考慮的通道的VP地址隨時(shí)間的變化。因?yàn)橄乱淮我x出到波形存儲器126的頁是由所考慮的波形數(shù)據(jù)的第二頁地址WA指定的頁(見圖2B),所以WA被輸出為緊隨樂音產(chǎn)生開始之后的VP地址,并隨后每當(dāng)“整數(shù)部分的高位”的值向上累計(jì)時(shí),WA增加1。每當(dāng)接收到所考慮的通道的傳輸指令,VP地址產(chǎn)生部件505就通過將“整數(shù)部分的高位”的值加到第二頁地址WA上來產(chǎn)生該通道的VP地址。因?yàn)椴ㄐ螖?shù)據(jù)在虛擬地址空間中連續(xù)布置的頁中被順序地存儲, 所以VP地址產(chǎn)生部件505可以通過每當(dāng)接收到所考慮的通道的傳輸指令就將第二頁地址 WA加一來產(chǎn)生VP地址。在圖2B的說明性示例中,WA表示第二頁W2(l)+hf,WA+1表示第三頁W2(2)+Inf,等等。"Pl地址(模式1) ”表示與所考慮的通道的VP地址(其為在模式1中由VP地址產(chǎn)生部件505在每個(gè)時(shí)間部分中產(chǎn)生的虛擬頁地址)對應(yīng)的真實(shí)頁地址。在模式1中,對應(yīng)于虛擬頁地址的真實(shí)頁地址基本參考地址轉(zhuǎn)換表301來獲得。因?yàn)?,在樂音產(chǎn)生器114 正在讀出具有PB地址(等于PA)的前導(dǎo)頁Wx(O)的波形樣本的同時(shí),作為下一個(gè)要從閃速存儲器125讀出的頁的虛擬頁地址的VP地址是“WA”地址,所以VP地址產(chǎn)生部件505參考地址轉(zhuǎn)換表301來獲得對應(yīng)于該WA地址的真實(shí)頁地址T (WA),并將如此獲得的真實(shí)頁地址 T(WA)寫入所考慮的通道的NPAi。注意,“Τ(*)”代表與通過地址轉(zhuǎn)換表301而得到的虛擬頁地址*相對應(yīng)的真實(shí)頁地址。每當(dāng)接收到傳輸指令時(shí),VP地址產(chǎn)生部件505獲得對應(yīng)于 VP地址WA+1、WA+2等等的真實(shí)頁地址,并將如此獲得的真實(shí)頁地址設(shè)置到波形存儲器1 的 NPAi。"P2地址(模式2、”表示與在模式2中VP地址產(chǎn)生部件505在每個(gè)時(shí)間部分中產(chǎn)生的所考慮的通道的VP地址相對應(yīng)的真實(shí)頁地址。在模式2中,基本通過跟隨從閃速存儲器125讀出的頁的附加信息hf中所包括的“指向下一頁的指針NP”來獲得下一個(gè)要讀出的真實(shí)頁地址。因?yàn)椋跇芬舢a(chǎn)生器114正在讀出當(dāng)PB地址設(shè)置為PA時(shí)的前導(dǎo)頁Wx(O) 的波形樣本的同時(shí),VP地址產(chǎn)生部件505通過參考地址轉(zhuǎn)換表301獲得對應(yīng)于WA地址的真實(shí)頁地址T (WA),并將如此獲得的真實(shí)頁地址T (WA)寫入所考慮的通道的NPAi中。真實(shí)頁地址NPAi的頁數(shù)據(jù)被從閃速存儲器125讀出并存儲到波形存儲器126的對應(yīng)的一個(gè)緩沖器中,此時(shí),B至M傳輸緩沖器110將讀出到傳輸緩沖器109的頁數(shù)據(jù)的附加信息hf中所包括的“指向下一頁的指針NP”設(shè)置到波形存儲器1 中的所考慮的通道的NPAi中。如此設(shè)置在NPAi中的“指向下一頁的指針NP”成為對應(yīng)于下一 VP地址(等于WA+1)的真實(shí)頁地址。當(dāng)響應(yīng)于下一傳輸指令602而將VP地址更新為“WA+1”時(shí),已經(jīng)完成了對所考慮通道的NPAi的設(shè)置。類似地,在每個(gè)傳輸執(zhí)行定時(shí)612、613、... “指向下一頁的指針NP”被設(shè)置到NPAi區(qū)域中,從而實(shí)際上將對應(yīng)于各個(gè)VP地址的真實(shí)頁地址設(shè)置到NPAi區(qū)域中。此外,在圖6中,“傳輸執(zhí)行定時(shí)”表示這樣的定時(shí)在該處,F(xiàn)至B傳輸部件108和 B至M傳輸緩沖器110響應(yīng)于來自圖5的F至B傳輸指令部件522和B至M傳輸指令部件 523指令,針對所考慮的通道來實(shí)際執(zhí)行上文關(guān)于圖4所說明的傳輸。如上所述,以與將通道號登記到傳輸隊(duì)列521中相同的次序來順序地執(zhí)行F至B傳輸部件108和B至M傳輸部件110執(zhí)行的傳輸。因此,即使當(dāng)將所考慮通道的通道號登記到傳輸隊(duì)列521中時(shí)已經(jīng)在傳輸隊(duì)列521中登記了其它通道的通道號,也將在比已經(jīng)完成了對應(yīng)于其它通道號的所有傳輸?shù)膱?zhí)行略晚的時(shí)候,才從傳輸隊(duì)列521輸出所考慮通道的通道號,并在定時(shí)611處執(zhí)行對應(yīng)于所考慮通道的通道號的傳輸。類似地,響應(yīng)于傳輸指令602的登記到傳輸隊(duì)列521 中的通道號的傳輸在比該傳輸指令略晚的定時(shí)612處被執(zhí)行,響應(yīng)于傳輸指令603的登記到傳輸隊(duì)列521中的通道號的傳輸在比該傳輸指令略晚的定時(shí)613處被執(zhí)行,等等;S卩,每個(gè)通道號的傳輸都在比其傳輸指令略晚的定時(shí)處被執(zhí)行。由于在其它通道中正執(zhí)行傳輸而造成的擁堵,所以這種延遲不是恒定的。不用說,登記到傳輸隊(duì)列521的每個(gè)傳輸必須在下一個(gè)傳輸指令到達(dá)之前被執(zhí)行;即,響應(yīng)于傳輸指令601的登記到傳輸隊(duì)列521的傳輸必須在傳輸指令602達(dá)到之前被執(zhí)行,響應(yīng)于傳輸指令602的登記到傳輸隊(duì)列521的傳輸必須在傳輸指令603達(dá)到之前被執(zhí)行,等等。接下來將給出關(guān)于對訪問波形存儲器126的定時(shí)設(shè)計(jì)的說明。在本實(shí)施例中,響應(yīng)于一個(gè)單元訪問(從閃速存儲器125讀出一頁數(shù)據(jù))而傳輸
27到傳輸緩沖器109的IOM個(gè)樣本被分開地在四個(gè)DAC周期中以每個(gè)DAC周期256個(gè)樣本 (512個(gè)字節(jié))的方式從傳輸緩沖器109突發(fā)傳輸?shù)讲ㄐ未鎯ζ? (圖4)。將波形樣本分開地在四個(gè)DAC周期中以每個(gè)DAC周期256個(gè)樣本(512個(gè)字節(jié))進(jìn)行突發(fā)傳輸?shù)脑蛟谟?,每單元訪問占用四個(gè)DAC周期。與將用于突發(fā)傳輸?shù)臅r(shí)間段和用于波形存儲器1 更新的時(shí)間段排除之后的一個(gè)DAC周期相等的時(shí)間段,成為樂音產(chǎn)生器114讀出每個(gè)樂音產(chǎn)生通道用于產(chǎn)生樂音的波形樣本的時(shí)間段。因此,在必須保證長的時(shí)間段以便突發(fā)傳輸?shù)那闆r下,有必要減小用于各個(gè)樂音產(chǎn)生通道的讀出時(shí)間段,因此導(dǎo)致需要對能夠產(chǎn)生樂音的通道數(shù)量進(jìn)行減少的設(shè)計(jì)。反過來說,如果可以減小突發(fā)傳輸時(shí)間段,則相應(yīng)地可以增加能產(chǎn)生樂音的通道的數(shù)量。下面說明下文使用的術(shù)語“帶寬”和“總帶寬”。術(shù)語“總帶寬”指的是在基本再現(xiàn)周期(它是以每采樣周期一個(gè)樣本的速率再現(xiàn)一頁樣本數(shù)據(jù)時(shí)所需的再現(xiàn)時(shí)間段)之內(nèi)能夠從閃速存儲器125讀出的頁的最大數(shù)量。換句話說,“總帶寬”指的是在基本再現(xiàn)周期之內(nèi)可以發(fā)出的傳輸指令的最大(上限)次數(shù)。在本實(shí)施例中,將基本再現(xiàn)周期設(shè)置為等于 IOM個(gè)DAC周期,并且占用四個(gè)DAC周期來從閃速存儲器125讀出一頁。因此,在本實(shí)施例中,“總帶寬”是256。術(shù)語“帶寬”是指在一個(gè)通道中在基本再現(xiàn)周期之內(nèi)能夠從閃速存儲器125讀出的頁的最大數(shù)量,即所考慮的通道能夠發(fā)出傳輸指令的最大次數(shù)。例如,在以F 數(shù)字“ 1”在給定通道中執(zhí)行樂音產(chǎn)生的情況下,在IOM個(gè)DAC周期的基本再現(xiàn)周期中僅僅發(fā)出一個(gè)傳輸指令就足夠,這是因?yàn)橥ㄟ^一個(gè)傳輸被寫入波形存儲器中的IOM個(gè)樣本可以覆蓋具有F數(shù)字“1”的再現(xiàn),因此,給定的通道的帶寬是“1”。如果F數(shù)字是“2”,那么帶寬是“2”。此外,如果F數(shù)字是“1.1”,則在十個(gè)基本再現(xiàn)周期中需要十一個(gè)傳輸指令(即傳輸11頁),從而在這十個(gè)周期中的某處必須發(fā)出兩個(gè)傳輸指令;因此,在這種情況下,所考慮的通道的帶寬是“2”。從而,通過截去F數(shù)字的小數(shù)部分而得到的值成為該通道的帶寬。另外,需要防止所有通道的帶寬之和超過總帶寬,這是因?yàn)槿绻型ǖ赖膸捴统^了總帶寬,那么不能進(jìn)行在任一個(gè)通道中產(chǎn)生的傳輸請求。在樂音產(chǎn)生設(shè)備(系統(tǒng))的本實(shí)施例中,CPU 101管理分配到各個(gè)通道的帶寬?;诟鞣N設(shè)計(jì)條件預(yù)先確定總帶寬Tbw。還預(yù)先提供了表示已分配的總帶寬的局部變量Abw 和表示被分配到第i個(gè)通道的帶寬的局部變量Cbw(i),并且CPU 101在初始化處理時(shí)將這些局部變量Alw和Clw初始化為零。在為樂音產(chǎn)生分配通道時(shí),CPU 101將該通道的帶寬Iw 與通過從總帶寬Tbw減去已分配的總帶寬Alm而計(jì)算的值(這個(gè)值表示空的帶寬)相比較, 并確認(rèn)前者等于或小于后者;如果前者大于后者,則不能分配該通道的帶寬來產(chǎn)生樂音。如果前者等于或小于后者,則表明仍存在可用的或者可分配的帶寬,從而將該通道的帶寬bw 加到已分配的總帶寬Abw上,并將該通道的帶寬W存儲作為局部變量Cbw (i)。一旦所考慮的通道受到消音操作(即該通道靜音),并從而解除了樂音產(chǎn)生,則從Abw減去Cbw(i), 并將Cbw(i)重置為零。以這種方式,CPU 101恒定地管理已分配的總帶寬Alw和可分配的帶寬Tbw-Abw。因此,在本實(shí)施例中采用的上述方案可以在不限制F數(shù)字的上限值的情況下在基本再現(xiàn)周期中將對所有通道的單位訪問總數(shù)量限制在總帶寬(其為單位訪問的上限數(shù)量)之內(nèi)。即,在基本再現(xiàn)周期中,本實(shí)施例中采用的方案可以減小發(fā)生了向下音高改變(降調(diào))的每個(gè)通道的單位訪問數(shù)量,盡管對于發(fā)生了向上音高改變(升調(diào))的每個(gè)通道需要增大單位訪問數(shù)量。因此,作為一個(gè)整體,本實(shí)施例中采用的方案可以降低基本再現(xiàn)周期中的單位訪問上限數(shù)量(即總帶寬)。圖7A是本發(fā)明的系統(tǒng)的實(shí)施例中CPU 101響應(yīng)于上電或重置而執(zhí)行的主處理的流程圖。在步驟701處執(zhí)行初始化。在下一步驟702處,CPU 101命令傳輸控制部件113 將地址轉(zhuǎn)換表和每個(gè)波形數(shù)據(jù)組的前導(dǎo)頁傳輸?shù)讲ㄐ未鎯ζ?26,并且初始地將表示模式 1或模式2的模式信息M設(shè)置到模式寄存器501中。如上文關(guān)于圖2的說明,在步驟702要傳輸?shù)牡刂忿D(zhuǎn)換表取決于所設(shè)置的模式信息M而具有不同類型。S卩,在模式1中傳輸16位輸入及16位輸出的表作為地址轉(zhuǎn)換表,而在模式2中則傳輸20位輸入及20位輸出的表作為地址轉(zhuǎn)換表。在初始化之后,CPU 101在步驟703執(zhí)行事件檢測操作,并且,如果在步驟 704確定已經(jīng)檢測到任何事件,則CPU 101在步驟705執(zhí)行對應(yīng)于所檢測的事件的事件處理。此后,CPU 101重復(fù)執(zhí)行步驟703至705的操作。圖7B是CPU 101在步驟705執(zhí)行的音符打開事件處理的流程圖,例如,經(jīng)由MIDI I/O 1 輸入了 MIDI音符打開事件的處理流程圖。在步驟711,CPU 101基于輸入的MIDI 音符打開事件的演奏信息來將音符編號和速度設(shè)置到各個(gè)寄存器nn和vel中。在下一個(gè)步驟712,CPU 101從存儲在閃速存儲器125中的并且對應(yīng)于當(dāng)前所選音色的多個(gè)波形數(shù)據(jù)集之中確定(選擇)一個(gè)與音符編號nn和速度vel對應(yīng)的波形數(shù)據(jù)集。在圖1的NOR型閃速存儲器121中,提供了對應(yīng)于各種音色的音色數(shù)據(jù)集,并且每個(gè)音色數(shù)據(jù)集包括用于選擇與音符編號nn和速度vel相對應(yīng)的波形數(shù)據(jù)集的波形選擇信息。在步驟713,CPU 101 分配樂音產(chǎn)生通道中的一個(gè),并且將所分配的通道的通道號設(shè)置到寄存器a中。在步驟713,CPU 101保證上述的帶寬。S卩,CPU 101確認(rèn)當(dāng)前滿足條件 "bw 彡 Tbw-Abw",并且設(shè)置 Idw 作為 Cbw (a),設(shè)置 Abw+bw 作為 Abw。如果 W > Tbw-Abw, 即,如果可分配的帶寬Tlm沒有更多可分配的帶寬,則CPU 101從當(dāng)前正在產(chǎn)生樂音的通道 (即當(dāng)前發(fā)出聲音的通道)之中確定要靜音的通道。然后,其迅速衰減所確定的要靜音的通道的樂音,以將要靜音的通道從樂音產(chǎn)生狀態(tài)釋放,從所分配的總帶寬Alm減去該通道的帶寬,將局部變量Clm設(shè)置為“0”,隨后再次保證帶寬。如果沒有空閑通道可供分配,則將任一個(gè)當(dāng)前正在發(fā)聲的通道靜音,并使得它可被分配來產(chǎn)生樂音(即要新產(chǎn)生的樂音)。在下一步驟714,CPU 101將各種參數(shù)設(shè)置到控制寄存器部件502的“a”通道區(qū)域中??梢曰谠诋?dāng)所確定的波形數(shù)據(jù)沒有被改變音高的那個(gè)音高(音分)與由音符編號rm 所表示的音高(音分)之間的音高差(以音分為單位),來確定意在控制音高改變的F數(shù)字。上述地址WA和PA以及關(guān)于包絡(luò)的參數(shù)都包括在音色數(shù)據(jù)中??梢曰谒峙涞耐ǖ捞杹泶_定上述BA地址。最后,在步驟715,CPU 101將“a”通道的樂音產(chǎn)生指令寫入音符打開寄存器中,此后,音符打開處理結(jié)束?,F(xiàn)在已經(jīng)通過上述方式將各種數(shù)據(jù)設(shè)置在樂音產(chǎn)生寄存器中,包括用于“a”通道的音符打開寄存器,通過上文關(guān)于圖1至圖6所說明的操作在“a”通道中執(zhí)行樂音產(chǎn)生處理。通過上述從NAND型閃速存儲器125到樂音產(chǎn)生器114的硬件部件來實(shí)現(xiàn)樂音產(chǎn)生處理,因此沒有對CPU 101發(fā)出中斷。圖8A是在接收到給定通道的傳輸指令時(shí)由VP地址產(chǎn)生部件505執(zhí)行的處理的流程圖,并且這個(gè)處理由硬件實(shí)現(xiàn)。在步驟801,將“整數(shù)部分的高位”的值加到第二頁地址WA 上以產(chǎn)生VP地址,如上面關(guān)于圖6所說明的。如果在步驟802確定當(dāng)前模式是模式1,或者如果在步驟802確定當(dāng)前模式是模式2并且在步驟803確定當(dāng)前處理是該處理的第一次執(zhí)行,則處理進(jìn)到步驟804。如果在步驟803確定當(dāng)前處理不是第一次執(zhí)行,則處理進(jìn)到步驟 806。在步驟804參考地址轉(zhuǎn)換表(圖3A的301)來獲得對應(yīng)于VP地址的真實(shí)頁地址(P 地址)。該P(yáng)地址對應(yīng)于模式1中的Pl地址或者模式2中的第一個(gè)P2地址。在步驟805, 將P地址寫入在NPA區(qū)304中提供的所考慮通道的區(qū)域NPAi中。在下一步驟806,將所考慮通道的通道號輸出到傳輸隊(duì)列521。圖8B是在從B至M傳輸指令部件523接收到傳輸指令時(shí)由B至M傳輸緩沖器110 執(zhí)行的處理的流程圖。然而,圖8B的處理不包括用于將傳輸PB地址等輸出到檢錯(cuò)部件524 之類的操作。該處理也由硬件實(shí)現(xiàn)。在步驟811,獲取從B至M傳輸指令部件523傳來的通道號。在步驟812,在四個(gè)DAC周期中以每DAC周期256個(gè)字的方式分開地將存儲在傳輸緩沖器109中的一頁波形數(shù)據(jù)的IOM個(gè)字傳輸?shù)讲ㄐ未鎯ζ? 的所考慮通道的緩沖區(qū)。 如上文關(guān)于圖4的突發(fā)傳輸時(shí)間部分422所說明那樣來控制一頁波形數(shù)據(jù)的傳輸定時(shí)。如果在步驟813確定當(dāng)前模式是模式2,則處理前進(jìn)到步驟814,在該處將傳輸緩沖器109中存儲的“指向下一頁的指針NP”寫入波形存儲器1 中提供的所考慮通道的區(qū)域NPAi中。下面描述CPU 101響應(yīng)于錯(cuò)誤的發(fā)生(檢測)而執(zhí)行的處理。如上文關(guān)于圖5的糾錯(cuò)部件111和檢錯(cuò)部件5M所說明的,對本系統(tǒng)的本實(shí)施例中的CPU 101供給錯(cuò)誤通知, 其包括下面的任一個(gè)(1)指示在從閃速存儲器125讀出的數(shù)據(jù)中發(fā)生了可校正錯(cuò)誤并且已經(jīng)校正該錯(cuò)誤的糾錯(cuò)信息;(2)指示在從閃速存儲器125讀出的數(shù)據(jù)中發(fā)生了不可校正的錯(cuò)誤的糾錯(cuò)信息;和⑶指示發(fā)生了傳輸錯(cuò)誤的糾錯(cuò)信息。這樣的糾錯(cuò)信息的每一個(gè)都包括指示出在閃速存儲器125中發(fā)生錯(cuò)誤的通道和真實(shí)頁地址的數(shù)據(jù)。首先描述在上述(1)中提到的可校正的錯(cuò)誤。在該情況中,使用校正后的波形數(shù)據(jù)來繼續(xù)所考慮通道中的樂音產(chǎn)生。在接收到錯(cuò)誤通知時(shí),CPU 101通過中斷操作將發(fā)生了錯(cuò)誤的頁的真實(shí)頁地址登記到NOR型閃速存儲器121中作為“替代等待頁”。因?yàn)槿缟纤鍪褂眯U蟮牟ㄐ螖?shù)據(jù)來繼續(xù)所考慮通道中的樂音產(chǎn)生,所以不立即將可校正錯(cuò)誤通知通過消息顯示、預(yù)定聲音輸出之類給予用戶。然而,在完成樂音產(chǎn)生處理之后將這樣的錯(cuò)誤通知給予用戶。在接收到可校正錯(cuò)誤通知時(shí),用戶開始圖9A和圖9B的處理,在登記了 “替代等待頁”而同時(shí)不存在對閃速存儲器125的訪問的情況下通過響應(yīng)于操作人員指令的預(yù)定處理(或者由后臺處理自動(dòng)地)來執(zhí)行圖9A和圖9B的處理。圖9A是在登記了“替代等待頁”并且當(dāng)前模式是模式1的情況下執(zhí)行的處理的流程圖。在步驟901,CPU 101經(jīng)由存儲器I/F 107從閃速存儲器125讀出包含被登記為“替代等待頁”的錯(cuò)誤頁的一個(gè)塊,并且在RAM 103中對該塊中包含的錯(cuò)誤頁執(zhí)行糾錯(cuò)。CPU 101 對校正后的數(shù)據(jù)附上糾錯(cuò)碼,以獲得適當(dāng)?shù)囊豁摂?shù)據(jù)(2112字節(jié))。除了該錯(cuò)誤頁,CPU 101 還可以使用糾錯(cuò)碼對該塊的其它頁執(zhí)行錯(cuò)誤的檢查和校正。一旦得到了整個(gè)塊的適當(dāng)?shù)臄?shù)據(jù),CPU 101進(jìn)到步驟902以選擇閃速存儲器125中存儲的未使用的真實(shí)塊。隨后,在步驟 903,CPU 101經(jīng)由存儲器I/F 107將校正后的一個(gè)塊的數(shù)據(jù)寫入所選的未使用的塊(也稱為“替代塊”)。在下一步驟904,CPU 101將與閃速存儲器125的地址轉(zhuǎn)換表中的包含該錯(cuò)誤頁的這一個(gè)塊的虛擬塊地址相關(guān)聯(lián)的真實(shí)塊地址(即,迄今為止指定的是地址轉(zhuǎn)換表中的該錯(cuò)誤頁)改為該替代塊的真實(shí)塊地址(即,用以指定該替代塊)。通過上述方式,能夠以該替代塊來代替包含錯(cuò)誤頁的這一個(gè)塊。在當(dāng)前模式是模式1的情況中,在NOR型閃速存儲器121中或在RAM 103中預(yù)存儲了與閃速存儲器125的地址轉(zhuǎn)換表相同的數(shù)據(jù)以及用于管理未使用的真實(shí)塊的位置的管理數(shù)據(jù)。利用這些數(shù)據(jù),CPU 101總是管理NAND型閃速存儲器125中存儲的波形數(shù)據(jù)的各個(gè)頁的使用的狀態(tài)。圖9B是在登記了“替代等待頁”并且當(dāng)前模式是模式2的情況下執(zhí)行的處理的流程圖。在步驟911,CPU 101經(jīng)由存儲器I/F 107從閃速存儲器125讀出被登記為“替代等待頁”的錯(cuò)誤頁,并且在RAM 103中對錯(cuò)誤頁執(zhí)行糾錯(cuò)。CPU 101對校正后的數(shù)據(jù)附上糾錯(cuò)碼,以獲得適當(dāng)?shù)囊豁摂?shù)據(jù)0112字節(jié))。在步驟912,CPU 101選擇閃速存儲器125中存儲的未使用的頁。然后,在步驟913,將校正后的頁的數(shù)據(jù)寫入所選的未使用的頁(也稱為 “替代頁”),并對處在所考慮的頁之前的頁的“指向下一頁的指針NP”進(jìn)行更新以指向該替代頁。如果錯(cuò)誤頁是波形數(shù)據(jù)的前導(dǎo)頁,則CPU 101不對前一頁的“指向下一頁的指針NP” 進(jìn)行更新,而是將與閃速存儲器125的地址轉(zhuǎn)換表中的錯(cuò)誤頁的虛擬頁地址相關(guān)聯(lián)的真實(shí)頁地址改為該替代頁的真實(shí)頁地址。通過上述方式,能夠以替代頁來代替錯(cuò)誤頁。在當(dāng)前模式是模式2的情況中,在NOR型閃速存儲器121中或在RAM 103中預(yù)存儲了與閃速存儲器125的地址轉(zhuǎn)換表相同的數(shù)據(jù)以及用于管理未使用的真實(shí)塊的位置的管理數(shù)據(jù)。CPU 101可以參考NOR型閃速存儲器121中存儲的地址轉(zhuǎn)換表來獲取包含錯(cuò)誤頁的波形數(shù)據(jù)的前導(dǎo)頁的真實(shí)頁地址,并且CPU 101可以通過跟隨來自前導(dǎo)頁的“指向下一頁的指針NP”來識別在錯(cuò)誤頁之前的頁。注意,管理數(shù)據(jù)用于管理各個(gè)波形數(shù)據(jù)中的真實(shí)頁的順序(頁之間的鏈接狀態(tài)),從而可以基于管理數(shù)據(jù)識別錯(cuò)誤頁之前的頁。另外,附加信息hf可以不僅包括“指向下一頁的指針NP”,還包括“指向前一頁的指針”,從而可以容易地識別在錯(cuò)誤頁之前的頁的真實(shí)頁地址,并因此可以容易地訪問前一頁。注意,NAND型閃速存儲器125不能通過一個(gè)動(dòng)作被覆寫,而必須在對包括了要覆寫的頁的多個(gè)連續(xù)頁(例如32或64個(gè)頁)的塊進(jìn)行擦除之后才能被覆寫;下面將把這樣的塊稱為“存儲塊”,以與前文關(guān)于圖2C所說明的塊相區(qū)別。因此,用于對NAND型閃速存儲器125進(jìn)行寫入的步驟903、904和913的操作以這樣的順序來執(zhí)行其中將包括了要被寫入的頁的存儲塊的數(shù)據(jù)暫時(shí)讀出到RAM 103中,然后擦除讀出之后的存儲塊,然后在RAM 103中改變所讀出的數(shù)據(jù)的必要部分,然后將如此改變之后的數(shù)據(jù)寫回到擦除后的存儲塊。接下來描述上面的O)中提到的不可校正的錯(cuò)誤。在這種情況下,如上所述,在沒有來自CPU 101的指令的情況下自動(dòng)強(qiáng)制切斷所考慮通道中正在產(chǎn)生的樂音。已經(jīng)接收到不可校正錯(cuò)誤通知的CPUlOl執(zhí)行中斷操作,該操作用于釋放所考慮通道以使得該通道可分配來產(chǎn)生樂音,使分配給所考慮通道的帶寬重回到可分配的帶寬,并且通過消息顯示、預(yù)定聲音輸出等將該結(jié)果告知用戶。這一信息或通知可以立即也可以在完成樂音產(chǎn)生處理之后給予用戶。接收到該通知的用戶請求該設(shè)備的制造商等進(jìn)行必要的維修,這是因?yàn)榭雌饋磉@不可校正的錯(cuò)誤是由于閃速存儲器125的故障而導(dǎo)致的。談到閃速存儲器125的給定頁,在正在正常無誤地讀出一頁的狀態(tài)下,在該頁中突發(fā)性地發(fā)生一個(gè)不可校正的錯(cuò)誤的可能性極低;通常是首先發(fā)生幾次可校正的錯(cuò)誤,然后才發(fā)生不可校正的錯(cuò)誤。因此,如上所述當(dāng)發(fā)生可校正錯(cuò)誤時(shí),通過以替代頁或替代塊來代替引起了可校正錯(cuò)誤的頁,可以防止不可校正錯(cuò)誤的發(fā)生。接下來,描述上面(3)中提到的傳輸錯(cuò)誤。在該情況中,如上所述,正在所考慮的通道中產(chǎn)生的樂音被強(qiáng)制切斷。已經(jīng)接收到錯(cuò)誤通知的CPU 101執(zhí)行中斷操作,該操作用于釋放所考慮通道以使得該通道可分配來產(chǎn)生樂音,使分配給所考慮通道的帶寬重回到可分配的帶寬。另外,CPU 101將總帶寬Tbw的值降低一個(gè)預(yù)定值或量以收緊帶寬限制,使得更不容易發(fā)生傳輸錯(cuò)誤??梢赃m當(dāng)?shù)匦薷脑诒緦?shí)施例的描述中上面提到的各種值。例如,閃速存儲器125 不限于2112字節(jié)的頁尺寸,并且可以是任何其它期望的尺寸。例如,數(shù)據(jù)區(qū)可以具有IOM 字節(jié)或4096字節(jié)的尺寸,以及附加信息Inf也可以具有取決于閃速存儲器125的規(guī)格的任意期望尺寸。另外,閃速存儲器125的單位數(shù)據(jù)寬度不限于8位,可以是4位、16位等。 此外,上文關(guān)于圖2C所說明的在模式1情況下的一個(gè)塊的尺寸不限于16頁,可以是32頁或64頁(即2的乘方的頁)等等。另外,一個(gè)塊可以由一頁組成(因此,在該情況下,沒有 “塊”的概念)。在基本再現(xiàn)周期中的單位訪問數(shù)量不限于256個(gè),還可以是取決于閃速存儲器125的規(guī)格的其它期望數(shù)量,比如300、450或512。另外,從波形存儲器1 讀出的樣本的數(shù)量不限于256個(gè)(即2個(gè)樣本X 128個(gè)通道),可以是取決于與能夠從波形存儲器 126讀出一個(gè)樣本的時(shí)隙的時(shí)間分辨率有關(guān)的規(guī)格的任意其它期望數(shù)量,比如310、460或 512。此外,能夠產(chǎn)生樂音的通道的數(shù)量也不限于1 個(gè)通道,可以是在如上所述有可能成為瓶頸的各種條件之下的任何其它期望數(shù)量,比如64、80或160。每個(gè)樣本的位的數(shù)量也不限于16個(gè),可以是12、14等。盡管圖2B的示例已經(jīng)描述了這樣的格式,其中在2048字節(jié)的波形數(shù)據(jù)之后提供糾錯(cuò)碼,然而糾錯(cuò)碼可以放置在任何其它期望的位置,或者分開布置在多個(gè)位置處。例如, 在執(zhí)行糾錯(cuò)算術(shù)處理的數(shù)據(jù)單位是256字節(jié)的情況下,可以將256字節(jié)的糾錯(cuò)碼放置在256 字節(jié)的波形數(shù)據(jù)之后。另外,盡管已經(jīng)將實(shí)施例中插值部件508所執(zhí)行的插值描述為兩點(diǎn)插值,然而可以在任何其它期望數(shù)量的點(diǎn)之間執(zhí)行插值,比如三點(diǎn)或四點(diǎn)。不過,在插值部件508執(zhí)行四點(diǎn)插值的情況下,可能需要減小能夠產(chǎn)生樂音的通道的數(shù)量,這是因?yàn)橥ㄟ^一個(gè)讀出操作來讀出四個(gè)連續(xù)的樣本。在從波形存儲器1 讀出多個(gè)樣本的情況下,可以通過突發(fā)傳輸以高速讀出它們。另外,插值部件508可以配備樣本緩沖器。另外,盡管已經(jīng)將實(shí)施例中的讀出部件507描述為構(gòu)造來在每個(gè)DAC周期對每個(gè)通道訪問兩次波形存儲器126,以便讀出用于該通道的插值所必需的兩個(gè)樣本,然而,可以提供插值緩沖器(對應(yīng)于傳統(tǒng)已知的設(shè)備中的樣本RAM)用于存儲所讀出的樣本的最近η 個(gè)樣本(η表示插值必需的數(shù)量),從而可以減小每個(gè)通道訪問波形存儲器126的必需的次數(shù)。在這樣的情況下,訪問波形存儲器1 必需的次數(shù)等于針對每個(gè)通道從音高計(jì)數(shù)器504 輸出的整數(shù)部分的地址的增量。例如,如果每個(gè)通道的F數(shù)字被限制為等于或小于“1“,則通過如上述實(shí)施例中那樣每DAC周期256個(gè)訪問操作的方式來讀出256個(gè)通道的樣本,因此,可以將樂音產(chǎn)生器LSI 100設(shè)計(jì)成實(shí)現(xiàn)高達(dá)256個(gè)能夠產(chǎn)生樂音的通道。如果不限制F 數(shù)字,則能夠產(chǎn)生樂音的通道的最大數(shù)量根據(jù)通過截去設(shè)置在各個(gè)通道中的F數(shù)字的小數(shù)部分而得到的值之和的最大值而動(dòng)態(tài)地改變。在上述設(shè)計(jì)的每一個(gè)中,最佳的是以這樣的方式來設(shè)計(jì)樂音產(chǎn)生器LS I 100:閃速存儲器125的“帶寬”(在上述實(shí)施例中是256)與訪問波形存儲器126的次數(shù)(在上述實(shí)施例中是256次訪問)彼此一致。另外,盡管已經(jīng)將本發(fā)明的實(shí)施例描述為以這樣的方式來構(gòu)造在模式2中,要從閃速存儲器125第一次傳輸?shù)捻摰奶摂M頁地址到真實(shí)頁地址的轉(zhuǎn)換(圖6的P2地址的
32T(WA)的獲取)是由VP地址產(chǎn)生部件505自動(dòng)執(zhí)行的,而不是由CPU 101執(zhí)行的(見圖8A 的步驟803和804),然而,這個(gè)初始地址轉(zhuǎn)換可以由CPU 101執(zhí)行。為此,CPU 101可以保留與各個(gè)波形數(shù)據(jù)的虛擬頁地址對應(yīng)的讀取地址(即對應(yīng)于T(WA)的數(shù)據(jù)),以使得對于任何期望的波形數(shù)據(jù),可以例如響應(yīng)于樂音產(chǎn)生開始指令經(jīng)由控制寄存器部件502將真實(shí)頁地址設(shè)置到波形存儲器1 的NPAi區(qū)域中。類似的布置可以應(yīng)用于模式1中。重要的是, 當(dāng)要傳輸?shù)诙秃罄m(xù)頁時(shí),沒有對CPU 101發(fā)出中斷,并且對于第一頁,操作的一些增加不會影響太大。對CPU 101的中斷是不期望的,原因在于中斷導(dǎo)致CPU 101的負(fù)擔(dān)增大,這是因?yàn)樾枰蹇誄PU 101的寄存器等。另外,盡管已經(jīng)將本發(fā)明的實(shí)施例描述為將波形數(shù)據(jù)存儲在作為外部存儲介質(zhì)的 NAND型閃速存儲器中,然而這樣的外部存儲介質(zhì)不限于NAND型閃速存儲器。本發(fā)明的基本思想可以廣泛地應(yīng)用于這樣的情況其中將波形數(shù)據(jù)存儲在能夠基于逐頁方式高速地被訪問并且可能導(dǎo)致數(shù)據(jù)錯(cuò)誤從而需要數(shù)據(jù)校正的、用作外部存儲介質(zhì)的任何各種半導(dǎo)體器件中。另外,盡管上面已經(jīng)將本發(fā)明的實(shí)施例描述為涉及其中每個(gè)樣本包括一個(gè)字的線性波形數(shù)據(jù),然而波形數(shù)據(jù)可以是被壓縮為期望格式的數(shù)據(jù)。在這樣的情況下,盡管由于每頁(10M字)中的樣本數(shù)量將會不同從而變得難于準(zhǔn)確計(jì)算上述帶寬,但優(yōu)選的是,預(yù)先獲得在每個(gè)波形數(shù)據(jù)的一頁中樣本的平均數(shù)量,并使用樣本的平均數(shù)量來計(jì)算帶寬。另外,盡管已經(jīng)將本發(fā)明的實(shí)施例描述為在波形存儲器中提供地址轉(zhuǎn)換表,然而用于存儲地址轉(zhuǎn)換表的存儲部件可以提供在LSIlOO中而不在波形存儲器中。此外,已經(jīng)將本發(fā)明的實(shí)施例描述為將CPU 101結(jié)合在LSI 100中。作為替代,可以通過經(jīng)由外部CPU 101,控制LSI 100的方式來在LSI 100中結(jié)合用于在LSI 100與CPU 101之間進(jìn)行接口連接的CPU I/F部件。此外,還可以在LSI 100的外部提供所期望的一個(gè)或多個(gè)存儲器I/ F 102、RAM 103、顯示器I/F 104、并行I/F 105和串行I/F 106,而不是將它們結(jié)合在LSI 100中。反過來,波形存儲器1 可以修改為靜態(tài)存儲器類型并且可以結(jié)合到樂音產(chǎn)生器 LSI 100 中。
權(quán)利要求
1. 一種樂音產(chǎn)生設(shè)備包括外部存儲器,其具有多個(gè)頁,每個(gè)頁由頁地址指定并且在其中存儲數(shù)據(jù)和針對該數(shù)據(jù)的糾錯(cuò)碼,所述外部存儲器將多個(gè)波形存儲為數(shù)據(jù),每個(gè)波形由一系列波形樣本構(gòu)成并且在所述外部存儲器中將每個(gè)波形分成多個(gè)波形樣本;樂音產(chǎn)生部件,其能夠同時(shí)產(chǎn)生多個(gè)通道的音樂樂音;以及控制部件,其根據(jù)演奏信息控制所述樂音產(chǎn)生部件中的樂音產(chǎn)生, 其中,所述樂音產(chǎn)生部件包括波形存儲器,其具有針對多個(gè)波形提供的多個(gè)前導(dǎo)波形存儲區(qū)以及針對多個(gè)通道提供的多個(gè)緩沖區(qū),一個(gè)針對波形的前導(dǎo)波形存儲區(qū)存儲該波形的前導(dǎo)頁的波形樣本,而一個(gè)針對通道的緩沖區(qū)臨時(shí)存儲用于該通道的音樂樂音的樂音產(chǎn)生的波形樣本;控制寄存器部件,其具有針對多個(gè)通道提供的多個(gè)通道區(qū),每個(gè)針對通道的通道區(qū)存儲由所述控制部件設(shè)置的、用于控制該通道的音樂樂音的樂音產(chǎn)生的參數(shù),通道的參數(shù)包括速率參數(shù),其用于控制音樂樂音的音高;前導(dǎo)波形地址,其指定了在所述波形存儲器中的前導(dǎo)波形區(qū)域;波形位置信息,其指示在所述外部存儲器中的波形的位置;以及幅度控制信息,其用于控制音樂樂音的幅度包絡(luò);讀出部件,其響應(yīng)于針對每個(gè)通道的激活指令,以與該通道的速率參數(shù)對應(yīng)的速率來首先從所述波形存儲器中的由該通道的前導(dǎo)波形地址所指定的前導(dǎo)波形存儲區(qū)讀出前導(dǎo)頁的波形樣本,并且隨后在所述波形存儲器中從對應(yīng)于該通道的緩沖區(qū)以相同的速率重復(fù)地讀出波形樣本,所述讀出部件能夠在所述波形存儲器中同時(shí)針對多個(gè)通道以分時(shí)多路復(fù)用的方式讀出波形樣本;下一地址產(chǎn)生部件,其針對每個(gè)通道基于該通道的波形位置信息來產(chǎn)生對下一個(gè)要從所述外部存儲器讀出的一頁波形樣本進(jìn)行指定的下一頁地址信息,并且將所產(chǎn)生的該通道的下一頁地址信息設(shè)置到下一頁地址存儲部件中;傳輸指令產(chǎn)生部件,其針對每個(gè)通道在每當(dāng)由所述讀出部件針對該通道所執(zhí)行的波形樣本讀出前進(jìn)了一頁時(shí)產(chǎn)生傳輸指令;傳輸隊(duì)列,其響應(yīng)于任何通道的激活指令和傳輸指令,將該通道的通道號入隊(duì)到其中;傳輸部件,其基于先進(jìn)先出方式從所述傳輸隊(duì)列取出通道的通道號,隨后以突發(fā)方式從所述外部存儲器讀出由設(shè)置在下一頁地址存儲部件中的該通道的下一頁地址信息所指定的頁的波形樣本,并且隨后將讀出的波形樣本寫入與該通道相對應(yīng)的緩沖區(qū)中;糾錯(cuò)部件,其使用通過所述傳輸部件從所述外部存儲器針對通道讀出的頁的糾錯(cuò)碼對該頁的波形樣本執(zhí)行檢錯(cuò),并且如果檢測到錯(cuò)誤并且該錯(cuò)誤是可校正的,則所述糾錯(cuò)部件執(zhí)行該波形樣本的錯(cuò)誤的校正;衰減部件,當(dāng)由所述糾錯(cuò)部件在針對通道的波形樣本上檢測到錯(cuò)誤并且該錯(cuò)誤是不可校正的時(shí),該衰減部件迅速衰減正在由所述樂音產(chǎn)生部件產(chǎn)生的該通道的音樂樂音;以及幅度控制部件,其針對每個(gè)通道按照該通道的幅度控制信息來控制由所述讀出部件所讀出的波形樣本的幅度包絡(luò),從而產(chǎn)生該通道的音樂樂音,其中,當(dāng)所述控制部件接收到用于新開始一個(gè)音高的音樂樂音的演奏信息時(shí),所述控制部件將多個(gè)通道中的一個(gè)通道分配給要新產(chǎn)生的音樂樂音,將對應(yīng)于所述音高的速率參數(shù)、前導(dǎo)波形地址、波形位置信息和幅度控制信息設(shè)置到所述控制寄存器部件的針對該一個(gè)通道的通道區(qū)中,并且進(jìn)一步發(fā)出針對該通道的激活指令。
2.如權(quán)利要求1所述的樂音產(chǎn)生設(shè)備,其中,當(dāng)通過所述糾錯(cuò)部件已經(jīng)檢測出任何錯(cuò)誤時(shí),所述衰減部件向所述控制部件發(fā)送錯(cuò)誤通知,該錯(cuò)誤通知包括對在所述外部存儲器中的發(fā)生了該錯(cuò)誤的頁進(jìn)行識別的信息和指示該錯(cuò)誤是否能夠被適時(shí)地校正的信息,并且其中(1)如果該錯(cuò)誤通知指示檢測到的錯(cuò)誤是可校正的錯(cuò)誤,則所述控制部件將對發(fā)生了該錯(cuò)誤的頁進(jìn)行識別的信息記錄為替代等待頁,并且(2)如果該錯(cuò)誤通知指示檢測到的錯(cuò)誤是不可校正的錯(cuò)誤,則所述控制部件發(fā)出指示不可能正常產(chǎn)生樂音的警告。
3.如權(quán)利要求2所述的樂音產(chǎn)生設(shè)備,其中,當(dāng)存在被記錄為替代等待頁的任何頁時(shí), 所述控制部件通過自動(dòng)開始的后臺處理或者通過響應(yīng)于用戶指令而開始的處理來保證在所述外部存儲器中的替代頁,讀出被記錄為替代頁的頁的波形樣本,如果在被記錄為替代頁的頁的波形樣本讀出中發(fā)生了任何錯(cuò)誤,則對所讀出的波形樣本執(zhí)行糾錯(cuò)以得到適當(dāng)?shù)牟ㄐ螛颖?,并且隨后將適當(dāng)?shù)牟ㄐ螛颖敬鎯Φ教娲撝校瑥亩蕴娲摯姘l(fā)生了錯(cuò)誤的頁。
4.如權(quán)利要求1所述的樂音產(chǎn)生設(shè)備,其中所述衰減部件對以下進(jìn)行檢測,即,所述傳輸部件沒有及時(shí)地執(zhí)行將波形樣本寫入緩沖器以便由所述讀出部件從緩沖器讀出該波形樣本,并且,如果沒有及時(shí)地執(zhí)行寫入操作以便讀出,則所述衰減部件迅速衰減正在通道中產(chǎn)生的樂音的音量,并向所述控制部件發(fā)送指示發(fā)生了傳輸錯(cuò)誤的錯(cuò)誤通知,并且其中,在接收到該錯(cuò)誤通知時(shí),所述控制部件輸出指示不可能正常產(chǎn)生樂音的警告。
5.如權(quán)利要求4所述的樂音產(chǎn)生設(shè)備,其中所述控制部件在設(shè)置要分配來產(chǎn)生樂音的通道時(shí)設(shè)置“總帶寬”和“帶寬”,總帶寬是指在基本再現(xiàn)周期之內(nèi)能夠從所述外部存儲器讀出的頁的最大數(shù)量,帶寬是指按照要從給定的一個(gè)通道中產(chǎn)生的樂音的速率參數(shù)在基本再現(xiàn)周期之內(nèi)所要讀出的波形樣本的頁的數(shù)量,在所述基本再現(xiàn)周期中以每采樣周期一個(gè)樣本的速率來讀出一頁波形樣本,并且其中所述控制部件以被分配來產(chǎn)生樂音的所有通道的帶寬之和不超過總帶寬的方式來控制對用于樂音產(chǎn)生的通道的分配,并且當(dāng)已經(jīng)接收到傳輸錯(cuò)誤的通知時(shí),所述控制部件將總帶寬減小預(yù)定的量。
6.如權(quán)利要求1至5中任一項(xiàng)所述的樂音產(chǎn)生設(shè)備,其中所述外部存儲器是由獨(dú)立集成電路構(gòu)成的NAND型閃速存儲器。
7.如權(quán)利要求1至5中任一項(xiàng)所述的樂音產(chǎn)生設(shè)備,其中所述讀出部件包括音高計(jì)數(shù)器,該音高計(jì)數(shù)器產(chǎn)生以速率參數(shù)所指示的速率前進(jìn)的計(jì)數(shù)值,并且所述傳輸指令產(chǎn)生部件在每當(dāng)計(jì)數(shù)值前進(jìn)一頁時(shí)產(chǎn)生傳輸指令。
8.一種樂音產(chǎn)生設(shè)備包括外部存儲器,其具有在虛擬地址空間中連續(xù)布置的多個(gè)頁并且存儲多個(gè)波形,每個(gè)波形由一系列波形樣本構(gòu)成并且將每個(gè)波形分成多個(gè)頁的波形樣本,所述外部存儲器的多個(gè)頁中的每一個(gè)由虛擬頁地址所指定并且存儲一頁波形樣本;樂音產(chǎn)生部件,其能夠同時(shí)產(chǎn)生多個(gè)通道的音樂樂音;以及控制部件,其根據(jù)演奏信息控制所述樂音產(chǎn)生部件中的樂音產(chǎn)生, 其中,所述樂音產(chǎn)生部件包括波形存儲器,其具有針對多個(gè)波形提供的多個(gè)前導(dǎo)波形存儲區(qū)以及針對多個(gè)通道提供的多個(gè)緩沖區(qū),一個(gè)針對波形的前導(dǎo)波形存儲區(qū)存儲該波形的前導(dǎo)頁的波形樣本,而一個(gè)針對通道的緩沖區(qū)臨時(shí)存儲用于該通道的音樂樂音的樂音產(chǎn)生的波形樣本;地址轉(zhuǎn)換表,其被提供用于將識別虛擬地址空間中的頁的虛擬頁地址轉(zhuǎn)換成真實(shí)頁地址;控制寄存器部件,其具有針對多個(gè)通道提供的多個(gè)通道區(qū),每個(gè)針對通道的通道區(qū)存儲由所述控制部件設(shè)置的、用于控制該通道的音樂樂音的樂音產(chǎn)生的參數(shù),通道的參數(shù)包括速率參數(shù),其用于控制音樂樂音的音高;前導(dǎo)波形地址,其指定了在所述波形存儲器中的前導(dǎo)波形區(qū)域;波形位置信息,其指示在所述外部存儲器中的波形的位置;以及幅度控制信息,其用于控制音樂樂音的幅度包絡(luò);讀出部件,其響應(yīng)于針對每個(gè)通道的激活指令,以與該通道的速率參數(shù)對應(yīng)的速率來首先從所述波形存儲器中的由該通道的前導(dǎo)波形地址所指定的前導(dǎo)波形存儲區(qū)讀出前導(dǎo)頁的波形樣本,并且隨后在所述波形存儲器中從對應(yīng)于該通道的緩沖區(qū)以相同的速率重復(fù)地讀出波形樣本,所述讀出部件能夠在所述波形存儲器中同時(shí)針對多個(gè)通道以分時(shí)多路復(fù)用的方式讀出波形樣本;下一地址產(chǎn)生部件,其針對每個(gè)通道基于該通道的波形位置信息來產(chǎn)生對下一個(gè)要在所述外部存儲器的虛擬地址空間中讀出的一頁波形樣本進(jìn)行指定的虛擬頁地址,參考地址轉(zhuǎn)換表來將虛擬頁地址轉(zhuǎn)換成真實(shí)頁地址,并且隨后將轉(zhuǎn)換后的真實(shí)頁地址設(shè)置到下一頁地址存儲部件中;傳輸指令產(chǎn)生部件,其針對每個(gè)通道在每當(dāng)由所述讀出部件針對該通道所執(zhí)行的波形樣本讀出前進(jìn)了一頁時(shí)產(chǎn)生傳輸指令;傳輸隊(duì)列,其響應(yīng)于任何通道的激活指令和傳輸指令,將該通道的通道號入隊(duì)到其中;傳輸部件,其基于先進(jìn)先出方式從所述傳輸隊(duì)列取出通道的通道號,隨后以突發(fā)方式從所述外部存儲器讀出由設(shè)置在下一頁地址存儲部件中的該通道的下一頁地址信息所指定的頁的波形樣本,并且隨后將讀出的波形樣本寫入與該通道相對應(yīng)的緩沖區(qū)中;以及幅度控制部件,其針對每個(gè)通道按照該通道的幅度控制信息來控制由所述讀出部件所讀出的波形樣本的幅度包絡(luò),從而產(chǎn)生該通道的音樂樂音,其中,當(dāng)所述控制部件接收到用于新開始一個(gè)音高的音樂樂音的演奏信息時(shí),所述控制部件將多個(gè)通道中的一個(gè)通道分配給要新產(chǎn)生的音樂樂音,將對應(yīng)于所述音高的速率參數(shù)、前導(dǎo)波形地址、波形位置信息和幅度控制信息設(shè)置到所述控制寄存器部件的針對該一個(gè)通道的通道區(qū)中,并且進(jìn)一步發(fā)出針對該通道的激活指令。
9.如權(quán)利要求8所述的樂音產(chǎn)生設(shè)備,其中所述地址轉(zhuǎn)換表原始地存儲在所述外部存儲器中,并且,在所述樂音產(chǎn)生設(shè)備啟動(dòng)之時(shí),從所述外部存儲器讀出所述地址轉(zhuǎn)換表并且將其存儲到內(nèi)部的地址轉(zhuǎn)換表存儲部件中。
10.如權(quán)利要求8所述的樂音產(chǎn)生設(shè)備,其中所述地址轉(zhuǎn)換表存儲部件被提供在所述波形存儲器中。
11.如權(quán)利要求8所述的樂音產(chǎn)生設(shè)備,其還包括糾錯(cuò)部件,其使用通過所述傳輸部件從所述外部存儲器讀出的頁的糾錯(cuò)碼對該頁的波形樣本執(zhí)行檢錯(cuò),并且如果檢測到錯(cuò)誤并且該錯(cuò)誤是可校正的,則所述糾錯(cuò)部件執(zhí)行該波形樣本的錯(cuò)誤的校正;衰減部件,當(dāng)由所述糾錯(cuò)部件在針對通道的波形樣本上檢測到錯(cuò)誤并且該錯(cuò)誤是可校正的時(shí),該衰減部件向所述控制部件發(fā)送錯(cuò)誤通知,該錯(cuò)誤通知包括對已經(jīng)檢測到可校正錯(cuò)誤進(jìn)行指示并且對在所述外部存儲器中發(fā)生了該錯(cuò)誤的頁進(jìn)行識別的信息,并且其中(1)所述控制部件將對發(fā)生了可校正錯(cuò)誤的頁進(jìn)行識別的信息記錄為替代等待頁,(2)如果存在當(dāng)前被記錄為替代等待頁的任何頁,所述控制部件通過自動(dòng)開始的后臺處理或者通過響應(yīng)于用戶指令而開始的處理來保證在所述外部存儲器中的替代頁,讀出被記錄為替代頁的頁的波形樣本,如果在被記錄為替代頁的頁的波形樣本讀出中發(fā)生了錯(cuò)誤,則執(zhí)行糾錯(cuò)以得到適當(dāng)?shù)牟ㄐ螛颖?,并且隨后將適當(dāng)?shù)牟ㄐ螛颖敬鎯Φ教娲撝?,從而以替代頁代替發(fā)生了錯(cuò)誤的頁,并且(3)當(dāng)替代等待頁的虛擬頁地址要被轉(zhuǎn)換成真實(shí)頁地址時(shí),所述控制部件以能夠獲取替代頁的真實(shí)頁地址的方式來修改所述地址轉(zhuǎn)換表。
12.如權(quán)利要求8至11中任一項(xiàng)所述的樂音產(chǎn)生設(shè)備,其中所述外部存儲器是由獨(dú)立集成電路構(gòu)成的NAND型閃速存儲器。
13.如權(quán)利要求8至11中任一項(xiàng)所述的樂音產(chǎn)生設(shè)備,其中所述讀出部件包括音高計(jì)數(shù)器,該音高計(jì)數(shù)器產(chǎn)生以速率參數(shù)所指示的速率前進(jìn)的計(jì)數(shù)值,并且所述傳輸指令產(chǎn)生部件在每當(dāng)計(jì)數(shù)值前進(jìn)一頁時(shí)產(chǎn)生傳輸指令。
14.一種樂音產(chǎn)生設(shè)備包括外部存儲器,其具有在虛擬地址空間中連續(xù)布置的多個(gè)頁并且存儲多個(gè)波形,每個(gè)波形由一系列波形樣本構(gòu)成并且將每個(gè)波形分成多個(gè)頁的波形樣本,所述外部存儲器的多個(gè)頁中的每一個(gè)由虛擬頁地址所指定并且存儲一頁波形樣本和下一個(gè)要讀出的下一頁的真實(shí)頁地址;樂音產(chǎn)生部件,其能夠同時(shí)產(chǎn)生多個(gè)通道的音樂樂音;以及控制部件,其根據(jù)演奏信息控制所述樂音產(chǎn)生部件中的樂音產(chǎn)生,其中,所述樂音產(chǎn)生部件包括波形存儲器,其具有針對多個(gè)波形提供的多個(gè)前導(dǎo)波形存儲區(qū)以及針對多個(gè)通道提供的多個(gè)緩沖區(qū),一個(gè)針對波形的前導(dǎo)波形存儲區(qū)存儲該波形的前導(dǎo)頁的波形樣本,而一個(gè)針對通道的緩沖區(qū)臨時(shí)存儲用于該通道的音樂樂音的樂音產(chǎn)生的波形樣本;控制寄存器部件,其具有針對多個(gè)通道提供的多個(gè)通道區(qū),每個(gè)針對通道的通道區(qū)存儲由所述控制部件設(shè)置的、用于控制該通道的音樂樂音的樂音產(chǎn)生的參數(shù),通道的參數(shù)包括速率參數(shù),其用于控制音樂樂音的音高;前導(dǎo)波形地址,其指定了在所述波形存儲器中的前導(dǎo)波形區(qū)域;以及幅度控制信息,其用于控制音樂樂音的幅度包絡(luò);讀出部件,其響應(yīng)于針對每個(gè)通道的激活指令,以與該通道的速率參數(shù)對應(yīng)的速率來首先從所述波形存儲器的由前導(dǎo)波形地址所指定的前導(dǎo)波形存儲區(qū)讀出前導(dǎo)頁的波形樣本,并且隨后從所述波形存儲器的對應(yīng)于該通道的緩沖區(qū)以相同的速率重復(fù)地讀出波形樣本;傳輸指令產(chǎn)生部件,其針對每個(gè)通道在每當(dāng)由所述讀出部件針對該通道所執(zhí)行的波形樣本讀出前進(jìn)了一頁時(shí)產(chǎn)生傳輸指令;傳輸隊(duì)列,其響應(yīng)于任何通道的激活指令和傳輸指令,將該通道的通道號入隊(duì)到其中;下一頁地址存儲部件,其針對每個(gè)通道在其中存儲下一個(gè)要從所述外部存儲器讀出的頁的真實(shí)頁地址;第一下一頁地址設(shè)置部件,其在每個(gè)通道中開始產(chǎn)生樂音之時(shí),將要被首先讀出的頁的真實(shí)頁地址寫入所述下一頁地址存儲部件中;傳輸部件,其基于先進(jìn)先出方式從所述傳輸隊(duì)列取出通道的通道號,隨后從所述外部存儲器讀出設(shè)置在所述下一頁地址存儲部件中的在該通道中下一個(gè)要被讀出的真實(shí)頁地址的頁的波形樣本,并且隨后將讀出的波形樣本寫入所述波形存儲器的與該通道號指示的通道相對應(yīng)的緩沖器中;第二下一頁地址設(shè)置部件,其針對每個(gè)通道并且在下一頁的波形樣本已經(jīng)被所述傳輸部件從所述外部存儲器讀出時(shí),將所讀出的頁中包括的下一頁的真實(shí)頁地址覆寫到所述下一頁地址存儲部件中;以及幅度控制部件,其針對每個(gè)通道按照幅度控制信息來控制由所述讀出部件所讀出的波形樣本的幅度包絡(luò),從而產(chǎn)生該通道的音樂樂音,其中,當(dāng)所述控制部件接收到用于新開始一個(gè)音高的音樂樂音的演奏信息時(shí),所述控制部件將多個(gè)通道中的一個(gè)通道分配給要新產(chǎn)生的音樂樂音,將對應(yīng)于所述樂音音高的速率參數(shù)、前導(dǎo)波形地址和幅度控制信息設(shè)置到所述控制寄存器部件的針對該一個(gè)通道的通道區(qū)中,并且進(jìn)一步發(fā)出針對該通道的激活指令。
15.如權(quán)利要求14所述的樂音產(chǎn)生設(shè)備,其中所述外部存儲器針對多種類型的波形中的每一種具有在虛擬地址空間中連續(xù)布置的所述多個(gè)頁,并且所述樂音產(chǎn)生設(shè)備還包括地址轉(zhuǎn)換表,該地址轉(zhuǎn)換表被提供來用于針對多種類型的波形中的每一個(gè)在正在再現(xiàn)虛擬地址空間中的前導(dǎo)頁的同時(shí)將下一個(gè)要被讀出的第二頁的虛擬頁地址轉(zhuǎn)換成真實(shí)頁地址,其中所述控制部件按照演奏信息來將所述外部存儲器中的波形位置信息設(shè)置到所述控制寄存器部件中與所分配的通道對應(yīng)的區(qū)域中,所述波形位置信息指示了要用來在該通道中產(chǎn)生樂音的波形類型的位置,并且其中,在樂音產(chǎn)生開始之時(shí),所述第一下一頁地址設(shè)置部件參考所述地址轉(zhuǎn)換表按照波形位置信息來獲取首先要被傳輸?shù)牡诙摰恼鎸?shí)頁地址,并且隨后將所獲取的第二頁的真實(shí)頁地址寫入所述下一頁地址存儲部件中。
16.如權(quán)利要求14所述的樂音產(chǎn)生設(shè)備,其中針對多種類型的波形中的每一個(gè),所述控制部件保留首先要從所述外部存儲器讀出并隨后被傳輸?shù)骄彌_器的第二頁的真實(shí)頁地址,并且在樂音產(chǎn)生開始之時(shí),所述控制部件將第二頁的真實(shí)頁地址供給所述第一下一頁地址設(shè)置部件,并且所述第一下一頁地址設(shè)置部件將所供給的真實(shí)頁地址寫入所述下一頁地址存儲部件。
17.如權(quán)利要求14所述的樂音產(chǎn)生設(shè)備,其還包括糾錯(cuò)部件,其使用通過所述傳輸部件從所述外部存儲器針對通道讀出的頁的糾錯(cuò)碼對該頁的波形樣本執(zhí)行檢錯(cuò),并且如果檢測到錯(cuò)誤并且該錯(cuò)誤是可校正的,則所述糾錯(cuò)部件執(zhí)行該波形樣本的錯(cuò)誤的校正;衰減部件,當(dāng)由所述糾錯(cuò)部件在針對通道的波形樣本上檢測到錯(cuò)誤并且該錯(cuò)誤是可校正的時(shí),該衰減部件向所述控制部件發(fā)送錯(cuò)誤通知,該錯(cuò)誤通知包括對已經(jīng)檢測到可校正錯(cuò)誤進(jìn)行指示并且對在所述外部存儲器中發(fā)生了該錯(cuò)誤的頁進(jìn)行識別的信息,并且其中(1)所述控制部件將對發(fā)生了可校正錯(cuò)誤的頁進(jìn)行識別的信息記錄為替代等待頁,(2)如果存在當(dāng)前被記錄為替代等待頁的任何頁,所述控制部件通過自動(dòng)開始的后臺處理或者通過響應(yīng)于用戶指令而開始的處理來保證在所述外部存儲器中的替代頁,讀出被記錄為替代頁的頁的波形樣本,如果在被記錄為替代頁的頁的波形樣本讀出中發(fā)生了錯(cuò)誤,則執(zhí)行糾錯(cuò)以得到適當(dāng)?shù)牟ㄐ螛颖?,并且隨后將適當(dāng)?shù)牟ㄐ螛颖敬鎯Φ教娲撝?,從而以替代頁代替發(fā)生了錯(cuò)誤的頁,并且(3)所述控制部件將替代等待頁之前的一頁中所包括的下一頁的真實(shí)頁地址修改成替代等待頁的真實(shí)頁地址。
18.如權(quán)利要求14至17中任一項(xiàng)所述的樂音產(chǎn)生設(shè)備,其中所述外部存儲器是由獨(dú)立集成電路構(gòu)成的NAND型閃速存儲器。
19.如權(quán)利要求14至17中任一項(xiàng)所述的樂音產(chǎn)生設(shè)備,其中所述讀出部件包括音高計(jì)數(shù)器,該音高計(jì)數(shù)器產(chǎn)生以速率參數(shù)所指示的速率前進(jìn)的計(jì)數(shù)值,并且所述傳輸指令產(chǎn)生部件在每當(dāng)計(jì)數(shù)值前進(jìn)一頁時(shí)產(chǎn)生傳輸指令。
全文摘要
本發(fā)明提供了一種樂音產(chǎn)生設(shè)備。存儲在NAND型閃速存儲器之類的外部存儲器中的波形數(shù)據(jù)經(jīng)由緩沖器從該外部存儲器傳輸?shù)絻?nèi)部波形存儲器,并從該波形存儲器中被讀出以再現(xiàn)樂音。每當(dāng)從波形存儲器讀出(再現(xiàn))的數(shù)據(jù)前進(jìn)一頁,就產(chǎn)生傳輸指令,并將該傳輸指令登記到傳輸隊(duì)列中。因此,響應(yīng)于該隊(duì)列中的傳輸指令,存儲在外部存儲器中的波形數(shù)據(jù)被逐頁讀出并被存儲到存儲器中。外部存儲器按頁將存儲波形數(shù)據(jù)存儲在其中,每頁附有糾錯(cuò)碼。當(dāng)一頁的波形數(shù)據(jù)從外部存儲器傳輸?shù)讲ㄐ未鎯ζ鲿r(shí),使用糾錯(cuò)碼來檢測錯(cuò)誤,并且如果錯(cuò)誤是可校正的,則校正該錯(cuò)誤。如果錯(cuò)誤是不可校正的,則迅速衰減正產(chǎn)生的樂音的音量,或者發(fā)出警告。
文檔編號G11C7/10GK102237126SQ20111007600
公開日2011年11月9日 申請日期2011年3月23日 優(yōu)先權(quán)日2010年3月23日
發(fā)明者白濱太郎 申請人:雅馬哈株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1