欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)輸入輸出控制裝置及半導體存儲裝置系統(tǒng)的制作方法

文檔序號:6423268閱讀:186來源:國知局
專利名稱:數(shù)據(jù)輸入輸出控制裝置及半導體存儲裝置系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)輸入輸出控制裝置及半導體存儲裝置系統(tǒng),特別地說,涉及將從主機裝置輸入的數(shù)據(jù)編碼為規(guī)定糾錯碼并在非易失性的半導體存儲裝置存儲,并且,輸入半導體存儲裝置所存儲的數(shù)據(jù),對輸入數(shù)據(jù)用規(guī)定糾錯碼糾錯并解碼后向主機裝置輸出的數(shù)據(jù)輸入輸出控制裝置及具備這樣的數(shù)據(jù)輸入輸出控制裝置的半導體存儲裝置系統(tǒng)。
背景技術(shù)
傳統(tǒng),作為該種數(shù)據(jù)輸入輸出控制裝置,提案了根據(jù)來自CPU的請求而控制閃速存儲器的裝置,其中搭載了糾錯電路,將輸入的數(shù)據(jù)寫入閃速存儲器時,按512字節(jié)依次讀入輸入的數(shù)據(jù),編碼為522字節(jié)的糾錯碼后向閃速存儲器寫入,從閃速存儲器讀出數(shù)據(jù)時,在從閃速存儲器讀出的數(shù)據(jù)產(chǎn)生錯誤時采用糾錯碼糾正錯誤并將讀出數(shù)據(jù)解碼后輸出 (例如,參照非專利文獻1)。該裝置中,通過搭載這樣的糾錯電路,閃速存儲器所存儲的數(shù)據(jù)因為任何要因而產(chǎn)生反相的錯誤時,可糾正產(chǎn)生的錯誤。非專利文獻 1 :Toru Tanzawa, Tomoharu Tanaka, Ken Takeuchi, Riichiro Shirota, Seiichi Aritomo, Hiroshi Watanabe, Gertjan Hemink, Kazuhiro Shimizu, Shinji Sato, Yuji Takeuchi, and Kazunori Ohuchi, “ACompact On-Chip ECC for Low Cost Flash Memories”,IEEE JOURNAL OF SOLID-STATE CIRCUITS,VOL. 32,NO. 5,MAY 1997但是,上述的數(shù)據(jù)輸入輸出控制裝置中,將糾錯碼的碼長作為規(guī)定長度,采用這樣的規(guī)定長度的糾錯碼進行數(shù)據(jù)的糾錯,因此,可糾正比特數(shù)存在上限,在閃速存儲器存儲的數(shù)據(jù)產(chǎn)生超過可糾正比特數(shù)的上限的錯誤時,無法糾正這樣的錯誤。作為糾正更多的錯誤的方法,考慮采用更長碼長的糾錯碼的方法,但是該場合,糾錯電路中進行數(shù)據(jù)編碼、解碼所需處理時間增大,糾錯電路的消耗功率增大。

發(fā)明內(nèi)容
本發(fā)明的數(shù)據(jù)輸入輸出控制裝置及半導體存儲裝置系統(tǒng),主要目的是在半導體存儲裝置存儲的數(shù)據(jù)產(chǎn)生錯誤時,可以糾正更多的錯誤。本發(fā)明的數(shù)據(jù)輸入輸出控制裝置及半導體存儲裝置系統(tǒng)為了實現(xiàn)上述的目的,采用以下的手段。本發(fā)明的第1數(shù)據(jù)輸入輸出控制裝置,將從主機裝置輸入的數(shù)據(jù)編碼為規(guī)定糾錯碼并在非易失性的半導體存儲裝置存儲,并且輸入在上述半導體存儲裝置存儲的數(shù)據(jù),用上述規(guī)定糾錯碼對該輸入數(shù)據(jù)糾錯并解碼,向上述主機裝置輸出,其特征在于,具備數(shù)據(jù)糾正輸入輸出電路,其具備糾錯信息存儲部,其存儲編碼為上述規(guī)定糾錯碼的數(shù)據(jù)的長度即執(zhí)行用數(shù)據(jù)長度以及上述規(guī)定糾錯碼的長度即執(zhí)行用碼長;編碼部,其按上述存儲的執(zhí)行用數(shù)據(jù)長度依次讀入輸入的數(shù)據(jù),將該讀入數(shù)據(jù)編碼為上述執(zhí)行用碼長的上述規(guī)定糾錯碼,向上述半導體存儲裝置輸出;解碼部,其按上述存儲的執(zhí)行用碼長依次讀入輸入的數(shù)據(jù),通過上述規(guī)定糾錯碼對該讀入數(shù)據(jù)糾錯并解碼,向上述主機裝置輸出;錯誤檢測部,其按上述存儲的執(zhí)行用碼長依次讀入輸入的數(shù)據(jù),通過上述規(guī)定糾錯碼對該讀入的η個(η是1以上的整數(shù))數(shù)據(jù),檢測上述讀入數(shù)據(jù)中發(fā)生錯誤的數(shù)據(jù)數(shù)即錯誤數(shù)據(jù)數(shù);和存儲處理部,其在上述檢測的錯誤數(shù)據(jù)數(shù)超過預(yù)定的上限錯誤數(shù)時,將可糾正及檢測比由1 個上述執(zhí)行用碼長的規(guī)定糾錯碼可糾正及檢測的錯誤數(shù)的上限多的錯誤且數(shù)據(jù)的長度比上述糾錯信息存儲部存儲的執(zhí)行用數(shù)據(jù)長度長的數(shù)據(jù)的長度以及上述規(guī)定糾錯碼的碼長, 分別作為上述執(zhí)行用數(shù)據(jù)長度以及上述執(zhí)行用碼長在上述糾錯信息存儲部存儲;和控制電路,其在從上述主機裝置輸入請求向上述半導體存儲裝置進行數(shù)據(jù)寫入的寫入請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得從上述主機裝置輸入的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的編碼部,從上述數(shù)據(jù)糾正輸入輸出電路的編碼部輸出的數(shù)據(jù)向上述半導體存儲裝置輸出并且該輸出的數(shù)據(jù)在上述半導體存儲裝置存儲,在從上述主機裝置輸入請求將上述半導體存儲裝置存儲的數(shù)據(jù)讀出的讀出請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得上述半導體存儲裝置存儲的數(shù)據(jù)被讀出,該讀出的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的解碼部,從該數(shù)據(jù)糾正輸入輸出電路的解碼部輸出的數(shù)據(jù)向上述主機裝置輸出,在從上述主機裝置輸入請求刪除上述半導體存儲裝置存儲的數(shù)據(jù)的刪除請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得上述半導體存儲裝置存儲的數(shù)據(jù)被讀出,該讀出的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的錯誤檢測部后,將上述半導體存儲裝置存儲的數(shù)據(jù)刪除。該本發(fā)明的第1半導體存儲裝置的控制裝置中,從主機裝置輸入請求向半導體存儲裝置寫入數(shù)據(jù)的寫入請求信號時,控制數(shù)據(jù)糾正輸入輸出電路和半導體存儲裝置,使得從主機裝置輸入的數(shù)據(jù)輸入數(shù)據(jù)糾正輸入輸出電路的編碼部,從數(shù)據(jù)糾正輸入輸出電路的編碼部輸出的數(shù)據(jù)向半導體存儲裝置輸出并將該輸出的數(shù)據(jù)在半導體存儲裝置存儲。數(shù)據(jù)糾正輸入輸出電路的編碼部按存儲的執(zhí)行用數(shù)據(jù)長度依次讀入輸入的數(shù)據(jù),將該讀入數(shù)據(jù)編碼為執(zhí)行用碼長的規(guī)定糾錯碼,向半導體存儲裝置輸出。從而,可將編碼為執(zhí)行用碼長的規(guī)定糾錯碼的數(shù)據(jù)在半導體存儲裝置存儲。另外,從主機裝置輸入請求讀出半導體存儲裝置存儲的數(shù)據(jù)的讀出請求信號時,控制數(shù)據(jù)糾正輸入輸出電路和半導體存儲裝置,使得半導體存儲裝置存儲的數(shù)據(jù)被讀出,讀出的數(shù)據(jù)輸入數(shù)據(jù)糾正輸入輸出電路的解碼錯誤檢測部,從數(shù)據(jù)糾正輸入輸出電路的解碼部輸出的數(shù)據(jù)向主機裝置輸出。輸入了數(shù)據(jù)的數(shù)據(jù)糾正輸入輸出電路的解碼部按存儲的執(zhí)行用碼長依次讀入輸入的數(shù)據(jù),通過規(guī)定糾錯碼對該讀入數(shù)據(jù)糾錯并解碼后向主機裝置輸出,因此,可向主機裝置輸出糾錯的數(shù)據(jù)。從主機裝置輸入請求刪除半導體存儲裝置存儲的數(shù)據(jù)的刪除請求信號時,控制數(shù)據(jù)糾正輸入輸出電路和半導體存儲裝置,使得讀出半導體存儲裝置存儲的數(shù)據(jù),讀出的數(shù)據(jù)輸入數(shù)據(jù)糾正輸入輸出電路的錯誤檢測部后,刪除半導體存儲裝置存儲的數(shù)據(jù)。輸入了數(shù)據(jù)的數(shù)據(jù)糾正輸入輸出電路的錯誤檢測部按存儲的執(zhí)行用碼長依次讀入輸入的數(shù)據(jù),對讀入的η個(η 是值1以上的整數(shù))的數(shù)據(jù),通過規(guī)定糾錯碼檢測讀入的數(shù)據(jù)中錯誤產(chǎn)生的數(shù)據(jù)數(shù)即錯誤數(shù)據(jù)數(shù),數(shù)據(jù)糾正輸入輸出電路的存儲處理部在檢測的錯誤數(shù)據(jù)數(shù)超過預(yù)定的上限錯誤數(shù)時,將可糾正及檢測比由1個執(zhí)行用碼長的規(guī)定糾錯碼可糾正及檢測的錯誤數(shù)的上限多的錯誤且數(shù)據(jù)的長度比糾錯信息存儲部存儲的執(zhí)行用數(shù)據(jù)長度長的數(shù)據(jù)的長度及規(guī)定糾錯碼的碼長分別作為執(zhí)行用數(shù)據(jù)長度及執(zhí)行用碼長,在糾錯信息存儲部存儲。在檢測的錯誤數(shù)據(jù)數(shù)超過上限錯誤數(shù)時,接著,輸入寫入請求信號后,數(shù)據(jù)糾正輸入輸出電路的編碼部按更長的執(zhí)行用數(shù)據(jù)長度依次讀入輸入的數(shù)據(jù),將該讀入的數(shù)據(jù)編碼為更長的執(zhí)行用碼長的規(guī)定糾錯碼后向半導體存儲裝置輸出,接著,輸入讀出請求信號時,數(shù)據(jù)糾正輸入輸出電路的解碼部可由更長的執(zhí)行用碼長的規(guī)定糾錯碼對數(shù)據(jù)糾錯。從而,可糾正更多的錯誤。另外,「上限錯誤數(shù)」包含由η個執(zhí)行用碼長的規(guī)定糾錯碼可糾正的錯誤數(shù)的上限值或者比該上限值小若干的值。這樣的本發(fā)明的第1數(shù)據(jù)輸入輸出控制裝置中,上述數(shù)據(jù)糾正輸入輸出電路的存儲處理部,在上述檢測的錯誤數(shù)超過上述上限錯誤數(shù)時,將上述存儲的執(zhí)行用數(shù)據(jù)長度的m 倍(m是2以上的整數(shù))的數(shù)據(jù)長度作為上述執(zhí)行用數(shù)據(jù)長度,在上述糾錯信息存儲部存儲。本發(fā)明的第2數(shù)據(jù)輸入輸出控制裝置,將從主機裝置輸入的數(shù)據(jù)編碼為規(guī)定糾錯碼并在非易失性的半導體存儲裝置存儲,并且輸入在上述半導體存儲裝置存儲的數(shù)據(jù),用上述規(guī)定糾錯碼對該輸入數(shù)據(jù)糾錯并解碼,向上述主機裝置輸出,其特征在于,具備寫入次數(shù)計數(shù)電路,其對向上述半導體存儲裝置寫入數(shù)據(jù)的次數(shù)和將上述半導體存儲裝置存儲的數(shù)據(jù)刪除的次數(shù)之和的次數(shù)即寫入刪除次數(shù)計數(shù);數(shù)據(jù)糾正輸入輸出電路,其具備糾錯信息存儲部,其存儲編碼為上述規(guī)定糾錯碼的數(shù)據(jù)的長度即執(zhí)行用數(shù)據(jù)長度以及上述規(guī)定糾錯碼的長度即執(zhí)行用碼長;編碼部,其按上述存儲的執(zhí)行用數(shù)據(jù)長度依次讀入輸入的數(shù)據(jù),將該讀入數(shù)據(jù)編碼為上述執(zhí)行用碼長的上述規(guī)定糾錯碼,向上述半導體存儲裝置輸出;解碼部,其按上述存儲的執(zhí)行用碼長依次讀入輸入的數(shù)據(jù),通過上述規(guī)定糾錯碼對該讀入數(shù)據(jù)糾錯并解碼,向上述主機裝置輸出;和存儲處理部,其在上述計數(shù)的寫入刪除次數(shù)超過推定的在η個(η是1以上的整數(shù))執(zhí)行用碼長的數(shù)據(jù)中產(chǎn)生比預(yù)定的上限錯誤數(shù)多的錯誤的寫入刪除次數(shù)即判定用閾值時,將可糾正及檢測比由1個上述執(zhí)行用碼長的規(guī)定糾錯碼可糾正及檢測的錯誤數(shù)的上限多的錯誤且數(shù)據(jù)的長度比上述糾錯信息存儲部存儲的執(zhí)行用數(shù)據(jù)長度長的數(shù)據(jù)的長度以及上述規(guī)定糾錯碼的碼長,分別作為上述執(zhí)行用數(shù)據(jù)長度以及上述執(zhí)行用碼長在上述糾錯信息存儲部存儲;和控制電路,其在從上述主機裝置輸入請求向上述半導體存儲裝置進行數(shù)據(jù)寫入的寫入請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得從上述主機裝置輸入的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的編碼部,從上述數(shù)據(jù)糾正輸入輸出電路的編碼部輸出的數(shù)據(jù)向上述半導體存儲裝置輸出并且該輸出的數(shù)據(jù)在上述半導體存儲裝置存儲,在從上述主機裝置輸入請求將上述半導體存儲裝置存儲的數(shù)據(jù)讀出的讀出請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得上述半導體存儲裝置存儲的數(shù)據(jù)被讀出,該讀出的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的解碼部,從該數(shù)據(jù)糾正輸入輸出電路的解碼部輸出的數(shù)據(jù)向上述主機裝置輸出,在從上述主機裝置輸入請求刪除上述半導體存儲裝置存儲的數(shù)據(jù)的刪除請求信號時,控制上述半導體存儲裝置,使得上述半導體存儲裝置存儲的數(shù)據(jù)被刪除。該本發(fā)明的第2半導體存儲裝置的控制裝置中,從主機裝置輸入請求向半導體存儲裝置寫入數(shù)據(jù)的寫入請求信號時,控制數(shù)據(jù)糾正輸入輸出電路和半導體存儲裝置,使得從主機裝置輸入的數(shù)據(jù)輸入數(shù)據(jù)糾正輸入輸出電路的編碼部,從數(shù)據(jù)糾正輸入輸出電路的編碼部輸出的數(shù)據(jù)向半導體存儲裝置輸出并將該輸出的數(shù)據(jù)在半導體存儲裝置存儲。數(shù)據(jù)糾正輸入輸出電路的編碼部按存儲的執(zhí)行用數(shù)據(jù)長度依次讀入輸入的數(shù)據(jù),將該讀入數(shù)據(jù)編碼為執(zhí)行用碼長的規(guī)定糾錯碼,向半導體存儲裝置輸出。從而,可將編碼為執(zhí)行用碼長的規(guī)定糾錯碼的數(shù)據(jù)在半導體存儲裝置存儲。另外,從主機裝置輸入請求讀出半導體存儲裝置存儲的數(shù)據(jù)的讀出請求信號時,控制數(shù)據(jù)糾正輸入輸出電路和半導體存儲裝置,使得半導體存儲裝置存儲的數(shù)據(jù)被讀出,讀出的數(shù)據(jù)輸入數(shù)據(jù)糾正輸入輸出電路的解碼部,從數(shù)據(jù)糾正輸入輸出電路的解碼部輸出的數(shù)據(jù)向主機裝置輸出。輸入了數(shù)據(jù)的數(shù)據(jù)糾正輸入輸出電路的解碼部按存儲的執(zhí)行用碼長依次讀入輸入的數(shù)據(jù),通過規(guī)定糾錯碼對該讀入數(shù)據(jù)糾錯并解碼后向主機裝置輸出,因此,可向主機裝置輸出糾錯的數(shù)據(jù)。然后,數(shù)據(jù)糾正輸入輸出電路的存儲處理部在計數(shù)的寫入刪除次數(shù)超過推定在η個(η是值1以上的整數(shù))執(zhí)行用碼長的數(shù)據(jù)中產(chǎn)生比預(yù)定的上限錯誤數(shù)多的錯誤的寫入刪除次數(shù)即判定用閾值時,將可糾正及檢測比由1個執(zhí)行用碼長的規(guī)定糾錯碼可糾正及檢測的錯誤數(shù)的上限多的錯誤且數(shù)據(jù)的長度比糾錯信息存儲部存儲的執(zhí)行用數(shù)據(jù)長度長的數(shù)據(jù)的長度及規(guī)定糾錯碼的碼長分別作為執(zhí)行用數(shù)據(jù)長度及執(zhí)行用碼長,在糾錯信息存儲部存儲。從而,在計數(shù)的寫入刪除次數(shù)超過判定用閾值時,接著,在輸入寫入請求信號時,數(shù)據(jù)糾正輸入輸出電路的編碼部按更長的執(zhí)行用數(shù)據(jù)長度依次讀入輸入的數(shù)據(jù),將該讀入的數(shù)據(jù)編碼為更長的執(zhí)行用碼長的規(guī)定糾錯碼后向半導體存儲裝置輸出,接著,在輸入讀出請求信號時,數(shù)據(jù)糾正輸入輸出電路的解碼部可由更長的執(zhí)行用碼長的規(guī)定糾錯碼對數(shù)據(jù)糾錯。從而,可糾正更多的錯誤。另外,「上限錯誤數(shù)」包含由η個執(zhí)行用碼長的規(guī)定糾錯碼可糾正的錯誤數(shù)的上限值或者比該上限值小若干的值。這樣的本發(fā)明的第2數(shù)據(jù)輸入輸出控制裝置中,上述數(shù)據(jù)糾正輸入輸出電路的存儲處理部,在上述計數(shù)的寫入刪除次數(shù)超過上述判定用閾值時,將上述存儲的執(zhí)行用數(shù)據(jù)長度的m倍(m是2以上的整數(shù))的數(shù)據(jù)長度作為上述執(zhí)行用數(shù)據(jù)長度,在上述糾錯信息存儲部存儲。這樣的本發(fā)明的第1或第2數(shù)據(jù)輸入輸出控制裝置中,上述數(shù)據(jù)糾正輸入輸出電路的存儲處理部,在上述糾錯信息存儲部存儲上述執(zhí)行用數(shù)據(jù)長度和上述執(zhí)行用碼長,上述執(zhí)行用數(shù)據(jù)長度和上述執(zhí)行用碼長以上述糾錯信息存儲部中存儲的執(zhí)行用碼長比預(yù)定的上限功率容許碼長短的方式設(shè)定,上述預(yù)定的上限功率容許碼長是上述數(shù)據(jù)糾正輸入輸出電路消耗的功率成為上述數(shù)據(jù)糾正輸入輸出電路容許消耗的容許功率以下的上述執(zhí)行用碼長的上限。由于存在糾錯信息存儲部存儲的執(zhí)行用碼長越長則數(shù)據(jù)糾正輸入輸出電路消耗的功率越大的傾向,因此,通過在糾錯信息存儲部存儲以使糾錯信息存儲部存儲的執(zhí)行用碼長比上限功率容許碼長短的方式設(shè)定的執(zhí)行用數(shù)據(jù)長度及執(zhí)行用碼長,可以在將數(shù)據(jù)糾正輸入輸出電路消耗的功率抑制在容許功率以下的狀態(tài)進行糾錯。另外,本發(fā)明的第1或第2數(shù)據(jù)輸入輸出控制裝置中,上述數(shù)據(jù)糾正輸入輸出電路的存儲處理部,在上述糾錯信息存儲部存儲上述執(zhí)行用數(shù)據(jù)長度和上述執(zhí)行用碼長,上述執(zhí)行用數(shù)據(jù)長度和上述執(zhí)行用碼長以上述糾錯信息存儲部中存儲的執(zhí)行用碼長比預(yù)定的上限速度容許碼長短的方式設(shè)定,上述預(yù)定的上限速度容許碼長是讀出速度成為上述數(shù)據(jù)糾正輸入輸出電路容許的容許讀出速度以下的上述執(zhí)行用碼長的上限,上述讀出速度是上述數(shù)據(jù)糾正輸入輸出電路在單位時間從上述半導體存儲裝置可讀出的數(shù)據(jù)量。由于存在糾錯信息存儲部存儲的執(zhí)行用碼長越長則讀出速度越慢的傾向,因此,通過在糾錯信息存儲部存儲以使糾錯信息存儲部存儲的執(zhí)行用碼長比上限速度容許碼長短的方式設(shè)定的執(zhí)行用數(shù)據(jù)長度及執(zhí)行用碼長,可以在將數(shù)據(jù)糾正輸入輸出電路的讀出速度抑制為比容許讀出速度慢的狀態(tài)進行糾錯。而且,本發(fā)明的第1或第2數(shù)據(jù)輸入輸出控制裝置中,上述數(shù)據(jù)糾正輸入輸出電路的存儲處理部,在上述糾錯信息存儲部存儲上述執(zhí)行用數(shù)據(jù)長度和上述執(zhí)行用碼長,上述執(zhí)行用數(shù)據(jù)長度和上述執(zhí)行用碼長以上述糾錯信息存儲部中存儲的執(zhí)行用碼長比預(yù)定的上限面積容許碼長短的方式設(shè)定,上述預(yù)定的上限面積容許碼長是上述數(shù)據(jù)糾正輸入輸出電路的面積成為上述數(shù)據(jù)糾正輸入輸出電路容許的容許面積以下的上述執(zhí)行用碼長的上限。由于存在糾錯信息存儲部存儲的執(zhí)行用碼長越長則數(shù)據(jù)糾正輸入輸出電路的面積越大的傾向,因此,通過在糾錯信息存儲部存儲以使糾錯信息存儲部存儲的執(zhí)行用碼長比上限面積容許碼長短的方式設(shè)定的執(zhí)行用數(shù)據(jù)長度及執(zhí)行用碼長,可以使數(shù)據(jù)糾正輸入輸出電路的面積在容許面積以下。本發(fā)明的第1或第2數(shù)據(jù)輸入輸出控制裝置中,上述半導體存儲裝置具備多個根據(jù)對浮置柵極的電子注入量將多個電子注入狀態(tài)作為多值存儲進行存儲并具有隨著對上述浮置柵極的電子注入量越多越促進劣化的傾向的半導體存儲元件,上述數(shù)據(jù)糾正輸入輸出電路具備數(shù)據(jù)變換部,其按第1長度依次讀入上述輸入的數(shù)據(jù),在上述讀入的第1長度的數(shù)據(jù)中的、將上述半導體存儲元件設(shè)為對上述浮置柵極的電子注入量比預(yù)定的規(guī)定電子注入狀態(tài)多的狀態(tài)下的高電子注入數(shù)據(jù)的數(shù),在將上述半導體存儲元件設(shè)為對上述浮置柵極的電子注入量比上述規(guī)定電子注入狀態(tài)少的狀態(tài)下的低電子注入數(shù)據(jù)的數(shù)以下時,附加第2長度的第1標志,向上述編碼部輸出,在上述讀入的第1長度的數(shù)據(jù)中的上述高電子注入數(shù)據(jù)的數(shù)超過上述低電子注入數(shù)據(jù)的數(shù)時,實施將上述高電子注入數(shù)據(jù)變換為上述低電子注入數(shù)據(jù)并將上述低電子注入數(shù)據(jù)變換為上述高電子注入數(shù)據(jù)的數(shù)據(jù)變換,向該數(shù)據(jù)變換后的數(shù)據(jù)附加上述第2長度的第2標志,向上述編碼部輸出,并按在上述第1長度加上上述第2長度的第3長度依次讀入從上述解碼部輸出的數(shù)據(jù),在上述讀入的第3長度的數(shù)據(jù)包含上述第1標志時,輸出從上述數(shù)據(jù)刪除了上述第1標志的數(shù)據(jù),并且在上述讀入的第3 長度的數(shù)據(jù)包含上述第2標志時,對刪除了上述第2標志的上述第1長度的數(shù)據(jù)實施上述數(shù)據(jù)變換后輸出,上述控制電路,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置, 使得從上述主機裝置輸入上述寫入請求信號時,從上述主機裝置輸入的數(shù)據(jù)經(jīng)由上述數(shù)據(jù)糾正輸入輸出電路的上述數(shù)據(jù)變換部輸入上述編碼部,從上述主機裝置輸入上述讀出請求信號時,從上述數(shù)據(jù)糾正輸入輸出電路的解碼部輸出的數(shù)據(jù)經(jīng)由上述數(shù)據(jù)變換部向上述主機裝置輸出。這樣,可以使半導體存儲裝置存儲的數(shù)據(jù)中低電子注入數(shù)據(jù)的比例比高電子注入數(shù)據(jù)高,因此,可以降低半導體存儲裝置存儲的數(shù)據(jù)產(chǎn)生錯誤的幾率。該場合中,上述半導體存儲元件是將對上述浮置柵極注入電子的高電子注入狀態(tài)和對上述浮置柵極注入的電子比上述高電子注入狀態(tài)少的低電子注入狀態(tài)作為二值存儲進行存儲的元件,上述高電子注入數(shù)據(jù)是將上述半導體存儲元件設(shè)為上述高電子注入狀態(tài)的數(shù)據(jù),上述低電子注入數(shù)據(jù)是將上述半導體存儲元件設(shè)為上述低電子注入狀態(tài)的數(shù)據(jù)。這樣,半導體元件為將高電子注入狀態(tài)和低電子注入狀態(tài)作為二值存儲的元件的場合,可以進一步降低半導體存儲裝置存儲的數(shù)據(jù)產(chǎn)生錯誤的幾率。而且,本發(fā)明的第1或第2數(shù)據(jù)輸入輸出控制裝置中,上述規(guī)定糾錯碼是塊碼或卷積碼。這里,「塊碼」包含BCH碼、里德-所羅門碼等,「卷積碼」包含LDPC碼等。另外,本發(fā)明的第1或第2數(shù)據(jù)輸入輸出控制裝置中,上述半導體存儲裝置,具有向上述半導體存儲裝置寫入數(shù)據(jù)的次數(shù)和刪除上述半導體存儲裝置存儲的數(shù)據(jù)的次數(shù)之和的次數(shù)即寫入刪除次數(shù)越多,則在存儲的數(shù)據(jù)產(chǎn)生錯誤的幾率越高的傾向。該場合中,上述半導體存儲裝置,是NAND型閃速存儲器、NOR型閃速存儲器、相變存儲器、磁阻存儲器、強電介質(zhì)存儲器及電阻變化型存儲器之一或這些的多個組合。而且,本發(fā)明的第1或第2數(shù)據(jù)輸入輸出控制裝置中,上述半導體存儲裝置,在與形成了上述數(shù)據(jù)輸入輸出控制裝置的半導體芯片不同的半導體芯片上形成。這樣,半導體存儲裝置即使在與形成數(shù)據(jù)輸入輸出控制裝置的半導體芯片不同的半導體芯片形成,也可糾正更多的錯誤。本發(fā)明的半導體存儲裝置系統(tǒng),具備非易失性的半導體存儲裝置;和上述的本發(fā)明某一形態(tài)的第1或第2數(shù)據(jù)輸入輸出控制裝置,即,基本上是本發(fā)明的第1數(shù)據(jù)輸入輸出控制裝置,其將從主機裝置輸入的數(shù)據(jù)編碼為規(guī)定糾錯碼并在上述半導體存儲裝置存儲,并且輸入在上述半導體存儲裝置存儲的數(shù)據(jù),用上述規(guī)定糾錯碼對該輸入數(shù)據(jù)糾錯并解碼, 向上述主機裝置輸出,其具備數(shù)據(jù)糾正輸入輸出電路,其具備糾錯信息存儲部,其存儲編碼為上述規(guī)定糾錯碼的數(shù)據(jù)的長度即執(zhí)行用數(shù)據(jù)長度以及上述規(guī)定糾錯碼的長度即執(zhí)行用碼長;編碼部,其按上述存儲的執(zhí)行用數(shù)據(jù)長度依次讀入輸入的數(shù)據(jù),將該讀入數(shù)據(jù)編碼為上述執(zhí)行用碼長的上述規(guī)定糾錯碼,向上述半導體存儲裝置輸出;解碼部,其按上述存儲的執(zhí)行用碼長依次讀入輸入的數(shù)據(jù),通過上述規(guī)定糾錯碼對該讀入數(shù)據(jù)糾錯并解碼,向上述主機裝置輸出;錯誤檢測部,其按上述存儲的執(zhí)行用碼長依次讀入輸入的數(shù)據(jù),通過上述規(guī)定糾錯碼對該讀入的η個(η是1以上的整數(shù))數(shù)據(jù),檢測上述讀入數(shù)據(jù)中發(fā)生錯誤的數(shù)據(jù)數(shù)即錯誤數(shù)據(jù)數(shù);和存儲處理部,其在上述檢測的錯誤數(shù)據(jù)數(shù)超過預(yù)定的上限錯誤數(shù)時,將可糾正及檢測比由1 個上述執(zhí)行用碼長的規(guī)定糾錯碼可糾正及檢測的錯誤數(shù)的上限多的錯誤且數(shù)據(jù)的長度比上述糾錯信息存儲部存儲的執(zhí)行用數(shù)據(jù)長度長的數(shù)據(jù)的長度以及上述規(guī)定糾錯碼的碼長, 分別作為上述執(zhí)行用數(shù)據(jù)長度以及上述執(zhí)行用碼長在上述糾錯信息存儲部存儲;和控制電路,其在從上述主機裝置輸入請求向上述半導體存儲裝置進行數(shù)據(jù)寫入的寫入請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得從上述主機裝置輸入的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的編碼部,從上述數(shù)據(jù)糾正輸入輸出電路的編碼部輸出的數(shù)據(jù)向上述半導體存儲裝置輸出并且該輸出的數(shù)據(jù)在上述半導體存儲裝置存儲,在從上述主機裝置輸入請求將上述半導體存儲裝置存儲的數(shù)據(jù)讀出的讀出請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得上述半導體存儲裝置存儲的數(shù)據(jù)被讀出,該讀出的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的解碼部,從該數(shù)據(jù)糾正輸入輸出電路的解碼部輸出的數(shù)據(jù)向上述主機裝置輸出,在從上述主機裝置輸入請求刪除上述半導體存儲裝置存儲的數(shù)據(jù)的刪除請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得上述半導體存儲裝置存儲的數(shù)據(jù)被讀出,該讀出的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的錯誤檢測部后,將上述半導體存儲裝置存儲的數(shù)據(jù)刪除,或者,是本發(fā)明的第2數(shù)據(jù)輸入輸出控制裝置,其將從主機裝置輸入的數(shù)據(jù)編碼為規(guī)定糾錯碼并在上述半導體存儲裝置存儲,并且輸入在上述半導體存儲裝置存儲的數(shù)據(jù),用上述規(guī)定糾錯碼對該輸入數(shù)據(jù)糾錯并解碼, 向上述主機裝置輸出,其具備寫入次數(shù)計數(shù)電路,其對向上述半導體存儲裝置寫入數(shù)據(jù)的次數(shù)和將上述半導體存儲裝置存儲的數(shù)據(jù)刪除的次數(shù)之和的次數(shù)即寫入刪除次數(shù)計數(shù);數(shù)據(jù)糾正輸入輸出電路,其具備糾錯信息存儲部,其存儲編碼為上述規(guī)定糾錯碼的數(shù)據(jù)的長度即執(zhí)行用數(shù)據(jù)長度以及上述規(guī)定糾錯碼的長度即執(zhí)行用碼長;編碼部,其按上述存儲的執(zhí)行用數(shù)據(jù)長度依次讀入輸入的數(shù)據(jù),將該讀入數(shù)據(jù)編碼為上述執(zhí)行用碼長的上述規(guī)定糾錯碼,向上述半導體存儲裝置輸出;解碼部,其按上述存儲的執(zhí)行用碼長依次讀入輸入的數(shù)據(jù),通過上述規(guī)定糾錯碼對該讀入數(shù)據(jù)糾錯并解碼,向上述主機裝置輸出;和存儲處理部,其在上述計數(shù)的寫入刪除次數(shù)超過推定的在η個(η是1以上的整數(shù))執(zhí)行用碼長的數(shù)據(jù)中產(chǎn)生比預(yù)定的上限錯誤數(shù)多的錯誤的寫入刪除次數(shù)即判定用閾值時,將可糾正及檢測比由1個上述執(zhí)行用碼長的規(guī)定糾錯碼可糾正及檢測的錯誤數(shù)的上限多的錯誤且數(shù)據(jù)的長度比上述糾錯信息存儲部存儲的執(zhí)行用數(shù)據(jù)長度長的數(shù)據(jù)的長度以及上述規(guī)定糾錯碼的碼長,分別作為上述執(zhí)行用數(shù)據(jù)長度以及上述執(zhí)行用碼長在上述糾錯信息存儲部存儲;和控制電路,其在從上述主機裝置輸入請求向上述半導體存儲裝置進行數(shù)據(jù)寫入的寫入請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得從上述主機裝置輸入的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的編碼部,從上述數(shù)據(jù)糾正輸入輸出電路的編碼部輸出的數(shù)據(jù)向上述半導體存儲裝置輸出并且該輸出的數(shù)據(jù)在上述半導體存儲裝置存儲,在從上述主機裝置輸入請求將上述半導體存儲裝置存儲的數(shù)據(jù)讀出的讀出請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得上述半導體存儲裝置存儲的數(shù)據(jù)被讀出,該讀出的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的解碼部,從該數(shù)據(jù)糾正輸入輸出電路的解碼部輸出的數(shù)據(jù)向上述主機裝置輸出,在從上述主機裝置輸入請求刪除上述半導體存儲裝置存儲的數(shù)據(jù)的刪除請求信號時,控制上述半導體存儲裝置,使得上述半導體存儲裝置存儲的數(shù)據(jù)被刪除。該本發(fā)明的半導體存儲裝置系統(tǒng)中,由于具備上述某一形態(tài)的本發(fā)明的數(shù)據(jù)輸入輸出控制裝置,因此,可以實現(xiàn)與本發(fā)明的數(shù)據(jù)輸入輸出控制裝置的效果例如可糾正更多的錯誤的效果等同樣的效果。這樣的本發(fā)明的半導體存儲裝置系統(tǒng)中,上述半導體存儲裝置,可以是具有向上述半導體存儲裝置寫入數(shù)據(jù)的次數(shù)和刪除上述半導體存儲裝置存儲的數(shù)據(jù)的次數(shù)之和的次數(shù)即寫入刪除次數(shù)越多,則在存儲的數(shù)據(jù)產(chǎn)生錯誤的幾率越高的傾向的裝置。該場合中, 上述半導體存儲裝置也可以是NAND型閃速存儲器、NOR型閃速存儲器、相變存儲器、磁阻存儲器、強電介質(zhì)存儲器及電阻變化型存儲器之一或這些的多個組合的裝置。另外,本發(fā)明的半導體存儲裝置系統(tǒng)中,上述半導體存儲裝置和上述數(shù)據(jù)輸入輸出控制裝置可以在不同的半導體芯片形成。這樣,由于半導體存儲裝置和數(shù)據(jù)輸入輸出控制裝置在不同半導體芯片形成,可糾正更多的錯誤。


圖1是搭載了作為本發(fā)明的第1實施例的數(shù)據(jù)輸入輸出控制裝置的閃速存儲器系統(tǒng)10的構(gòu)成的概略構(gòu)成圖。圖2相對于從數(shù)據(jù)反相電路觀輸入的數(shù)據(jù),從數(shù)據(jù)反相電路觀輸出的數(shù)據(jù)的一例的說明圖。圖3是糾錯電路30的構(gòu)成的概略構(gòu)成圖。圖4是執(zhí)行用數(shù)據(jù)長度Sdata為512字節(jié),執(zhí)行用碼長Scode為(51K字節(jié)+104 比特)時從編碼部34輸出的數(shù)據(jù)的構(gòu)造的說明圖。圖5是存儲處理部38的操作的一例的流程圖。圖6是在閃速存儲器12存儲的數(shù)據(jù)發(fā)生比特錯誤的情形的一例的說明圖。圖7是搭載了作為本發(fā)明的第2實施例的數(shù)據(jù)輸入輸出控制裝置的閃速存儲器系統(tǒng)110的構(gòu)成的概略構(gòu)成圖。圖8是相對于從數(shù)據(jù)反相電路1 輸入的數(shù)據(jù),從數(shù)據(jù)反相電路1 輸出的數(shù)據(jù)的一例的說明圖。圖9是糾錯電路130的構(gòu)成的概略構(gòu)成圖。圖10是執(zhí)行用數(shù)據(jù)長度Sdata為512字節(jié),執(zhí)行用碼長Scode為(51K字節(jié)+104 比特)時從編碼部134輸出的數(shù)據(jù)的構(gòu)造的說明圖。圖11是存儲處理部138的操作的一例的流程圖。圖12是錯誤數(shù)Nerror和寫入刪除次數(shù)Nwr的關(guān)系的說明圖。圖13是在閃速存儲器112存儲的數(shù)據(jù)發(fā)生比特錯誤的情形的一例的說明圖。
具體實施例方式接著,用實施例說明本發(fā)明的最佳實施例。圖1是搭載了作為本發(fā)明的第1實施例的數(shù)據(jù)輸入輸出控制裝置的閃速存儲器系統(tǒng)10的構(gòu)成的概略構(gòu)成圖。閃速存儲器系統(tǒng)10由形成有NAND型閃速存儲器的硅芯片多個層疊而成的閃速存儲器12和控制閃速存儲器12的存儲控制器20構(gòu)成,與主機裝置60 (例如,個人電腦等)可通信地連接,根據(jù)從主機裝置60輸入的各種控制信號,在閃速存儲器12 存儲從主機裝置60輸入的數(shù)據(jù),或者將閃速存儲器12存儲的數(shù)據(jù)向主機裝置60輸出。另外,這樣的閃速存儲器12和存儲控制器20在互異的半導體芯片上形成。閃速存儲器12構(gòu)成為包括具備多個通過對浮置柵極的電子注入和/或從浮置柵極的電子抽出而使閾值電壓變化的閃速存儲單元的閃速存儲單元陣列(沒有圖示)的NAND 型閃速存儲器,除了閃速存儲單元陣列外,還具備行解碼器、列解碼器、讀出放大器等(都沒有圖示)。閃速存儲器12中,按頁面單位(實施例中,為(512字節(jié)+104比特))寫入數(shù)據(jù)或讀出數(shù)據(jù),按包括多個頁面的塊單位(實施例中,為64頁面)刪除存儲的數(shù)據(jù)。閃速存儲單元存儲的數(shù)據(jù)如下設(shè)置,即,在實施例中,將向浮置柵極注入電子的狀態(tài)設(shè)為"0", 從浮置柵極抽出電子后浮置柵極的電子比"0"的狀態(tài)少的狀態(tài)設(shè)為"1"。存儲控制器20構(gòu)成為包括晶體管等的多個邏輯元件的邏輯電路,具備輸出來自主機裝置60的各種控制信號,相對于主機裝置60輸入輸出數(shù)據(jù)的主機接口電路22 ;向閃速存儲器12輸出各種控制信號,相對于閃速存儲器12輸入輸出數(shù)據(jù)的存儲器接口電路M ; 暫時地存儲向主機接口電路22輸入的數(shù)據(jù)的緩沖器電路沈;從緩沖器電路沈讀出數(shù)據(jù), 根據(jù)存儲的數(shù)據(jù)所包含的"1"的數(shù)據(jù)的數(shù)使數(shù)據(jù)反相或不反相而附加不反相標志或變換標志后輸出的數(shù)據(jù)反相電路觀;由BCH(Bose-Chaudftiri-Hocquenghem)碼對來自數(shù)據(jù)反相電路觀的數(shù)據(jù)編碼,向存儲器接口電路M輸出,或者,將來自存儲器接口電路M的數(shù)據(jù)解碼,向數(shù)據(jù)反相電路觀輸出的糾錯電路30 ;控制存儲控制器20的全體的操作的控制電路40。數(shù)據(jù)反相電路28從緩沖器電路沈按4比特讀出數(shù)據(jù),在讀出的4比特的數(shù)據(jù)所包含的〃 0〃的數(shù)據(jù)的數(shù)比〃 1〃的數(shù)據(jù)的數(shù)多時,執(zhí)行使〃 1〃的數(shù)據(jù)反相為〃 0〃和使"0"的數(shù)據(jù)反相為"1"的比特反相,并且向比特反相后的數(shù)據(jù)附加表示進行了比特反相的"1"的反相標志后向糾錯電路30輸出,在讀出的4比特的數(shù)據(jù)所包含的"0"的數(shù)據(jù)的數(shù)在"1"的數(shù)據(jù)的數(shù)以下時,不執(zhí)行比特反相,附加表示不執(zhí)行比特反相的"0" 的不反相標志后向糾錯電路30輸出。圖2是對于從數(shù)據(jù)反相電路觀輸入的數(shù)據(jù),從數(shù)據(jù)反相電路觀向糾錯電路30輸出的數(shù)據(jù)的一例的說明圖。另外,對于來自糾錯電路30的數(shù)據(jù), 按5比特讀出,在讀出的數(shù)據(jù)包含反相標志時,去除反相標志并對剩余4比特的數(shù)據(jù)執(zhí)行比特反相后向緩沖器電路26輸出,在讀出的數(shù)據(jù)包含不反相標志時,將去除了不反相標志的 4比特的數(shù)據(jù)向緩沖器電路沈輸出。通過這樣的操作,可以使從數(shù)據(jù)反相電路觀向糾錯電路30輸出的數(shù)據(jù)中的"1"的數(shù)據(jù)的比例更多。進行這樣的操作的理由如下。閃速存儲單元若向浮置柵極注入電子,則由于電子通過閃速存儲單元的柵極絕緣膜時的應(yīng)力,柵極絕緣膜劣化。從而,認為"0"的數(shù)據(jù)越多,則閃速存儲單元存儲的數(shù)據(jù)產(chǎn)生錯誤的幾率越高。另外,在數(shù)據(jù)保持時,有注入浮置柵極的電子流出而產(chǎn)生錯誤的情況,因此認為,"0" 的數(shù)據(jù)越多,則數(shù)據(jù)產(chǎn)生錯誤的幾率越高。從而,閃速存儲單元中,認為"1"的數(shù)據(jù)的存儲與"0"的數(shù)據(jù)存儲相比,發(fā)生錯誤的幾率低,因此,使從數(shù)據(jù)反相電路觀輸出的數(shù)據(jù)中的"1"的數(shù)據(jù)的比例更多。通過這樣的數(shù)據(jù)反相電路28,可以使閃速存儲器12存儲的數(shù)據(jù)產(chǎn)生錯誤的幾率更低。圖3是糾錯電路30的構(gòu)成的概略構(gòu)成圖。糾錯電路30構(gòu)成為包括晶體管等的多個邏輯元件的邏輯電路,包括存儲數(shù)據(jù)的編碼及解碼所采用的BCH碼的尺寸即執(zhí)行用碼長Scode和編碼為執(zhí)行用碼長Scode的BCH碼的數(shù)據(jù)的尺寸即執(zhí)行用數(shù)據(jù)長度Sdata的糾正信息存儲部32 ;將從數(shù)據(jù)反相電路觀輸入的數(shù)據(jù)編碼為糾正信息存儲部32存儲的執(zhí)行用碼長Scode的BCH碼后輸出的編碼部34 ;由BCH碼對從閃速存儲器12輸入的數(shù)據(jù)解碼后向數(shù)據(jù)反相電路觀輸出,并且檢測從閃速存儲器12輸入的數(shù)據(jù)中產(chǎn)生錯誤的數(shù)據(jù)的數(shù)的解碼錯誤數(shù)檢測部36 ;變更糾正信息存儲部32存儲的執(zhí)行用碼長Scode和執(zhí)行用數(shù)據(jù)長度Sdata的存儲處理部38。編碼部34按在糾正信息存儲部32存儲的執(zhí)行用數(shù)據(jù)長度Sdata逐個讀入從數(shù)據(jù)反相電路觀輸入的數(shù)據(jù),生成為了通過采用BCH碼的生成多項式的運算處理將讀入的執(zhí)行用數(shù)據(jù)長度Sdata的數(shù)據(jù)編碼為執(zhí)行用碼長Scode的BCH碼而應(yīng)附加的校驗位,將向讀入的執(zhí)行用數(shù)據(jù)長度Sdata的數(shù)據(jù)附加了生成的校驗位的數(shù)據(jù)向存儲器接口電路M輸出。圖 4是執(zhí)行用數(shù)據(jù)長度Sdata為512字節(jié),執(zhí)行用碼長&0如為(512字節(jié)+104比特)時從編碼部34輸出的數(shù)據(jù)的構(gòu)造的說明圖。另外,由于采用BCH碼的生成多項式進行數(shù)據(jù)的編碼時的運算處理是眾所周知的,省略詳細說明。解碼錯誤數(shù)檢測部36按糾正信息存儲部32存儲的執(zhí)行用碼長Scode讀入從閃速存儲器12經(jīng)由存儲器接口電路M輸入的數(shù)據(jù),通過采用BCH碼的生成多項式的伴隨式計算處理,對讀入的執(zhí)行用碼長&0如的數(shù)據(jù),檢測與讀入的數(shù)據(jù)編碼時的數(shù)據(jù)不同的錯誤 (以下稱為比特錯誤)產(chǎn)生的比特位置后,執(zhí)行糾錯,從執(zhí)行糾錯后的數(shù)據(jù)去除校驗位,將數(shù)據(jù)解碼,向數(shù)據(jù)反相電路觀輸出。通過這樣的操作,可對從閃速存儲器12輸入的數(shù)據(jù)進行糾錯、解碼并輸出。另外,解碼錯誤數(shù)檢測部36對讀入的執(zhí)行用碼長&0如的數(shù)據(jù),采用 BCH碼的生成多項式來檢測產(chǎn)生比特錯誤的比特位置時,將η個(η是1以上的整數(shù))的執(zhí)行用碼長&0如的數(shù)據(jù)中產(chǎn)生比特錯誤的數(shù)據(jù)的比特數(shù)檢測為錯誤數(shù)據(jù)數(shù)Nerror。這里, 檢測錯誤數(shù)據(jù)數(shù)Nerror時的執(zhí)行用碼長Scode的數(shù)即值η設(shè)為通過實驗、解析等適宜設(shè)定。另外,關(guān)于通過采用BCH碼的生成多項式的伴隨式計算處理進行糾錯時的運算處理,由于是周知的,詳細說明省略。圖5是存儲處理部38的操作的一例的流程圖。存儲處理部38比較由解碼錯誤數(shù)檢測部36檢測的錯誤數(shù)據(jù)數(shù)Nerror和由糾正信息存儲部32存儲的η個執(zhí)行用碼長Scode 的BCH碼可檢測的數(shù)據(jù)的錯誤數(shù)的上限即上限錯誤數(shù)Nmax (步驟S100)。這里,上限錯誤數(shù)Nmax設(shè)為由數(shù)據(jù)長為執(zhí)行用數(shù)據(jù)Sdata、碼長為執(zhí)行用碼長Scode的η個BCH碼可檢測的錯誤數(shù)的上限,例如,由于由向512字節(jié)的數(shù)據(jù)附加104比特的校驗位的碼長為(512字節(jié)+104比特)的η個BCH碼中1個BCH碼可檢測的錯誤數(shù)的上限為8比特,因此,上限錯誤數(shù)Nmax設(shè)為ηΧ8比特,由于由向IK字節(jié)的數(shù)據(jù)附加210比特的校驗位的碼長為(1Κ字節(jié)+210比特)的η個BCH碼中1個BCH碼可檢測的錯誤數(shù)的上限為15比特,因此,上限錯誤數(shù)Nmax設(shè)為η X 15比特。在錯誤數(shù)據(jù)數(shù)Nerror超過上限錯誤數(shù)Nmax時(步驟S100),將糾正信息存儲部32 存儲的執(zhí)行用數(shù)據(jù)長度Sdata的2倍的數(shù)據(jù)長度作為執(zhí)行用數(shù)據(jù)長度Sdata存儲,將比執(zhí)行用數(shù)據(jù)長度Sdata長,可檢測比上限錯誤數(shù)Nmax多的錯誤的碼長Scref作為執(zhí)行用碼長 Scode,在糾正信息存儲部32存儲(步驟S110),在錯誤數(shù)據(jù)數(shù)Nerror在上限錯誤數(shù)Nmax 以下時(步驟S100),不變更糾正信息存儲部32存儲的執(zhí)行用碼長Scode和執(zhí)行用數(shù)據(jù)長度Sdata,結(jié)束處理。從而,在錯誤數(shù)據(jù)數(shù)Nerror超過上限錯誤數(shù)Nmax時,由糾正信息存儲部32存儲長的執(zhí)行用數(shù)據(jù)長度Sdata及執(zhí)行用碼長&0如。例如,步驟SllO的處理執(zhí)行前,在糾正信息存儲部32存儲512字節(jié)作為執(zhí)行用數(shù)據(jù)長度Sdata,存儲(512字節(jié)+104 比特)作為執(zhí)行用碼長Scode的場合,在步驟SllO的處理執(zhí)行后,在糾正信息存儲部32存儲IK字節(jié)作為執(zhí)行用數(shù)據(jù)長度Sdata,存儲(1K字節(jié)+210比特)作為執(zhí)行用碼長kode。對控制電路40,從主機裝置經(jīng)由主機接口電路22輸入各種控制信號,并從閃速存儲器12經(jīng)由存儲器接口電路M輸入表示閃速存儲器12的狀態(tài)的各種信號,從控制電路40 輸出用于控制緩沖器電路沈、數(shù)據(jù)反相電路28、糾錯電路30、閃速存儲器12的控制信號。這樣構(gòu)成的實施例的閃速存儲器系統(tǒng)10中,經(jīng)由主機接口電路22,從主機裝置60 向控制電路40輸入請求向閃速存儲器12寫入數(shù)據(jù)的寫入請求信號和表示向閃速存儲器12 寫入數(shù)據(jù)的地址的地址信號后,控制電路40控制主機接口電路22、緩沖器電路沈、數(shù)據(jù)反相電路28、糾錯電路30、存儲器接口電路M,使得來自主機裝置60的數(shù)據(jù)經(jīng)由主機接口電路22、緩沖器電路沈、數(shù)據(jù)反相電路觀、糾錯電路30從存儲器接口電路M向閃速存儲器 12輸出。從緩沖器電路沈輸入數(shù)據(jù)的數(shù)據(jù)反相電路觀按4比特讀出來自緩沖器電路沈的數(shù)據(jù),根據(jù)讀出的4比特的數(shù)據(jù)所包含的"1"的數(shù)據(jù)的數(shù)和"0"的數(shù)據(jù)的數(shù),附加反相標志或不反相標志,將5比特的數(shù)據(jù)輸入糾錯電路30的編碼部34。輸入數(shù)據(jù)的糾錯電路 30的編碼部34按執(zhí)行用數(shù)據(jù)長度Sdata依次讀入輸入的數(shù)據(jù),編碼為執(zhí)行用碼長Scode的 BCH碼,向存儲器接口電路M輸出。這樣,控制電路40控制閃速存儲器12,使得從存儲器接口電路M經(jīng)由糾錯電路30將編碼為執(zhí)行用碼長Scode的BCH碼的數(shù)據(jù)按頁面單位存儲到閃速存儲器12。從而,輸入寫入請求信號時,可將編碼為執(zhí)行用碼長&0如的BCH碼的數(shù)據(jù)在閃速存儲器12存儲。另外,從主機裝置60經(jīng)由主機接口電路22向控制電路40輸入請求讀出閃速存儲器12存儲的數(shù)據(jù)的讀出請求信號和表示閃速存儲器12的讀出目的地的地址的地址信號后,控制電路40控制閃速存儲器12,使得從閃速存儲器12按頁面單位讀出數(shù)據(jù)??刂齐娐?40控制主機接口電路22、緩沖器電路沈、數(shù)據(jù)反相電路觀、糾錯電路30、存儲器接口電路 M,使得從閃速存儲器12讀出的數(shù)據(jù)經(jīng)由存儲器接口電路M、糾錯電路30、數(shù)據(jù)反相電路觀、緩沖器電路26從主機接口電路22向主機裝置60輸出。輸入了數(shù)據(jù)的糾錯電路30的解碼錯誤數(shù)檢測部36按執(zhí)行用碼長&0如讀入輸入的數(shù)據(jù),若讀入的數(shù)據(jù)中存在產(chǎn)生比特錯誤的數(shù)據(jù),則將執(zhí)行糾錯后解碼的執(zhí)行用數(shù)據(jù)長度Sdata的數(shù)據(jù)輸入數(shù)據(jù)反相電路28, 若讀入的數(shù)據(jù)不產(chǎn)生比特錯誤,則將讀入數(shù)據(jù)解碼后的執(zhí)行用數(shù)據(jù)長度Sdata的數(shù)據(jù)輸入數(shù)據(jù)反相電路28。輸入了數(shù)據(jù)的數(shù)據(jù)反相電路觀按5比特讀入數(shù)據(jù),在讀入的數(shù)據(jù)包含反相比特時,執(zhí)行比特反相,將去除了反相比特的4比特的數(shù)據(jù)向緩沖器電路沈輸出,在讀入數(shù)據(jù)不包含不反相比特時,將去除了不反相比特的4比特的數(shù)據(jù)向緩沖器電路沈輸出。從而,輸入讀出請求信號時,在閃速存儲器12存儲的數(shù)據(jù)產(chǎn)生比特錯誤時,可以在錯誤糾正后向主機裝置60輸出,可以降低在從閃速存儲器12讀出的數(shù)據(jù)發(fā)生比特錯誤的幾率,可以提高閃速存儲器系統(tǒng)10的可靠性。從主機裝置60經(jīng)由主機接口電路22向控制電路40輸入請求刪除閃速存儲器12 存儲的數(shù)據(jù)的刪除請求信號和表示要刪除塊的信息的塊信息信號時,控制電路40首先控制閃速存儲器12,使得從與要刪除塊對應(yīng)的閃速存儲器12的區(qū)域讀出數(shù)據(jù)。然后控制糾錯電路30、存儲器接口電路M,使得從閃速存儲器12讀出的數(shù)據(jù)經(jīng)由存儲器接口電路M 輸入糾錯電路30的解碼錯誤數(shù)檢測部36,然后,控制閃速存儲器12,使得閃速存儲器12的要刪除塊存儲的數(shù)據(jù)被刪除。輸入了數(shù)據(jù)的糾錯電路30的解碼錯誤數(shù)檢測部36,按執(zhí)行用碼長Scode讀入輸入的數(shù)據(jù),對讀入的η個執(zhí)行用碼長Scode的數(shù)據(jù),采用BCH碼的生成多項式,檢測執(zhí)行用碼長Scode的數(shù)據(jù)中產(chǎn)生錯誤的數(shù)據(jù)的比特數(shù)即錯誤數(shù)據(jù)數(shù)Nerror, 向存儲處理部38輸出。存儲處理部38中,比較錯誤數(shù)據(jù)數(shù)Nerror和上限錯誤數(shù)Nmax,在錯誤數(shù)據(jù)數(shù)Nerror超過上限錯誤數(shù)Nmax時,將糾正信息存儲部32存儲的執(zhí)行用數(shù)據(jù)長度 Sdata的2倍的數(shù)據(jù)長度作為執(zhí)行用數(shù)據(jù)長度Sdata存儲,將可檢測比由執(zhí)行用數(shù)據(jù)長度 Sdata可檢測的錯誤數(shù)的上限附近的值多的錯誤的碼長作為執(zhí)行用碼長&0如,在糾正信息存儲部32存儲。接著,說明進行這樣的處理的理由。圖6是閃速存儲器12存儲的數(shù)據(jù)產(chǎn)生了比特錯誤的情形的一例的說明圖。這里, 為了說明,對1個執(zhí)行用碼長Scode的數(shù)據(jù),檢測錯誤數(shù)據(jù)數(shù)Nerror。圖中,「X」符號表示產(chǎn)生比特錯誤的數(shù)據(jù)的位置。這里,為了說明,設(shè)為最初在糾錯電路30的糾正信息存儲部 32,存儲512字節(jié)作為執(zhí)行用數(shù)據(jù)長度Sdata,存儲(512字節(jié)+104比特)作為執(zhí)行用碼長 kode,最初在從閃速存儲器12讀出的執(zhí)行用碼長Scode (512字節(jié)+104比特)的數(shù)據(jù)中產(chǎn)生9比特的比特錯誤,接著,在從閃速存儲器12讀出的執(zhí)行用碼長Scode (512字節(jié)+104比特)的數(shù)據(jù)中產(chǎn)生2比特的比特錯誤。刪除請求信號輸入后,執(zhí)行用碼長&0如(512字節(jié) +104比特)的數(shù)據(jù)輸入糾錯電路30的解碼錯誤數(shù)檢測部36。對于該BCH碼,雖然可糾正至8比特的比特錯誤(上限錯誤數(shù)Nmax為值8),但是,由于最初讀出的數(shù)據(jù)產(chǎn)生了 9比特的比特錯誤,因此,對于碼長為(512字節(jié)+104比特)的BCH碼,無法由錯誤糾正電路30糾錯。實施例的糾錯電路30中,檢測的錯誤數(shù)據(jù)數(shù)Nerror超過上限錯誤數(shù)Nmax時,在糾正信息存儲部32,存儲IK字節(jié)作為執(zhí)行用數(shù)據(jù)長度Sdata,存儲(1K字節(jié)+210比特)作為執(zhí)行用碼長kode,接著,在輸入寫入請求信號時,數(shù)據(jù)的尺寸為IK字節(jié),校驗位為210比特的 (1K字節(jié)+210比特)的碼長的BCH碼在閃速存儲器12存儲,從閃速存儲器12讀出數(shù)據(jù)時, 作為碼長為(1K字節(jié)+210比特)的BCH碼,讀出數(shù)據(jù)。此時,如圖示,在讀出的數(shù)據(jù)產(chǎn)生11 比特的比特錯誤,但是,對于碼長為(1K字節(jié)+210比特)的BCH碼,可糾正至15比特為止的比特錯誤,因此可以糾正這樣的錯誤。這樣,檢測的錯誤數(shù)據(jù)數(shù)Nerror超過上限錯誤數(shù) Nmax時,通過延長糾正信息存儲部32存儲的執(zhí)行用數(shù)據(jù)長度Sdata和執(zhí)行用碼長kode, 可以糾正更多的錯誤。根據(jù)以上說明的第1實施例的閃速存儲器系統(tǒng)10,從主機裝置60輸入刪除請求信號時,控制存儲器接口電路M、糾錯電路30、閃速存儲器12,使得讀出閃速存儲器12存儲的數(shù)據(jù),讀出的數(shù)據(jù)輸入糾錯電路30的解碼錯誤數(shù)檢測部36后,刪除閃速存儲器12存儲的數(shù)據(jù)。輸入了數(shù)據(jù)的糾錯電路30的解碼錯誤數(shù)檢測部36,檢測錯誤數(shù)據(jù)數(shù)Nerror,糾錯電路30的存儲處理部38在檢測的錯誤數(shù)據(jù)數(shù)Nerror超過上限錯誤數(shù)Nmax時,將可檢測比上限錯誤數(shù)Nmax多的錯誤且數(shù)據(jù)的長度比糾正信息存儲部32存儲的執(zhí)行用數(shù)據(jù)長度Sdata 長的數(shù)據(jù)的長度及BCH碼的碼長分別作為執(zhí)行用數(shù)據(jù)長度Sdata及執(zhí)行用碼長Scode在糾正信息存儲部32存儲,接著,在寫入請求信號輸入時,糾錯電路30的編碼部34按更長的執(zhí)行用數(shù)據(jù)長度Sdata依次讀入輸入的數(shù)據(jù),將該讀入的數(shù)據(jù)編碼為更長的執(zhí)行用碼長 Scode的BCH碼并輸出,接著,在讀出請求信號輸入時,糾錯電路30的解碼錯誤數(shù)檢測部36 可以用更長的執(zhí)行用碼長&0(1的BCH碼對數(shù)據(jù)糾錯。從而,可以糾正更多的錯誤。另外, 數(shù)據(jù)反相電路觀從緩沖器電路26按4比特讀出數(shù)據(jù),讀出的4比特的數(shù)據(jù)所包含的“O “ 的數(shù)據(jù)的數(shù)比"1"的數(shù)據(jù)的數(shù)多時,執(zhí)行將"1"的數(shù)據(jù)反相為"O"并將"O"的數(shù)據(jù)反相為"1"的比特反相并附加"1"的反相標志后向糾錯電路30輸出,在讀出的4比特的數(shù)據(jù)所包含的"O"的數(shù)據(jù)的數(shù)為"1"的數(shù)據(jù)的數(shù)以下時,不執(zhí)行比特反相,附加表示不執(zhí)行比特反相的"O"的不反相標志后向糾錯電路30輸出。從而,可以進一步降低閃速存儲器12存儲的數(shù)據(jù)產(chǎn)生錯誤的幾率。第1實施例的閃速存儲器系統(tǒng)10中,存儲控制器20控制包括具備多個閃速存儲單元的閃速存儲單元陣列的NAND型閃速存儲器,但是作為存儲控制器20控制的存儲器,不限于NAND型閃速存儲器,也可以是NOR型的閃速存儲器。另外,作為由存儲控制器20控制的存儲器,不限于閃速存儲器,只要是非易失性存儲器即可,例如,也可以是通過改變材料的結(jié)晶構(gòu)造而存儲數(shù)據(jù)的相變存儲器、利用電子的旋轉(zhuǎn)而作為存儲元件來存儲數(shù)據(jù)的磁阻存儲器、利用強電介質(zhì)的遲滯(遲滯現(xiàn)象)使正負的自發(fā)極化與1和0對應(yīng)來存儲數(shù)據(jù)的強電介質(zhì)存儲器、利用電壓的施加引起電氣阻抗的變化來存儲數(shù)據(jù)的電阻變化型存儲器等具有隨著寫入刪除次數(shù)而使存儲的數(shù)據(jù)產(chǎn)生錯誤的幾率提高的傾向的非易失性存儲器。圖7是搭載了作為本發(fā)明的第2實施例的數(shù)據(jù)輸入輸出控制裝置的閃速存儲器系統(tǒng)110的構(gòu)成的概略構(gòu)成圖。閃速存儲器系統(tǒng)110由形成了 NAND型閃速存儲器的硅芯片多個層疊而成的閃速存儲器112和控制閃速存儲器112的存儲控制器120構(gòu)成,根據(jù)從主機裝置160 (例如,CPU等)輸入的各種控制信號,在閃速存儲器112存儲從主機裝置160輸入的數(shù)據(jù),或者將閃速存儲器112存儲的數(shù)據(jù)向主機裝置160輸出。另外,這樣的閃速存儲器112和存儲控制器120在不同的半導體芯片上形成。閃速存儲器112構(gòu)成為包括具備多個通過對浮置柵極的電子注入和/或從浮置柵極的電子抽出而使閾值電壓變化的閃速存儲單元的閃速存儲單元陣列(沒有圖示)的NAND 型閃速存儲器,除了閃速存儲單元陣列外,還具備行解碼器、列解碼器、讀出放大器等(都沒有圖示)。閃速存儲器112中,按頁面單位(實施例中,為(512字節(jié)+104比特))寫入數(shù)據(jù)或讀出數(shù)據(jù),按包括多個頁面的塊單位(實施例中,為64頁面)刪除存儲的數(shù)據(jù)。閃速存儲單元存儲的數(shù)據(jù),在實施例中,將向浮置柵極注入電子的狀態(tài)設(shè)為"0",從浮置柵極抽出電子的狀態(tài)設(shè)為"1"。存儲控制器120構(gòu)成為包括晶體管等的多個邏輯元件的邏輯電路,具備輸出來自主機裝置160的各種控制信號,相對于主機裝置160輸入輸出數(shù)據(jù)的主機接口電路122 ; 向閃速存儲器112輸出各種控制信號,相對于閃速存儲器112輸入輸出數(shù)據(jù)的存儲器接口電路124 ;暫時地存儲向主機接口電路122輸入的數(shù)據(jù)的緩沖器電路126 ;從緩沖器電路 126讀出數(shù)據(jù),根據(jù)存儲的數(shù)據(jù)所包含的"1"的數(shù)據(jù)的數(shù)使數(shù)據(jù)反相或不反相而附加不反相標志或變換標志后輸出的數(shù)據(jù)反相電路128 ;對向閃速存儲器112寫入數(shù)據(jù)的次數(shù)計數(shù)的寫入刪除次數(shù)計數(shù)電路129 ;由BCH(Bose-Chaudhuri-Hocquenghem)碼對來自數(shù)據(jù)反相電路28的數(shù)據(jù)編碼,向存儲器接口電路M輸出,或者,將來自存儲器接口電路M的數(shù)據(jù)解碼,向數(shù)據(jù)反相電路觀輸出的糾錯電路130 ;控制存儲控制器120的全體的操作的控制電路140。數(shù)據(jù)反相電路1 從緩沖器電路1 按4比特讀出數(shù)據(jù),在讀出的4比特的數(shù)據(jù)所包含的"0"的數(shù)據(jù)的數(shù)比"1"的數(shù)據(jù)的數(shù)多時,執(zhí)行使"1"的數(shù)據(jù)反相為"0"和使"0"的數(shù)據(jù)反相為"1"的比特反相,并且向比特反相后的數(shù)據(jù)附加表示進行了比特反相的"1"的反相標志后向糾錯電路130輸出,在讀出的4比特的數(shù)據(jù)所包含的"0"的數(shù)據(jù)的數(shù)在"1"的數(shù)據(jù)的數(shù)以下時,不執(zhí)行比特反相,附加表示不執(zhí)行比特反相的"0" 的不反相標志后向糾錯電路130輸出。圖8是相對于從數(shù)據(jù)反相電路1 輸入的數(shù)據(jù),從數(shù)據(jù)反相電路128向糾錯電路130輸出的數(shù)據(jù)的一例的說明圖。另外,對于來自糾錯電路 130的數(shù)據(jù),按5比特讀出,在讀出的數(shù)據(jù)包含反相標志時,去除反相標志并對剩余4比特的數(shù)據(jù)執(zhí)行比特反相后向緩沖器電路126輸出,在讀出的數(shù)據(jù)包含不反相標志時,將去除了不反相標志的4比特的數(shù)據(jù)向緩沖器電路1 輸出。通過這樣的操作,可以使從數(shù)據(jù)反相電路128向糾錯電路130輸出的數(shù)據(jù)中的"1"的數(shù)據(jù)的比例更多。進行這樣的操作的理由如下。閃速存儲單元若向浮置柵極注入電子,則由于電子通過閃速存儲單元的柵極絕緣膜時的應(yīng)力,柵極絕緣膜劣化。從而,認為"0"的數(shù)據(jù)越多,則閃速存儲單元存儲的數(shù)據(jù)產(chǎn)生錯誤的幾率越高。另外,在數(shù)據(jù)保持時,有注入浮置柵極的電子流出而產(chǎn)生錯誤的情況,因此認為,“0"的數(shù)據(jù)越多,則數(shù)據(jù)產(chǎn)生錯誤的幾率越高。從而,閃速存儲單元中,認為"1"的數(shù)據(jù)的存儲與"0"的數(shù)據(jù)存儲相比,發(fā)生錯誤的幾率低,因此,使從數(shù)據(jù)反相電路128輸出的數(shù)據(jù)中的"1"的數(shù)據(jù)的比例更多。通過這樣的數(shù)據(jù)反相電路28,可以使閃速存儲器112存儲的數(shù)據(jù)產(chǎn)生錯誤的幾率更低。寫入刪除次數(shù)計數(shù)電路1 對向閃速存儲器112按每頁面寫入數(shù)據(jù)的次數(shù)和刪除數(shù)據(jù)的次數(shù)之和的次數(shù)即寫入刪除次數(shù)Nwr計數(shù),向糾錯電路130輸出。這里,閃速存儲器 12的寫入數(shù)據(jù)的頁面的信息、刪除數(shù)據(jù)的塊的信息設(shè)為從控制電路40輸入。圖9是糾錯電路130的構(gòu)成的概略構(gòu)成圖。糾錯電路130構(gòu)成為包括晶體管等的多個邏輯元件的邏輯電路,包括存儲數(shù)據(jù)的編碼及解碼所采用的BCH碼的尺寸即執(zhí)行用碼長Scode和編碼為執(zhí)行用碼長Scode的BCH碼的數(shù)據(jù)的尺寸即執(zhí)行用數(shù)據(jù)長度Sdata的糾正信息存儲部132 ;將從數(shù)據(jù)反相電路1 輸入的數(shù)據(jù)編碼為糾正信息存儲部132存儲的執(zhí)行用碼長kode的BCH碼后輸出的編碼部134 ;由BCH碼對從閃速存儲器112輸入的數(shù)據(jù)解碼后向數(shù)據(jù)反相電路1 輸出的解碼部136 ;根據(jù)從糾錯電路130輸入的寫入次數(shù) Nwr,變更糾正信息存儲部132存儲的執(zhí)行用碼長Scode和執(zhí)行用數(shù)據(jù)長度Sdata的存儲處理部138。編碼部134按在糾正信息存儲部132存儲的執(zhí)行用數(shù)據(jù)長度Sdata讀入從數(shù)據(jù)反相電路1 輸入的數(shù)據(jù),生成為了通過采用BCH碼的生成多項式的運算處理將讀入的執(zhí)行用數(shù)據(jù)長度Sdata的數(shù)據(jù)編碼為執(zhí)行用碼長Scode的BCH碼而應(yīng)附加的校驗位,將向讀入的執(zhí)行用數(shù)據(jù)長度Sdata的數(shù)據(jù)附加了生成的校驗位的數(shù)據(jù)向存儲器接口電路IM輸出。 圖10是執(zhí)行用數(shù)據(jù)長度Sdata為512字節(jié),執(zhí)行用碼長Scode為(512字節(jié)+104比特)時從編碼部134輸出的數(shù)據(jù)的構(gòu)造的說明圖。另外,由于采用BCH碼的生成多項式進行數(shù)據(jù)的編碼時的運算處理是眾所周知的,省略詳細說明。解碼部136按糾正信息存儲部132存儲的執(zhí)行用碼長Scode讀入從閃速存儲器 112經(jīng)由存儲器接口電路IM輸入的數(shù)據(jù),通過采用BCH碼的生成多項式的伴隨式計算處理,對讀入的執(zhí)行用碼長&0如的數(shù)據(jù),檢測與讀入的數(shù)據(jù)編碼時的數(shù)據(jù)不同的錯誤(以下稱為比特錯誤)產(chǎn)生的比特位置后,執(zhí)行糾錯,從執(zhí)行糾錯后的數(shù)據(jù)去除校驗位,將數(shù)據(jù)解碼,向數(shù)據(jù)反相電路1 輸出。通過這樣的操作,可對從閃速存儲器112輸入的數(shù)據(jù)進行糾錯、解碼并輸出。另外,關(guān)于通過采用BCH碼的生成多項式的伴隨式計算處理進行糾錯時的運算處理,由于是周知的,詳細說明省略。圖11是存儲處理部138的操作的一例的流程圖。存儲處理部138比較從寫入刪除次數(shù)計數(shù)電路1 輸入的寫入刪除次數(shù)Nwr和判定用閾值Nref (步驟S200)。判定用閾值 Nref是預(yù)先通過實驗、解析等將閃速存儲器12存儲的η個(η是1以上的整數(shù))的執(zhí)行用碼長&0如的BCH碼的數(shù)據(jù)產(chǎn)生的比特錯誤的數(shù)即錯誤數(shù)Nerror和寫入刪除次數(shù)Nwr的關(guān)系作為映射求出,將由糾正信息存儲部132存儲的η個執(zhí)行用碼長Scode的BCH碼可檢測的數(shù)據(jù)的錯誤數(shù)的上限即上限錯誤數(shù)Nmax設(shè)為錯誤數(shù)Nerror后,作為與該錯誤數(shù)Nerror對應(yīng)的寫入刪除次數(shù)Nwr而設(shè)定的。圖12是錯誤數(shù)Nerror和寫入刪除次數(shù)Nwr的關(guān)系的說明圖。錯誤數(shù)Nerror和寫入刪除次數(shù)Nwr形成圖示的關(guān)系的原因是,閃速存儲器12中,一般隨著對閃速存儲單元的寫入刪除次數(shù)Nwr的增多,閃速存儲單元的柵極絕緣膜劣化,因此對閃速存儲單元的寫入刪除次數(shù)Nwr越多,錯誤數(shù)Nerror越多。另外,上限錯誤數(shù)Nmax 根據(jù)執(zhí)行用碼長Scode而確定,由于由向512字節(jié)的數(shù)據(jù)附加104比特的校驗位的碼長為 (512字節(jié)+104比特)的η個BCH碼中1個BCH碼可檢測的錯誤數(shù)的上限為8比特,因此, 上限錯誤數(shù)Nmax設(shè)為ηΧ 8比特,由于由向IK字節(jié)的數(shù)據(jù)附加210比特的校驗位的碼長為 (1Κ字節(jié)+210比特)的η個BCH碼中1個BCH碼可檢測的錯誤數(shù)的上限為15比特,因此, 上限錯誤數(shù)Nmax設(shè)為ηΧ 15比特。在寫入刪除次數(shù)Nwr超過判定用閾值Nref時(步驟S200),將糾正信息存儲部132 存儲的執(zhí)行用數(shù)據(jù)長度Sdata的2倍的數(shù)據(jù)長作為執(zhí)行用數(shù)據(jù)長度Sdata存儲,將比執(zhí)行用數(shù)據(jù)長度Sdata長,可檢測比上限錯誤數(shù)Nmax多的錯誤的碼長Scref作為執(zhí)行用碼長 kode,在糾正信息存儲部132存儲(步驟S210),在寫入刪除次數(shù)Nwr在判定用閾值Nref 以下時(步驟S200),不變更糾正信息存儲部132存儲的執(zhí)行用碼長Scode和執(zhí)行用數(shù)據(jù)長度Sdata,結(jié)束處理。從而,在錯誤數(shù)據(jù)數(shù)Nerror超過上限錯誤數(shù)Nmax時,由糾正信息存儲部132存儲長的執(zhí)行用數(shù)據(jù)長度Sdata及執(zhí)行用碼長&0如。例如,步驟S210的處理執(zhí)行前,在糾正信息存儲部132存儲512字節(jié)作為執(zhí)行用數(shù)據(jù)長度Sdata,存儲(512字節(jié)+104 比特)作為執(zhí)行用碼長&0如的場合,在步驟S210的處理執(zhí)行后,在糾正信息存儲部132存儲IK字節(jié)作為執(zhí)行用數(shù)據(jù)長度Sdata,存儲(1K字節(jié)+210比特)作為執(zhí)行用碼長kode。對控制電路140,從主機裝置經(jīng)由主機接口電路122輸入各種控制信號,并從閃速存儲器112經(jīng)由存儲器接口電路IM輸入表示閃速存儲器112的狀態(tài)的各種信號,從控制電路140輸出閃速存儲器12的寫入數(shù)據(jù)的頁面的信息、刪除數(shù)據(jù)的塊的信息、用于控制緩沖器電路126、數(shù)據(jù)反相電路128、糾錯電路130、閃速存儲器112的控制信號。這樣構(gòu)成的實施例的閃速存儲器系統(tǒng)110中,經(jīng)由主機接口電路122,從主機裝置 160向控制電路140輸入請求向閃速存儲器112寫入數(shù)據(jù)的寫入請求信號和表示向閃速存儲器112寫入數(shù)據(jù)的地址的地址信號后,控制電路140控制主機接口電路122、緩沖器電路 126、數(shù)據(jù)反相電路128、糾錯電路130、存儲器接口電路124,使得來自主機裝置160的數(shù)據(jù)經(jīng)由主機接口電路122、緩沖器電路126、數(shù)據(jù)反相電路128、糾錯電路130從存儲器接口電路124向閃速存儲器112輸出。從緩沖器電路1 輸入數(shù)據(jù)的數(shù)據(jù)反相電路128,按4比特讀出來自緩沖器電路126的數(shù)據(jù),根據(jù)讀出的4比特的數(shù)據(jù)所包含的"1"的數(shù)據(jù)的數(shù)和"0"的數(shù)據(jù)的數(shù),附加反相標志或不反相標志,將5比特的數(shù)據(jù)輸入糾錯電路130的編碼部134。輸入數(shù)據(jù)的糾錯電路130的編碼部134按執(zhí)行用數(shù)據(jù)長度Sdata依次讀入輸入的數(shù)據(jù),編碼為執(zhí)行用碼長kode的BCH碼,向存儲器接口電路124輸出。這樣,控制電路 140控制閃速存儲器112,使得從存儲器接口電路IM經(jīng)由糾錯電路130將編碼為執(zhí)行用碼長&0如的BCH碼的數(shù)據(jù)按頁面單位存儲到閃速存儲器112。從而,輸入寫入請求信號時, 可將編碼為執(zhí)行用碼長Scode的BCH碼的數(shù)據(jù)在閃速存儲器112存儲。另外,從主機裝置160經(jīng)由主機接口電路122向控制電路140輸入請求讀出閃速存儲器112存儲的數(shù)據(jù)的讀出請求信號和表示閃速存儲器112的讀出目的地的地址的地址信號后,控制電路140控制閃速存儲器112,使得從閃速存儲器112按頁面單位讀出數(shù)據(jù)。 控制電路140控制主機接口電路122、緩沖器電路126、數(shù)據(jù)反相電路128、糾錯電路130、存儲器接口電路124,使得從閃速存儲器112讀出的數(shù)據(jù)經(jīng)由存儲器接口電路124、糾錯電路 130、數(shù)據(jù)反相電路128、緩沖器電路1 從主機接口電路122向主機裝置160輸出。輸入了數(shù)據(jù)的糾錯電路130的解碼部136按執(zhí)行用碼長Scode讀入輸入的數(shù)據(jù),若讀入的數(shù)據(jù)中存在產(chǎn)生比特錯誤的數(shù)據(jù),則將采用BCH碼執(zhí)行糾錯后解碼的執(zhí)行用數(shù)據(jù)長度Sdata的數(shù)據(jù)輸入數(shù)據(jù)反相電路128,若讀入的數(shù)據(jù)不產(chǎn)生比特錯誤,則將讀入數(shù)據(jù)解碼后的執(zhí)行用數(shù)據(jù)長度Sdata的數(shù)據(jù)輸入數(shù)據(jù)反相電路128。輸入了數(shù)據(jù)的數(shù)據(jù)反相電路1 按5比特讀入數(shù)據(jù),在讀入的數(shù)據(jù)包含反相比特時,執(zhí)行比特反相,將去除了反相比特的4比特的數(shù)據(jù)向緩沖器電路126輸出,在讀入數(shù)據(jù)不包含不反相比特時,將去除了不反相比特的4比特的數(shù)據(jù)向緩沖器電路126輸出。從而,輸入讀出請求信號時,在閃速存儲器112存儲的數(shù)據(jù)產(chǎn)生比特錯誤時,可以在錯誤糾正后向主機裝置160輸出,可以降低在從閃速存儲器112讀出的數(shù)據(jù)發(fā)生比特錯誤的幾率,可以提高閃速存儲器系統(tǒng)110的可靠性。而且,從主機裝置160經(jīng)由主機接口電路122向控制電路140輸入請求刪除閃速存儲器112存儲的數(shù)據(jù)的刪除請求信號和表示要刪除塊的信息的塊信息信號時,控制電路 140控制閃速存儲器112,使得從與要刪除塊對應(yīng)的閃速存儲器112的區(qū)域讀出數(shù)據(jù)。這樣構(gòu)成的閃速存儲器系統(tǒng)110中,由寫入刪除次數(shù)計數(shù)電路1 計數(shù)的寫入刪除次數(shù)Nwr若超過判定用閾值Nref,則糾錯電路130的存儲處理部138將糾正信息存儲部 132存儲的執(zhí)行用數(shù)據(jù)長度Sdata的2倍的數(shù)據(jù)長作為執(zhí)行用數(shù)據(jù)長度Sdata存儲,將比先前存儲的執(zhí)行用數(shù)據(jù)長度Sdata長且可檢測比由先前存儲的執(zhí)行用碼長&0如的BCH碼可檢測的錯誤數(shù)的上限附近的值多的錯誤的碼長,作為執(zhí)行用碼長Scode在糾正信息存儲部132存儲。圖13是閃速存儲器112存儲的數(shù)據(jù)產(chǎn)生了比特錯誤的情形的一例的說明圖。 這里,為了說明,對1個執(zhí)行用碼長&0如的數(shù)據(jù),檢測錯誤數(shù)據(jù)數(shù)Nerror。圖中,「X」符號表示產(chǎn)生比特錯誤的數(shù)據(jù)的位置。這里,為了說明,設(shè)為最初在糾錯電路130的糾正信息存儲部132,存儲512字節(jié)作為執(zhí)行用數(shù)據(jù)長度Sdata,存儲(512字節(jié)+104比特)作為執(zhí)行用碼長kode,最初在從閃速存儲器112讀出的執(zhí)行用碼長kode(512字節(jié)+104比特) 的數(shù)據(jù)中產(chǎn)生9比特的比特錯誤,接著,在從閃速存儲器112讀出的執(zhí)行用碼長kode (512 字節(jié)+104比特)的數(shù)據(jù)中產(chǎn)生2比特的比特錯誤。讀出請求信號輸入時,最初向糾錯電路 130的解碼部136輸入執(zhí)行用碼長Scode (512字節(jié)+104比特)的數(shù)據(jù)。對于該BCH碼,雖然可糾正至8比特的比特錯誤(上限錯誤數(shù)Nmax為值8),但是,由于最初讀出的數(shù)據(jù)產(chǎn)生了 9比特的比特錯誤,因此,對于碼長為(512字節(jié)+104比特)的BCH碼,無法由錯誤糾正電路130糾錯。實施例的糾錯電路130中,寫入刪除次數(shù)計數(shù)電路129計數(shù)的寫入刪除次數(shù)Nwr若超過判定用閾值Nref,則在糾正信息存儲部132,存儲IK字節(jié)作為執(zhí)行用數(shù)據(jù)長度Sdata,存儲(1K字節(jié)+210比特)作為執(zhí)行用碼長kode,接著,在寫入請求信號輸入時, 數(shù)據(jù)的尺寸為IK字節(jié),校驗位為210比特的(1K字節(jié)+210比特)的碼長的BCH碼在閃速存儲器112存儲,從閃速存儲器112讀出數(shù)據(jù)時,作為碼長為(1K字節(jié)+210比特)的BCH 碼,讀出數(shù)據(jù)。此時,如圖示,在讀出的數(shù)據(jù)產(chǎn)生11比特的比特錯誤,但是,碼長為(1K字節(jié) +210比特)的BCH碼中可糾正至15比特為止的比特錯誤,因此可以糾正這樣的錯誤。這樣,在寫入刪除次數(shù)計數(shù)電路1 計數(shù)的寫入刪除次數(shù)Nwr超過判定用閾值Nref時,通過延長糾正信息存儲部132存儲的執(zhí)行用數(shù)據(jù)長度Sdata和執(zhí)行用碼長&0如,可以糾正更多的錯誤。根據(jù)以上說明的第2實施例的閃速存儲器系統(tǒng)110,在寫入刪除次數(shù)計數(shù)電路129 計數(shù)的寫入刪除次數(shù)Nwr超過判定用閾值Nref時,糾錯電路130的存儲處理部138,將可檢測比上限錯誤數(shù)Nmax多的錯誤且數(shù)據(jù)的長度比糾正信息存儲部132存儲的執(zhí)行用數(shù)據(jù)長度Sdata長的數(shù)據(jù)的長度及BCH碼的碼長分別作為執(zhí)行用數(shù)據(jù)長度Sdata及執(zhí)行用碼長 kode,在糾正信息存儲部132存儲,接著,寫入請求信號輸入時,糾錯電路130的編碼部134 按更長的執(zhí)行用數(shù)據(jù)長度Sdata依次讀入輸入的數(shù)據(jù),將該讀入數(shù)據(jù)編碼為更長的執(zhí)行用碼長&0如的BCH碼并輸出,接著,讀出請求信號輸入時,糾錯電路130的解碼部136可由更長的執(zhí)行用碼長&0(1的BCH碼對數(shù)據(jù)糾錯。從而,可以糾正更多的錯誤。另外,數(shù)據(jù)反相電路128從緩沖器電路126按4比特讀出數(shù)據(jù),讀出的4比特的數(shù)據(jù)所包含的"0"的數(shù)據(jù)的數(shù)比"1"的數(shù)據(jù)的數(shù)多時,執(zhí)行將"1"的數(shù)據(jù)反相為"0"并將"0"的數(shù)據(jù)反相為"1"的比特反相并附加"1"的反相標志后向糾錯電路130輸出,在讀出的4比特的數(shù)據(jù)所包含的"0"的數(shù)據(jù)的數(shù)為"1"的數(shù)據(jù)的數(shù)以下時,不執(zhí)行比特反相,附加表示不執(zhí)行比特反相的"0"的不反相標志后向糾錯電路130輸出。從而,可以進一步降低閃速存儲器112存儲的數(shù)據(jù)產(chǎn)生錯誤的幾率。第2實施例的閃速存儲器系統(tǒng)110中,存儲控制器120控制包括具備多個閃速存儲單元的閃速存儲單元陣列的NAND型閃速存儲器,但是作為存儲控制器120控制的存儲器,不限于NAND型閃速存儲器,也可以是NOR型的閃速存儲器。另外,作為由存儲控制器 120控制的存儲器,不限于閃速存儲器,只要是具有隨著寫入刪除次數(shù)而使存儲的數(shù)據(jù)產(chǎn)生錯誤的幾率提高的傾向的非易失性存儲器即可,例如,也可以是通過改變材料的結(jié)晶構(gòu)造而存儲數(shù)據(jù)的相變存儲器、利用電子的旋轉(zhuǎn)而作為存儲元件來存儲數(shù)據(jù)的磁阻存儲器、利用強電介質(zhì)的遲滯(遲滯現(xiàn)象)使正負的自發(fā)極化與1和0對應(yīng)來存儲數(shù)據(jù)的強電介質(zhì)存儲器、利用電壓的施加引起電氣阻抗的變化來存儲數(shù)據(jù)的電阻變化型存儲器。第1、第2實施例的閃速存儲器系統(tǒng)10、110中,將上限錯誤數(shù)Nmax設(shè)為由數(shù)據(jù)長為執(zhí)行用數(shù)據(jù)Sdata、碼長為執(zhí)行用碼長&0如的η個BCH碼可檢測的錯誤數(shù)的上限,但是, 也可以設(shè)為比這樣的錯誤數(shù)的上限小若干的值。例如,向512字節(jié)的數(shù)據(jù)附加104比特的校驗位的碼長為(512字節(jié)+104比特)的η個BCH碼中,1個BCH碼可檢測的錯誤數(shù)的上限為8比特,因此,期望將上限錯誤數(shù)Nmax設(shè)為比ηΧ8比特小幾比特到十幾比特,向IK字節(jié)的數(shù)據(jù)附加210比特的校驗位的碼長為(1Κ字節(jié)+210比特)的η個BCH碼中,1個BCH碼可檢測的錯誤數(shù)的上限為15比特,因此,期望將上限錯誤數(shù)Nmax設(shè)為比ηΧ15比特小幾比特到十幾比特。第1、第2實施例的閃速存儲器系統(tǒng)10、110中,在存儲處理部38、138中,將比糾正信息存儲部32、132存儲的執(zhí)行用數(shù)據(jù)長度Sdata長的數(shù)據(jù)的長度及BCH碼的碼長分別作為執(zhí)行用數(shù)據(jù)長度Sdata及執(zhí)行用碼長Scode在糾正信息存儲部32、132存儲時,也可以以小于執(zhí)行用碼長Scode的上限即上限執(zhí)行用碼長kmax的方式,確定執(zhí)行用數(shù)據(jù)長度 Sdata、執(zhí)行用碼長kode,在糾正信息存儲部32、132存儲。該場合,也可以將上限執(zhí)行用碼長Scmax設(shè)定成,使糾錯電路30的消耗功率成為糾錯電路30容許的容許功率以下的執(zhí)行用碼長Scode或者使由主機接口電路22、緩沖器電路沈、數(shù)據(jù)反相電路觀、糾錯電路30、存儲器接口電路M組合的電路的消耗功率成為將這些組合的電路容許的容許功率以下的執(zhí)行用碼長&0如,或者使存儲控制器120的消耗功率成為存儲控制器容許的容許功率以下的執(zhí)行用碼長kode。這樣設(shè)定是基于以下情況由于執(zhí)行用碼長Scode越長則糾錯電路 30的消耗功率越大,因此有糾錯電路30的消耗功率,由主機接口電路22、緩沖器電路26、數(shù)據(jù)反相電路觀、糾錯電路30、存儲器接口電路M組合的電路的消耗功率以及存儲控制器 120的消耗功率變大的傾向。這樣,可以抑制糾錯電路30,由主機接口電路22、緩沖器電路 26、數(shù)據(jù)反相電路觀、糾錯電路30、存儲器接口電路M組合的電路以及存儲控制器120的消耗功率分別超過容許的容許功率。另外,也可以將上限執(zhí)行用碼長kmax設(shè)定成使存儲器接口電路M在單位時間從閃速存儲器12可讀出數(shù)據(jù)的數(shù)據(jù)量即讀出速度成為存儲器接口電路M容許的容許讀出速度以下的執(zhí)行用碼長kode。這樣設(shè)定是基于存在執(zhí)行用碼長&0如越長則存儲器接口電路對中的讀出速度越慢的傾向。這樣,可以抑制從閃速存儲器12讀出數(shù)據(jù)的讀出速度成為容許讀出速度以下。另外,也可以將上限執(zhí)行用碼長義!??!狀設(shè)定成,使糾錯電路30的面積成為糾錯電路30容許的容許面積以下的執(zhí)行用碼長kode, 或者使由主機接口電路22、緩沖器電路沈、數(shù)據(jù)反相電路觀、糾錯電路30、存儲器接口電路 M組合的電路的面積成為它們組合的電路容許的容許面積以下的執(zhí)行用碼長&0如,或者使存儲控制器120的面積成為存儲控制器容許的容許面積以下的執(zhí)行用碼長kode。這樣設(shè)定是基于以下情況由于執(zhí)行用碼長Scode越長則糾錯電路30的面積越大,因此有糾錯電路30的面積,由主機接口電路22、緩沖器電路沈、數(shù)據(jù)反相電路觀、糾錯電路30、存儲器接口電路M組合的電路的面積以及存儲控制器120的面積變大的傾向。這樣,可以抑制糾錯電路30,由主機接口電路22、緩沖器電路沈、數(shù)據(jù)反相電路觀、糾錯電路30、存儲器接口電路M組合的電路以及存儲控制器120的面積分別超過容許的容許面積。而且,也可以考慮上述電路的消耗功率及讀出速度、電路的面積中的多個來設(shè)定上限執(zhí)行用碼長義!!!狀。第1、第2實施例的閃速存儲器系統(tǒng)10、110中,存儲處理部38、138在寫入刪除次數(shù)Nwr超過判定用閾值Nref時,將糾正信息存儲部132存儲的執(zhí)行用數(shù)據(jù)長度Sdata的2 倍的數(shù)據(jù)長作為執(zhí)行用數(shù)據(jù)長度Sdata,在糾正信息存儲部132存儲,但是,將比執(zhí)行用數(shù)據(jù)長度Sdata長的數(shù)據(jù)長作為執(zhí)行用數(shù)據(jù)長度Sdata在糾正信息存儲部132存儲即可,因此,例如,也可以將糾正信息存儲部132存儲的執(zhí)行用數(shù)據(jù)長度Sdata的m倍(m是3以上的整數(shù))的數(shù)據(jù)長作為執(zhí)行用數(shù)據(jù)長度Sdata,在糾正信息存儲部132存儲。第1、第2實施例的閃速存儲器系統(tǒng)10、110中,數(shù)據(jù)反相電路觀、1觀從緩沖器電路沈、1沈按4比特讀出數(shù)據(jù),根據(jù)讀出的4比特的數(shù)據(jù)所包含的"1"的數(shù)據(jù)的數(shù)和〃 0〃 的數(shù)據(jù)的數(shù),附加1比特的反相標志或不反相標志,但是,無論從緩沖器電路26、I^H賣出的數(shù)據(jù)或者反相標志、不反相標志的尺寸(比特數(shù))如何,只要對來自糾錯電路130的數(shù)據(jù)考慮附加的反相標志、不反相標志的尺寸,將去除了反相標志、不反相標志的數(shù)據(jù)向緩沖器電路洸、1 輸出即可。第1、第2實施例的閃速存儲器系統(tǒng)10、110中,數(shù)據(jù)編碼時采用了 BCH碼,但是作為進行這樣的糾錯的碼,不限于BCH碼,也可以采用里德-所羅門碼等的塊碼或者LDPC碼等的卷積碼。第1、第2實施例的閃速存儲器系統(tǒng)10、110中,存儲控制器120具備數(shù)據(jù)反相電路觀、1觀,但是,也可以使存儲控制器120不具備數(shù)據(jù)反相電路觀、1觀,而在緩沖器電路沈、 126和糾錯電路30、130之間輸入輸出數(shù)據(jù)。第1、第2實施例的閃速存儲器系統(tǒng)10、110中,閃速存儲單元是將向浮置柵極注入電子的狀態(tài)作為"0"的數(shù)據(jù)存儲,將從浮置柵極抽出電子后浮置柵極的電子比"0"的狀態(tài)少的狀態(tài)作為"1"的數(shù)據(jù)存儲的二值存儲的元件,但是,例如,也可以采用將對浮置柵極的電子注入量控制為4級的可存儲〃 00〃、丨‘01"、丨‘10〃、丨‘11〃的4值等比二值多的多值存儲的元件。第1、第2實施例的閃速存儲器系統(tǒng)10、110中,閃速存儲器12、112和存儲控制器 120、120在不同半導體芯片上形成,但是,也可以在同一半導體芯片上形成。以上,用實施例說明本發(fā)明實施的形態(tài),但是本發(fā)明不限于這樣的實施例,在不脫離本發(fā)明的要旨的范圍內(nèi),當然可以各種各樣的形態(tài)實施。另外,本發(fā)明是平成21年度獨立行政法人科學技術(shù)振興機構(gòu)的戰(zhàn)略的創(chuàng)造研究推進事業(yè)的研究課題“可靠的無線固態(tài)硬盤”的成果。
權(quán)利要求
1.一種數(shù)據(jù)輸入輸出控制裝置,將從主機裝置輸入的數(shù)據(jù)編碼為規(guī)定糾錯碼并在非易失性的半導體存儲裝置存儲,并且輸入在上述半導體存儲裝置存儲的數(shù)據(jù),用上述規(guī)定糾錯碼對該輸入數(shù)據(jù)糾錯并解碼,向上述主機裝置輸出,其特征在于,具備數(shù)據(jù)糾正輸入輸出電路,其具備糾錯信息存儲部,其存儲編碼為上述規(guī)定糾錯碼的數(shù)據(jù)的長度即執(zhí)行用數(shù)據(jù)長度以及上述規(guī)定糾錯碼的長度即執(zhí)行用碼長;編碼部,其按上述存儲的執(zhí)行用數(shù)據(jù)長度依次讀入輸入的數(shù)據(jù),將該讀入數(shù)據(jù)編碼為上述執(zhí)行用碼長的上述規(guī)定糾錯碼,向上述半導體存儲裝置輸出;解碼部,其按上述存儲的執(zhí)行用碼長依次讀入輸入的數(shù)據(jù),通過上述規(guī)定糾錯碼對該讀入數(shù)據(jù)糾錯并解碼,向上述主機裝置輸出;錯誤檢測部,其按上述存儲的執(zhí)行用碼長依次讀入輸入的數(shù)據(jù),通過上述規(guī)定糾錯碼對該讀入的 η個(η是1以上的整數(shù))數(shù)據(jù),檢測上述讀入數(shù)據(jù)中發(fā)生錯誤的數(shù)據(jù)數(shù)即錯誤數(shù)據(jù)數(shù);和存儲處理部,其在上述檢測的錯誤數(shù)據(jù)數(shù)超過預(yù)定的上限錯誤數(shù)時,將可糾正及檢測比由1 個上述執(zhí)行用碼長的規(guī)定糾錯碼可糾正及檢測的錯誤數(shù)的上限多的錯誤且數(shù)據(jù)的長度比上述糾錯信息存儲部存儲的執(zhí)行用數(shù)據(jù)長度長的數(shù)據(jù)的長度以及上述規(guī)定糾錯碼的碼長, 分別作為上述執(zhí)行用數(shù)據(jù)長度以及上述執(zhí)行用碼長在上述糾錯信息存儲部存儲;和控制電路,其在從上述主機裝置輸入請求向上述半導體存儲裝置進行數(shù)據(jù)寫入的寫入請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得從上述主機裝置輸入的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的編碼部,從上述數(shù)據(jù)糾正輸入輸出電路的編碼部輸出的數(shù)據(jù)向上述半導體存儲裝置輸出并且該輸出的數(shù)據(jù)在上述半導體存儲裝置存儲,在從上述主機裝置輸入請求將上述半導體存儲裝置存儲的數(shù)據(jù)讀出的讀出請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得上述半導體存儲裝置存儲的數(shù)據(jù)被讀出,該讀出的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的解碼部,從該數(shù)據(jù)糾正輸入輸出電路的解碼部輸出的數(shù)據(jù)向上述主機裝置輸出,在從上述主機裝置輸入請求刪除上述半導體存儲裝置存儲的數(shù)據(jù)的刪除請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得上述半導體存儲裝置存儲的數(shù)據(jù)被讀出,該讀出的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的錯誤檢測部后,將上述半導體存儲裝置存儲的數(shù)據(jù)刪除。
2.如權(quán)利要求1所述的數(shù)據(jù)輸入輸出控制裝置,其特征在于,上述數(shù)據(jù)糾正輸入輸出電路的存儲處理部,在上述檢測的錯誤數(shù)超過上述上限錯誤數(shù)時,將上述存儲的執(zhí)行用數(shù)據(jù)長度的m倍(m是2以上的整數(shù))的數(shù)據(jù)長度作為上述執(zhí)行用數(shù)據(jù)長度,在上述糾錯信息存儲部存儲。
3.一種數(shù)據(jù)輸入輸出控制裝置,將從主機裝置輸入的數(shù)據(jù)編碼為規(guī)定糾錯碼并在非易失性的半導體存儲裝置存儲,并且輸入在上述半導體存儲裝置存儲的數(shù)據(jù),用上述規(guī)定糾錯碼對該輸入數(shù)據(jù)糾錯并解碼,向上述主機裝置輸出,其特征在于,具備寫入次數(shù)計數(shù)電路,其對向上述半導體存儲裝置寫入數(shù)據(jù)的次數(shù)和將上述半導體存儲裝置存儲的數(shù)據(jù)刪除的次數(shù)之和的次數(shù)即寫入刪除次數(shù)計數(shù);數(shù)據(jù)糾正輸入輸出電路,其具備糾錯信息存儲部,其存儲編碼為上述規(guī)定糾錯碼的數(shù)據(jù)的長度即執(zhí)行用數(shù)據(jù)長度以及上述規(guī)定糾錯碼的長度即執(zhí)行用碼長;編碼部,其按上述存儲的執(zhí)行用數(shù)據(jù)長度依次讀入輸入的數(shù)據(jù),將該讀入數(shù)據(jù)編碼為上述執(zhí)行用碼長的上述規(guī)定糾錯碼,向上述半導體存儲裝置輸出;解碼部,其按上述存儲的執(zhí)行用碼長依次讀入輸入的數(shù)據(jù),通過上述規(guī)定糾錯碼對該讀入數(shù)據(jù)糾錯并解碼,向上述主機裝置輸出;和存儲處理部,其在上述計數(shù)的寫入刪除次數(shù)超過推定的在η個(η是1以上的整數(shù))執(zhí)行用碼長的數(shù)據(jù)中產(chǎn)生比預(yù)定的上限錯誤數(shù)多的錯誤的寫入刪除次數(shù)即判定用閾值時,將可糾正及檢測比由1個上述執(zhí)行用碼長的規(guī)定糾錯碼可糾正及檢測的錯誤數(shù)的上限多的錯誤且數(shù)據(jù)的長度比上述糾錯信息存儲部存儲的執(zhí)行用數(shù)據(jù)長度長的數(shù)據(jù)的長度以及上述規(guī)定糾錯碼的碼長,分別作為上述執(zhí)行用數(shù)據(jù)長度以及上述執(zhí)行用碼長在上述糾錯信息存儲部存儲;和控制電路,其在從上述主機裝置輸入請求向上述半導體存儲裝置進行數(shù)據(jù)寫入的寫入請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得從上述主機裝置輸入的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的編碼部,從上述數(shù)據(jù)糾正輸入輸出電路的編碼部輸出的數(shù)據(jù)向上述半導體存儲裝置輸出并且該輸出的數(shù)據(jù)在上述半導體存儲裝置存儲,在從上述主機裝置輸入請求將上述半導體存儲裝置存儲的數(shù)據(jù)讀出的讀出請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得上述半導體存儲裝置存儲的數(shù)據(jù)被讀出,該讀出的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的解碼部,從該數(shù)據(jù)糾正輸入輸出電路的解碼部輸出的數(shù)據(jù)向上述主機裝置輸出,在從上述主機裝置輸入請求刪除上述半導體存儲裝置存儲的數(shù)據(jù)的刪除請求信號時,控制上述半導體存儲裝置,使得上述半導體存儲裝置存儲的數(shù)據(jù)被刪除。
4.如權(quán)利要求3所述的數(shù)據(jù)輸入輸出控制裝置,其特征在于,上述數(shù)據(jù)糾正輸入輸出電路的存儲處理部,在上述計數(shù)的寫入刪除次數(shù)超過上述判定用閾值時,將上述存儲的執(zhí)行用數(shù)據(jù)長度的m倍(m是2以上的整數(shù))的數(shù)據(jù)長度作為上述執(zhí)行用數(shù)據(jù)長度,在上述糾錯信息存儲部存儲。
5.如權(quán)利要求1或3所述的數(shù)據(jù)輸入輸出控制裝置,其特征在于,上述數(shù)據(jù)糾正輸入輸出電路的存儲處理部,在上述糾錯信息存儲部存儲上述執(zhí)行用數(shù)據(jù)長度和上述執(zhí)行用碼長,上述執(zhí)行用數(shù)據(jù)長度和上述執(zhí)行用碼長以上述糾錯信息存儲部中存儲的執(zhí)行用碼長比預(yù)定的上限功率容許碼長短的方式設(shè)定,上述預(yù)定的上限功率容許碼長是上述數(shù)據(jù)糾正輸入輸出電路消耗的功率成為上述數(shù)據(jù)糾正輸入輸出電路容許消耗的容許功率以下的上述執(zhí)行用碼長的上限。
6.如權(quán)利要求1或3所述的數(shù)據(jù)輸入輸出控制裝置,其特征在于,上述數(shù)據(jù)糾正輸入輸出電路的存儲處理部,在上述糾錯信息存儲部存儲上述執(zhí)行用數(shù)據(jù)長度和上述執(zhí)行用碼長,上述執(zhí)行用數(shù)據(jù)長度和上述執(zhí)行用碼長以上述糾錯信息存儲部中存儲的執(zhí)行用碼長比預(yù)定的上限速度容許碼長短的方式設(shè)定,上述預(yù)定的上限速度容許碼長是讀出速度成為上述數(shù)據(jù)糾正輸入輸出電路容許的容許讀出速度以下的上述執(zhí)行用碼長的上限,上述讀出速度是上述數(shù)據(jù)糾正輸入輸出電路在單位時間從上述半導體存儲裝置可讀出的數(shù)據(jù)量。
7.如權(quán)利要求1或3所述的數(shù)據(jù)輸入輸出控制裝置,其特征在于,上述數(shù)據(jù)糾正輸入輸出電路的存儲處理部,在上述糾錯信息存儲部存儲上述執(zhí)行用數(shù)據(jù)長度和上述執(zhí)行用碼長,上述執(zhí)行用數(shù)據(jù)長度和上述執(zhí)行用碼長以上述糾錯信息存儲部中存儲的執(zhí)行用碼長比預(yù)定的上限面積容許碼長短的方式設(shè)定,上述預(yù)定的上限面積容許碼長是上述數(shù)據(jù)糾正輸入輸出電路的面積成為上述數(shù)據(jù)糾正輸入輸出電路容許的容許面積以下的上述執(zhí)行用碼長的上限。
8.如權(quán)利要求1或3所述的數(shù)據(jù)輸入輸出控制裝置,其特征在于,上述半導體存儲裝置具備多個根據(jù)對浮置柵極的電子注入量將多個電子注入狀態(tài)作為多值存儲進行存儲并具有隨著對上述浮置柵極的電子注入量越多越促進劣化的傾向的半導體存儲元件,上述數(shù)據(jù)糾正輸入輸出電路具備數(shù)據(jù)變換部,其按第1長度依次讀入上述輸入的數(shù)據(jù),在上述讀入的第1長度的數(shù)據(jù)中的、將上述半導體存儲元件設(shè)為對上述浮置柵極的電子注入量比預(yù)定的規(guī)定電子注入狀態(tài)多的狀態(tài)下的高電子注入數(shù)據(jù)的數(shù),在將上述半導體存儲元件設(shè)為對上述浮置柵極的電子注入量比上述規(guī)定電子注入狀態(tài)少的狀態(tài)下的低電子注入數(shù)據(jù)的數(shù)以下時,附加第2長度的第1標志,向上述編碼部輸出,在上述讀入的第1長度的數(shù)據(jù)中的上述高電子注入數(shù)據(jù)的數(shù)超過上述低電子注入數(shù)據(jù)的數(shù)時,實施將上述高電子注入數(shù)據(jù)變換為上述低電子注入數(shù)據(jù)并將上述低電子注入數(shù)據(jù)變換為上述高電子注入數(shù)據(jù)的數(shù)據(jù)變換,向該數(shù)據(jù)變換后的數(shù)據(jù)附加上述第2長度的第2標志,向上述編碼部輸出,并按在上述第1長度加上上述第2長度的第3長度依次讀入從上述解碼部輸出的數(shù)據(jù),在上述讀入的第3長度的數(shù)據(jù)包含上述第1標志時,輸出從上述數(shù)據(jù)刪除了上述第1標志的數(shù)據(jù),并且在上述讀入的第3長度的數(shù)據(jù)包含上述第2標志時,對刪除了上述第2標志的上述第1長度的數(shù)據(jù)實施上述數(shù)據(jù)變換后輸出,上述控制電路,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得從上述主機裝置輸入上述寫入請求信號時,從上述主機裝置輸入的數(shù)據(jù)經(jīng)由上述數(shù)據(jù)糾正輸入輸出電路的上述數(shù)據(jù)變換部輸入上述編碼部,從上述主機裝置輸入上述讀出請求信號時,從上述數(shù)據(jù)糾正輸入輸出電路的解碼部輸出的數(shù)據(jù)經(jīng)由上述數(shù)據(jù)變換部向上述主機裝置輸出ο
9.如權(quán)利要求8所述的數(shù)據(jù)輸入輸出控制裝置,其特征在于,上述半導體存儲元件是將對上述浮置柵極注入電子的高電子注入狀態(tài)和對上述浮置柵極注入的電子比上述高電子注入狀態(tài)少的低電子注入狀態(tài)作為二值存儲進行存儲的元件,上述高電子注入數(shù)據(jù)是將上述半導體存儲元件設(shè)為上述高電子注入狀態(tài)的數(shù)據(jù),上述低電子注入數(shù)據(jù)是將上述半導體存儲元件設(shè)為上述低電子注入狀態(tài)的數(shù)據(jù)。
10.如權(quán)利要求1或3所述的數(shù)據(jù)輸入輸出控制裝置,其特征在于,上述規(guī)定糾錯碼是塊碼或卷積碼。
11.如權(quán)利要求1或3所述的數(shù)據(jù)輸入輸出控制裝置,其特征在于,上述半導體存儲裝置,具有向上述半導體存儲裝置寫入數(shù)據(jù)的次數(shù)和刪除上述半導體存儲裝置存儲的數(shù)據(jù)的次數(shù)之和的次數(shù)即寫入刪除次數(shù)越多,則在存儲的數(shù)據(jù)產(chǎn)生錯誤的幾率越高的傾向。
12.如權(quán)利要求11所述的數(shù)據(jù)輸入輸出控制裝置,其特征在于,上述半導體存儲裝置,是NAND型閃速存儲器、NOR型閃速存儲器、相變存儲器、磁阻存儲器、強電介質(zhì)存儲器及電阻變化型存儲器之一或這些的多個組合。
13.如權(quán)利要求1或3所述的數(shù)據(jù)輸入輸出控制裝置,其特征在于,上述半導體存儲裝置,在與形成了上述數(shù)據(jù)輸入輸出控制裝置的半導體芯片不同的半導體芯片上形成。
14.一種半導體存儲裝置系統(tǒng),其特征在于,具備 非易失性的半導體存儲裝置;和數(shù)據(jù)輸入輸出控制裝置,其將從主機裝置輸入的數(shù)據(jù)編碼為規(guī)定糾錯碼并在上述半導體存儲裝置存儲,并且輸入在上述半導體存儲裝置存儲的數(shù)據(jù),用上述規(guī)定糾錯碼對該輸入數(shù)據(jù)糾錯并解碼,向上述主機裝置輸出, 上述數(shù)據(jù)輸入輸出控制裝置具備數(shù)據(jù)糾正輸入輸出電路,其具備糾錯信息存儲部,其存儲編碼為上述規(guī)定糾錯碼的數(shù)據(jù)的長度即執(zhí)行用數(shù)據(jù)長度以及上述規(guī)定糾錯碼的長度即執(zhí)行用碼長;編碼部,其按上述存儲的執(zhí)行用數(shù)據(jù)長度依次讀入輸入的數(shù)據(jù),將該讀入數(shù)據(jù)編碼為上述執(zhí)行用碼長的上述規(guī)定糾錯碼,向上述半導體存儲裝置輸出;解碼部,其按上述存儲的執(zhí)行用碼長依次讀入輸入的數(shù)據(jù),通過上述規(guī)定糾錯碼對該讀入數(shù)據(jù)糾錯并解碼,向上述主機裝置輸出;錯誤檢測部,其按上述存儲的執(zhí)行用碼長依次讀入輸入的數(shù)據(jù),通過上述規(guī)定糾錯碼對該讀入的 η個(η是1以上的整數(shù))數(shù)據(jù),檢測上述讀入數(shù)據(jù)中發(fā)生錯誤的數(shù)據(jù)數(shù)即錯誤數(shù)據(jù)數(shù);和存儲處理部,其在上述檢測的錯誤數(shù)據(jù)數(shù)超過預(yù)定的上限錯誤數(shù)時,將可糾正及檢測比由1 個上述執(zhí)行用碼長的規(guī)定糾錯碼可糾正及檢測的錯誤數(shù)的上限多的錯誤且數(shù)據(jù)的長度比上述糾錯信息存儲部存儲的執(zhí)行用數(shù)據(jù)長度長的數(shù)據(jù)的長度以及上述規(guī)定糾錯碼的碼長, 分別作為上述執(zhí)行用數(shù)據(jù)長度以及上述執(zhí)行用碼長在上述糾錯信息存儲部存儲;和控制電路,其在從上述主機裝置輸入請求向上述半導體存儲裝置進行數(shù)據(jù)寫入的寫入請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得從上述主機裝置輸入的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的編碼部,從上述數(shù)據(jù)糾正輸入輸出電路的編碼部輸出的數(shù)據(jù)向上述半導體存儲裝置輸出并且該輸出的數(shù)據(jù)在上述半導體存儲裝置存儲,在從上述主機裝置輸入請求將上述半導體存儲裝置存儲的數(shù)據(jù)讀出的讀出請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得上述半導體存儲裝置存儲的數(shù)據(jù)被讀出,該讀出的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的解碼部,從該數(shù)據(jù)糾正輸入輸出電路的解碼部輸出的數(shù)據(jù)向上述主機裝置輸出,在從上述主機裝置輸入請求刪除上述半導體存儲裝置存儲的數(shù)據(jù)的刪除請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得上述半導體存儲裝置存儲的數(shù)據(jù)被讀出,該讀出的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的錯誤檢測部后,將上述半導體存儲裝置存儲的數(shù)據(jù)刪除。
15.一種半導體存儲裝置系統(tǒng),其特征在于,具備 非易失性的半導體存儲裝置;和數(shù)據(jù)輸入輸出控制裝置,其將從主機裝置輸入的數(shù)據(jù)編碼為規(guī)定糾錯碼并在上述半導體存儲裝置存儲,并且輸入在上述半導體存儲裝置存儲的數(shù)據(jù),用上述規(guī)定糾錯碼對該輸入數(shù)據(jù)糾錯并解碼,向上述主機裝置輸出, 上述數(shù)據(jù)輸入輸出控制裝置具備寫入次數(shù)計數(shù)電路,其對向上述半導體存儲裝置寫入數(shù)據(jù)的次數(shù)和將上述半導體存儲裝置存儲的數(shù)據(jù)刪除的次數(shù)之和的次數(shù)即寫入刪除次數(shù)計數(shù);數(shù)據(jù)糾正輸入輸出電路,其具備糾錯信息存儲部,其存儲編碼為上述規(guī)定糾錯碼的數(shù)據(jù)的長度即執(zhí)行用數(shù)據(jù)長度以及上述規(guī)定糾錯碼的長度即執(zhí)行用碼長;編碼部,其按上述存儲的執(zhí)行用數(shù)據(jù)長度依次讀入輸入的數(shù)據(jù),將該讀入數(shù)據(jù)編碼為上述執(zhí)行用碼長的上述規(guī)定糾錯碼,向上述半導體存儲裝置輸出;解碼部,其按上述存儲的執(zhí)行用碼長依次讀入輸入的數(shù)據(jù),通過上述規(guī)定糾錯碼對該讀入數(shù)據(jù)糾錯并解碼,向上述主機裝置輸出;和存儲處理部,其在上述計數(shù)的寫入刪除次數(shù)超過推定的在η個(η是1以上的整數(shù))執(zhí)行用碼長的數(shù)據(jù)中產(chǎn)生比預(yù)定的上限錯誤數(shù)多的錯誤的寫入刪除次數(shù)即判定用閾值時,將可糾正及檢測比由1個上述執(zhí)行用碼長的規(guī)定糾錯碼可糾正及檢測的錯誤數(shù)的上限多的錯誤且數(shù)據(jù)的長度比上述糾錯信息存儲部存儲的執(zhí)行用數(shù)據(jù)長度長的數(shù)據(jù)的長度以及上述規(guī)定糾錯碼的碼長,分別作為上述執(zhí)行用數(shù)據(jù)長度以及上述執(zhí)行用碼長在上述糾錯信息存儲部存儲;和控制電路,其在從上述主機裝置輸入請求向上述半導體存儲裝置進行數(shù)據(jù)寫入的寫入請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得從上述主機裝置輸入的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的編碼部,從上述數(shù)據(jù)糾正輸入輸出電路的編碼部輸出的數(shù)據(jù)向上述半導體存儲裝置輸出并且該輸出的數(shù)據(jù)在上述半導體存儲裝置存儲,在從上述主機裝置輸入請求將上述半導體存儲裝置存儲的數(shù)據(jù)讀出的讀出請求信號時,控制上述數(shù)據(jù)糾正輸入輸出電路和上述半導體存儲裝置,使得上述半導體存儲裝置存儲的數(shù)據(jù)被讀出,該讀出的數(shù)據(jù)輸入上述數(shù)據(jù)糾正輸入輸出電路的解碼部,從該數(shù)據(jù)糾正輸入輸出電路的解碼部輸出的數(shù)據(jù)向上述主機裝置輸出,在從上述主機裝置輸入請求刪除上述半導體存儲裝置存儲的數(shù)據(jù)的刪除請求信號時,控制上述半導體存儲裝置,使得上述半導體存儲裝置存儲的數(shù)據(jù)被刪除。
全文摘要
本發(fā)明提供了數(shù)據(jù)輸入輸出控制裝置及半導體存儲裝置系統(tǒng)。存儲控制器的糾錯電路在檢測的錯誤數(shù)據(jù)數(shù)Nerror超過上限錯誤數(shù)Nmax時,將糾正信息存儲部存儲的執(zhí)行用數(shù)據(jù)長度Sdata的2倍的數(shù)據(jù)長度作為執(zhí)行用數(shù)據(jù)長度Sdata在糾正信息存儲部存儲,將可檢測比上限錯誤數(shù)Nmax多的錯誤的碼長Scref作為執(zhí)行用碼長Scode在糾正信息存儲部存儲(步驟S100、S110),通過這樣存儲的執(zhí)行用碼長Scode的BCH碼對輸入的數(shù)據(jù)編碼后,在半導體存儲裝置存儲,并且,輸入半導體存儲裝置所存儲的數(shù)據(jù),用BCH碼對輸入的數(shù)據(jù)糾錯并解碼。
文檔編號G06F11/10GK102289394SQ20111010851
公開日2011年12月21日 申請日期2011年4月28日 優(yōu)先權(quán)日2010年4月28日
發(fā)明者田中丸周平, 竹內(nèi)健 申請人:國立大學法人東京大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
宕昌县| 宝丰县| 仪征市| 遂宁市| 罗甸县| 冀州市| 阿克陶县| 张家口市| 分宜县| 荣成市| 晋江市| 广昌县| 潼南县| 彩票| 绥德县| 开江县| 建湖县| 于田县| 万全县| 噶尔县| 巴彦淖尔市| 仲巴县| 沧源| 巨野县| 塔河县| 犍为县| 喜德县| 东方市| 永城市| 舞阳县| 灌南县| 德格县| 临泉县| 马龙县| 五台县| 梁平县| 万安县| 土默特左旗| 年辖:市辖区| 平舆县| 陈巴尔虎旗|