專利名稱:計算機系統(tǒng)和存儲器用途設(shè)置程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明討論的實施例涉及一種計算機系統(tǒng)和一種存儲器用途(memoryuse)設(shè)置 程序,以有效利用在主存儲器中包含的每一個存儲區(qū)塊(memoryblock)。
背景技術(shù):
眾所周知,正如專利文件1和專利文件2中所公開的,普通計算機系統(tǒng)被配置為對 主存儲器進行診斷,檢測以某一長度劃分主存儲器區(qū)域而得的多個存儲區(qū)塊的每一個存儲 區(qū)中的壞區(qū)(bad area),并將其中檢測到壞區(qū)的存儲區(qū)塊識別為壞區(qū)塊。
專利文件1 日本特許公開專利號05-37969
專利文件2 日本特許公開專利號05-20207 對這種計算機系統(tǒng)的配置不允許使用識別出的壞區(qū)塊,而僅僅使用主存儲器中除 了壞區(qū)塊之外的正常的存儲區(qū)塊。 計算機系統(tǒng)通常對整個壞區(qū)塊都不予使用,但這樣一來計算機系統(tǒng)可能無法有效 利用整個主存儲器。
發(fā)明內(nèi)容
因此,本發(fā)明實施例的一方面的目的是提供一種計算機系統(tǒng),該計算機系統(tǒng)包括
存儲器,配置為存儲各種數(shù)據(jù);用途設(shè)置數(shù)據(jù)存儲器裝置,用來存儲表示多個存儲區(qū)塊中的
每一個存儲區(qū)塊的用途的用途設(shè)置數(shù)據(jù),其中所述多個存儲區(qū)塊是以某一長度劃分存儲器
而得;存儲器診斷裝置,用來對存儲器進行診斷,以檢測每一個存儲區(qū)塊中的壞區(qū);以及存
儲器用途設(shè)置裝置,根據(jù)由所述存儲器診斷裝置對每一個存儲區(qū)塊中的壞區(qū)的檢測結(jié)果,
設(shè)置存儲在所述用途設(shè)置數(shù)據(jù)存儲器裝置中的每一個存儲區(qū)塊的用途設(shè)置數(shù)據(jù)。 該計算機系統(tǒng)不僅給主存儲器的正常存儲區(qū)塊分配適當(dāng)?shù)挠猛?,還按照質(zhì)量級別
給其中的壞區(qū)塊分配適當(dāng)?shù)挠猛荆瑥亩行Ю弥鞔鎯ζ髦械拿恳粋€存儲區(qū)塊。
圖1為示出根據(jù)本發(fā)明一實施例的計算機系統(tǒng)配置的功能方框圖; 圖2詳細示出圖l所示的DRAM (Dynamic Random Access Memory,動態(tài)隨機存取存 儲器); 圖3為詳細示出圖1所示的BI0S程序的功能方框圖; 圖4詳細示出圖1所示的用途設(shè)置數(shù)據(jù); 圖5詳細示出圖1所示的用途設(shè)置表格; 圖6示出通過存儲器用途設(shè)置裝置來設(shè)置用途設(shè)置數(shù)據(jù)的過程的實例; 圖7示出通過存儲器用途設(shè)置裝置來設(shè)置用途設(shè)置數(shù)據(jù)的過程的另一實例;
3
圖8是一流程圖,示出實施例中計算機系統(tǒng)的存儲器用途設(shè)置過程的步驟。
具體實施例方式
在下文中,將結(jié)合附圖詳細描述本發(fā)明公開的計算機系統(tǒng)以及存儲器用途設(shè)置程 序的優(yōu)選實施例。 首先,將解釋本發(fā)明實施例的計算機系統(tǒng)的要點。本實施例的計算機系統(tǒng)包括存 儲器,配置為存儲各種數(shù)據(jù);用途設(shè)置數(shù)據(jù)存儲器裝置,用來存儲表示多個存儲區(qū)塊的每一 個存儲區(qū)塊的用途的用途設(shè)置數(shù)據(jù),其中多個存儲區(qū)塊是以某一長度劃分存儲器而得;存 儲器診斷裝置,用于對存儲器進行診斷,以檢測每一個存儲區(qū)塊中的壞區(qū);以及存儲器用途 設(shè)置裝置,用于根據(jù)由存儲器診斷裝置對每一個存儲區(qū)塊中的壞區(qū)的檢測結(jié)果來設(shè)置存儲 在用途設(shè)置數(shù)據(jù)存儲器裝置中的每一個存儲區(qū)塊的用途設(shè)置數(shù)據(jù)。 S卩,多個存儲區(qū)塊的每一個都被分配有適當(dāng)?shù)挠猛?,其中所述多個存儲區(qū)塊是以
某一某一長度劃分本實施例的計算機系統(tǒng)的主存儲器(例如DRAM)而得。 特別是,表示在主存儲器中包含的每一個存儲區(qū)塊的用途的用途設(shè)置數(shù)據(jù)被存儲
在用途設(shè)置數(shù)據(jù)存儲器裝置中,其中所述用途設(shè)置數(shù)據(jù)存儲器裝置是計算機系統(tǒng)內(nèi)部的諸
如閃存等非易失性存儲器。 每一個存儲區(qū)塊的用途包括以下各種用途,例如用于開發(fā)某一程序的用途、用于 存儲圖形數(shù)據(jù)或語音數(shù)據(jù)的用途等。 此外,本實施例的存儲器診斷裝置對主存儲器進行診斷,從而在每一個存儲區(qū)塊 被分配用途之前檢測每一個存儲區(qū)塊中的壞區(qū)。所述壞區(qū)是在每一個存儲區(qū)塊中存在有損 壞位元(bad bit)的區(qū)域,在所述損壞位元上,諸如讀寫數(shù)據(jù)等存儲器功能都不能正常工 作。 包含壞區(qū)的存儲區(qū)塊(在下文中稱作"壞區(qū)塊(bad block)")包括具有不同損壞 位元數(shù)目的多個壞區(qū)塊(從損壞位元數(shù)目相對較少的輕度損壞區(qū)塊到損壞位元數(shù)目相對 較多的重度損壞區(qū)塊)。從確保程序正常工作的觀點來看,即使在壞區(qū)塊是輕度損壞的情況 下,也最好不要用輕度損壞區(qū)塊作為對程序等進行開發(fā)的區(qū)域。 然而,將輕度損壞區(qū)塊用作存儲圖形數(shù)據(jù)或語音數(shù)據(jù)的區(qū)域是允許的。這是基于 如下的經(jīng)驗性常識即使用于存儲圖形數(shù)據(jù)或語音數(shù)據(jù)的存儲區(qū)塊中存在有壞區(qū)塊,如果 壞區(qū)塊中包含的損壞位元數(shù)目較少,用各種設(shè)備實際使用所述圖形或語音數(shù)據(jù)來再現(xiàn)圖像 或語音并不會導(dǎo)致圖像或語音的質(zhì)量下降。 因此,本實施例的存儲器用途設(shè)置裝置被配置為根據(jù)由存儲器診斷裝置對每一 個存儲區(qū)塊中的壞區(qū)的檢測結(jié)果,設(shè)置存儲在用途設(shè)置數(shù)據(jù)存儲器裝置中的每一個存儲區(qū) 塊的用途設(shè)置數(shù)據(jù)。這樣,即使在主存儲器包含的多個存儲區(qū)塊中存在有壞區(qū)塊的情況下, 仍能給每一個存儲區(qū)塊(包括壞區(qū)塊)分配適當(dāng)?shù)挠猛?,而不會讓壞區(qū)塊免于使用。
針對本實施例,如上文所述,表示多個存儲區(qū)塊(以某一長度劃分存儲器區(qū)域而 得)的每一個存儲區(qū)塊的用途的用途設(shè)置數(shù)據(jù)被存儲在非易失性存儲器中。對存儲器進行 診斷,從而在每一個存儲區(qū)塊中檢測壞區(qū)。接著,根據(jù)對每一個存儲區(qū)塊中的壞區(qū)的檢測結(jié) 果,設(shè)置存儲在非易失性存儲器中的每一個存儲區(qū)塊的用途設(shè)置數(shù)據(jù)。由于對本實施例的 計算機系統(tǒng)進行了如上配置,則計算機系統(tǒng)不僅可給主存儲器的正常存儲區(qū)塊分配適當(dāng)用途,其也能給其中包含損壞位元的數(shù)目相對較少的輕度損壞區(qū)塊分配適當(dāng)用途,以有效利 用在主存儲器中包含的每一個存儲區(qū)塊。 存儲器診斷裝置和存儲器用途設(shè)置裝置可例如由BIOS程序(CPU從ROM讀取數(shù)據(jù) 并在被激活的計算機系統(tǒng)上運行)來實現(xiàn)。 接著,將結(jié)合圖1對本實施例的計算機系統(tǒng)的配置進行解釋。圖1為示出本實施 例的計算機系統(tǒng)1的配置的功能方框圖。圖2詳細示出圖1所示的DRAM。
如圖1所示,計算機系統(tǒng)1包括CPU(中央處理單元)10、DRAM 20、非易失性存儲 器30、 ROM 40、圖形控制器50、聲音控制器60以及將上述這些部分彼此連接的總線70。
CPU IO是被配置為執(zhí)行各種處理的運算設(shè)備。特別是,在被激活的計算機系統(tǒng) 1上,CPU 10從ROM 40讀取并運行下文將要描述的BIOS(基本輸入輸出系統(tǒng))程序41, 以檢查諸如DRAM 20等各種設(shè)備是否有缺陷。此外,CPU 10運行BIOS程序41,從而激活 OS(操作系統(tǒng))并控制各種設(shè)備。CUP 10運行BI0S程序41,從而執(zhí)行用于設(shè)置存儲區(qū)塊 201-210 (在圖2中示出)得用途的存儲器用途設(shè)置過程。 DRAM 20為計算機系統(tǒng)1的主存儲器(主要的存儲器設(shè)備)。特別是,DRAM 20被 用作工作存儲器,在該工作存儲器中開發(fā)由CPU IO運行的程序(包括BI0S程序41),或臨 時存儲諸如圖形數(shù)據(jù)或語音數(shù)據(jù)等各種數(shù)據(jù)。另外,如圖2中所示,由于DRAM 20被用作CPU 10的工作存儲器,從而對DRAM 20的管理是針對存儲區(qū)塊201-210 (以某一長度劃分DRAM 20的區(qū)域而得)中的每一個存儲區(qū)塊而進行的。 如下文所述,由CPU 10運行的BIOS程序41給存儲區(qū)塊201-210中的每一個存儲 區(qū)塊分配各種用途。存儲區(qū)塊201-210的用途例如包括開發(fā)某一程序的用途、開發(fā)圖形數(shù) 據(jù)或語音數(shù)據(jù)的用途等。 非易失性存儲器30是諸如閃存等可重寫且非易失性存儲介質(zhì)。非易失性存儲器 30存儲表示存儲區(qū)塊201-210 (以某一長度劃分DRAM 20的區(qū)域而得)的每一個的用途的 用途設(shè)置數(shù)據(jù)31,并用作用途設(shè)置數(shù)據(jù)存儲器裝置。所述用途設(shè)置數(shù)據(jù)31將在下文詳細解 釋。 ROM 40存儲由CPU 10運行的各種程序和用于運行所述程序的數(shù)據(jù)等。特別是, ROM 40存儲由CPU讀取并在被激活的計算機系統(tǒng)1上運行的BIOS程序41等等。另外,ROM 40還存儲由CPU 10用來運行BIOS程序41的用途設(shè)置表格42。而且ROM 40還存儲預(yù)設(shè) 有存儲區(qū)塊201-210中的每一個的用途的默認(rèn)用途設(shè)置數(shù)據(jù)43等,以作為默認(rèn)用途存儲器 裝置。用途設(shè)置表格42以及默認(rèn)用途設(shè)置數(shù)據(jù)43將在下文詳細解釋。
BI0S程序41為基本輸入輸出系統(tǒng)。特別是,對計算機系統(tǒng)1的供電一旦開啟,BI0S 程序41便被激活。且BIOS程序41是一個用來對OS、應(yīng)用程序以及對DRAM 20和外圍設(shè) 備(顯示器、鍵盤等)輸入輸出的數(shù)據(jù)進行控制的控制程序。另外,BI0S程序41由CPU 10 運行,以執(zhí)行用來設(shè)置DRAM20的存儲區(qū)塊201-210中的每一個的用途的存儲器用途設(shè)置過 程。 圖形控制器50在CPU10的引導(dǎo)下產(chǎn)生圖形數(shù)據(jù),并將所述圖形數(shù)據(jù)存儲在DRAM20 的用于圖形的存儲區(qū)塊中。另外,圖形控制器50讀取在DRAM20的用于圖形的存儲區(qū)塊中 存儲的圖形數(shù)據(jù),并在顯示設(shè)備(未示出)上顯示圖形。 聲音控制器60在CPU10的引導(dǎo)下產(chǎn)生語音數(shù)據(jù),并將所述語音數(shù)據(jù)存儲在DRAM20的用于語音的存儲區(qū)塊中。另外,聲音控制器60讀取在DRAM20的用于語音的存儲區(qū)塊中 存儲的語音數(shù)據(jù),并通過揚聲器(未示出)進行語音輸出。 然后,將結(jié)合圖3-圖5具體而詳細地解釋如下配置,在該配置中,圖1所示的BIOS
程序41執(zhí)行存儲器用途設(shè)置過程,以給DRAM 20中的存儲區(qū)塊201-210的每一個設(shè)置用
途。圖3為示出圖1所示的BI0S程序41的細節(jié)的功能方框圖。在圖3中,在CPU10上實
現(xiàn)的用來運行存儲在R0M40上的BIOS程序41的功能被示出為功能模塊。 如圖3所示,BIOS程序41具有多個功能單元,這些功能單元是存儲器診斷單元
411和存儲器用途設(shè)置單元412。 一旦BIOS程序被激活(開始運行),功能單元411和412
的每一個單元便開始工作。 存儲器診斷單元411對DRAM 20進行診斷,以檢測存儲區(qū)塊201-210的每一個中 的壞區(qū)。該壞區(qū)是指在單個存儲區(qū)塊中具有損壞位元的區(qū)域,其中在該損壞位元上諸如讀 寫數(shù)據(jù)等存儲器功能不能正常工作。通過存儲器診斷單元411對每一個存儲區(qū)塊中的壞區(qū) 進行的檢測包括對壞區(qū)中包含的損壞位元的數(shù)目進行檢測。 根據(jù)由存儲器診斷單元411對每一個存儲區(qū)塊中的壞區(qū)的檢測結(jié)果,存儲器用途 設(shè)置單元412設(shè)置存儲在非易失性存儲器30中的存儲區(qū)塊201-210的每一個的用途設(shè)置 數(shù)據(jù)31。特別是,通過使用存儲在ROM 40中的用途設(shè)置表格42,存儲器用途存儲設(shè)置單元 412設(shè)置存儲在非易失性存儲器30中的用途設(shè)置數(shù)據(jù)31。 然后,CPU 10引用由存儲器用途設(shè)置單元412設(shè)置的用途設(shè)置數(shù)據(jù)31,并基于該 用途設(shè)置數(shù)據(jù)31給存儲區(qū)塊201-210的每一個分配用途。 圖4詳細示出圖l所示的用途設(shè)置數(shù)據(jù)31。圖5詳細示出在圖1中所示的用途設(shè) 置表格42。 如圖4所示,存儲在非易失性存儲器30中的用途設(shè)置數(shù)據(jù)31表示DRAM20中的存 儲區(qū)塊201-210的每一個的用途。用途設(shè)置數(shù)據(jù)31包括寫在存儲區(qū)塊201-210的每一個 存儲區(qū)塊的地址上的每一個存儲區(qū)塊的用途。 對于圖4所示的用途設(shè)置數(shù)據(jù)31,例如,存儲區(qū)塊201被分配了用途"用于程序", 這表示存儲區(qū)塊201被用作用于程序的存儲區(qū)塊(在該存儲區(qū)塊201中開發(fā)某一程序)。 存儲區(qū)塊203-205被分配了用途"用于圖形",這表示存儲區(qū)塊203-205被用作用于圖形數(shù) 據(jù)的存儲區(qū)塊(用以存儲圖形數(shù)據(jù))。存儲區(qū)塊207被分配了用途"用于語音",這表示存 儲區(qū)塊207被用作用于語音的存儲區(qū)塊(用以存儲語音數(shù)據(jù))。 圖1所示的默認(rèn)用途設(shè)置數(shù)據(jù)43預(yù)設(shè)有DRAM 20中的多個存儲區(qū)塊201-210的 每一個的用途,并給出用途設(shè)置數(shù)據(jù)31的初始(默認(rèn))值。與用途設(shè)置數(shù)據(jù)31相似,默認(rèn) 用途設(shè)置數(shù)據(jù)43包括寫在存儲區(qū)塊201-210的每一個存儲區(qū)塊的地址上的每一個存儲區(qū) 塊的用途。 如圖5所示,存儲在ROM 40中的用途設(shè)置表格42是這樣一種表格其包括表示 DRAM 20中的單個存儲區(qū)塊的質(zhì)量的存儲器質(zhì)量級別,以及彼此關(guān)聯(lián)的單個存儲區(qū)塊的用 途。 DRAM 20中的單個存儲區(qū)塊的存儲器質(zhì)量級別由包含在存儲區(qū)塊中的損壞位元的 數(shù)目來確定,并被分為1-3級共三級。存儲器質(zhì)量級別"1級"表示存儲區(qū)塊包括多個損壞 位元。存儲器質(zhì)量級別"2級"表示存儲區(qū)塊包括單個損壞位元。存儲器質(zhì)量級別"3級"表
6示存儲區(qū)塊根本不包括損壞位元,即存儲區(qū)塊為正常。 圖5中示出的用途設(shè)置表格42表示如果存儲區(qū)塊的存儲器質(zhì)量級別為"l級",則將存儲區(qū)塊的用途設(shè)置(改變)為用于語音的用途。該表格也表示如果存儲區(qū)塊的存儲器質(zhì)量級別為"2級",則將存儲區(qū)塊的用途改變?yōu)橛糜趫D形數(shù)據(jù)的用途。該表格還表示,如果存儲區(qū)塊的存儲器質(zhì)量級別為"3級",則將存儲區(qū)塊的用途改變?yōu)橛糜诔绦虻挠猛尽?br>
在存儲區(qū)塊的損壞位元產(chǎn)生數(shù)據(jù)中的噪音的情況下,由于語音噪音與圖形(圖像)噪音相比難以被人們感知,因此用于語音的存儲區(qū)塊的存儲器質(zhì)量級別低于用于圖形的存儲區(qū)塊的存儲器質(zhì)量級別。 如果存儲器診斷單元411在存儲區(qū)塊中檢測到包含多個損壞位元的壞區(qū)(即存儲器質(zhì)量級別為"1級"),則上述存儲器用途設(shè)置單元412設(shè)置與其中檢測到包含有多個損壞位元的壞區(qū)的存儲區(qū)塊(以下稱為多損壞位元區(qū)塊(multiple-bad-bit block))對應(yīng)的用途設(shè)置數(shù)據(jù)31,以表示該存儲區(qū)塊被用作用于語音的存儲區(qū)塊(用以存儲語音數(shù)據(jù))。艮卩,存儲器用途設(shè)置單元412參考用途設(shè)置表格42而將多損壞位元區(qū)塊的用途改為用于語音的用途。 如果存儲器診斷單元411在存儲區(qū)塊中檢測到包含單個損壞位元(即存儲器質(zhì)量級別為"2級")的壞區(qū),則存儲器用途設(shè)置單元412設(shè)置與其中在DRAM20中檢測到包含單個損壞位元的壞區(qū)的存儲區(qū)塊(以下稱為單損壞位元區(qū)塊(single-bad-bit block))對應(yīng)的用途設(shè)置數(shù)據(jù)31,以表示該存儲區(qū)塊是被用于圖像數(shù)據(jù)的存儲區(qū)塊(用以存儲圖像數(shù)據(jù))。即,存儲器用途設(shè)置單元412參考用途設(shè)置表格42而將單損壞位元區(qū)塊的用途改為用于圖像數(shù)據(jù)的用途。 如果存儲器診斷單元411根本沒有檢測到壞區(qū)(即存儲器質(zhì)量級別為"3級"),則存儲器用途設(shè)置單元412設(shè)置與其中在DRAM20中根本沒有檢測到壞區(qū)的存儲區(qū)塊(正常區(qū)塊)對應(yīng)的用途設(shè)置數(shù)據(jù)31,以表示存儲區(qū)塊被用作用于程序的存儲區(qū)塊(用以開發(fā)某一程序)。即,存儲器用途設(shè)置單元412參考用途設(shè)置表格42而將正常塊的用途改為用于程序的用途。 —旦計算機系統(tǒng)1被激活,尤其是一旦BIOS程序41被激活,上述功能單元411和412就開始它們的處理。若處理開始以前就已經(jīng)為201-210中的每一個存儲區(qū)塊設(shè)置了用途設(shè)置數(shù)據(jù)31,則允許不根據(jù)由存儲器診斷單元411對每一個存儲器塊中的壞區(qū)的檢測結(jié)果而設(shè)置用途設(shè)置數(shù)據(jù)31。換言之,如果BIOS程序41在上一次被激活之后通過存儲器診斷單元411對存儲區(qū)塊201-210的每一個設(shè)置了用途,則一旦BIOS程序41再次被激活,其在工作中可以省略存儲器診斷單元411和存儲器用途設(shè)置單元412。 然后,將結(jié)合圖6和圖7進一步詳細地解釋存儲器用途設(shè)置單元412設(shè)置用途設(shè)置數(shù)據(jù)31的過程。圖6示出存儲器用途設(shè)置單元412設(shè)置用途設(shè)置數(shù)據(jù)31的過程的實例。圖6示出圖4所示的用途設(shè)置數(shù)據(jù)31被改變的情況。在圖4所示的用途設(shè)置數(shù)據(jù)31中,假設(shè)將三個存儲區(qū)塊203-205的用途預(yù)設(shè)為用于程序的用途并將一個存儲區(qū)塊207的用途預(yù)設(shè)為用于語音的用途。 如圖6所示,由于存儲器診斷單元411將存儲區(qū)塊210的存儲器質(zhì)量級別診斷為"1級",則存儲器用途設(shè)置單元412結(jié)合圖5所示的用途設(shè)置表格42而將存儲區(qū)塊210的用途從"用于程序"設(shè)置(改變)為"用于語音"。由于 儲器診斷單元411將存儲區(qū)塊202的存儲器質(zhì)量級別診斷為"2級",則存儲器用途設(shè)置單元412將存儲區(qū)塊202的用途從"用于程序"改變?yōu)?用于圖形"。結(jié)果是,存儲區(qū)塊"用于語音"和存儲區(qū)塊"用于圖形"各增加一個,而存儲區(qū)塊"用于程序"減少兩個。從而,由于兩個存儲區(qū)塊205和207的存儲器質(zhì)量級別被存儲器診斷單元411診斷為"級別3",則存儲器用途設(shè)置單元412將兩個存儲區(qū)塊205和207的用途分別從"用于圖形"和"用于語音"改變?yōu)?用于程序"。因此,DRAM 20針對用于程序的存儲區(qū)塊的減少而獲得補償,且DRAM 20包含的每一個存儲區(qū)塊都可以得到有效利用。 圖7示出存儲器用途設(shè)置單元412設(shè)置用途設(shè)置數(shù)據(jù)31的過程的另一實例。圖7示出圖4所示的用途設(shè)置數(shù)據(jù)31被改變的情況。 如圖7所示,由于存儲器診斷單元411將存儲區(qū)塊202的存儲器質(zhì)量級別診斷為"2級",則存儲器用途設(shè)置單元412參考圖5中所示的用途設(shè)置表格42而將存儲區(qū)塊202的用途從"用于程序"改變?yōu)?用于圖形"。由于存儲器診斷單元411將存儲區(qū)塊204的存儲器質(zhì)量級別診斷為"2級",則存儲器用途設(shè)置單元412將存儲區(qū)塊20的用途保持為"用于圖形"。由于存儲器診斷單元411將存儲區(qū)塊203的存儲器質(zhì)量級別診斷為"3級",存儲器用途設(shè)置單元412按照推測(supposedly)應(yīng)將存儲區(qū)塊203的用途從"用于圖形"改變?yōu)?用于程序"。 然而,在上述情況下,存儲器質(zhì)量級別為"2級"的存儲區(qū)塊202以及存儲器質(zhì)量級別為"2級"的存儲區(qū)塊204彼此不相鄰。即為這種情況存儲器診斷單元411檢測到多個存儲區(qū)塊(上述情況下的存儲區(qū)塊202和204)具有壞區(qū),并且這些具有壞區(qū)的多個存儲區(qū)塊的排列地址彼此不相鄰。在上述情況下,存儲器用途設(shè)置單元412額外設(shè)置與在上述存儲區(qū)塊之間存在的另一存儲區(qū)塊對應(yīng)的用途設(shè)置數(shù)據(jù)31,以表示該存儲區(qū)塊被用作用于圖形的存儲區(qū)塊。如圖7所示,例如,存儲器用途設(shè)置單元412將存儲區(qū)塊202和204以及存在于兩個存儲區(qū)塊202和204之間的存儲區(qū)塊203的用途都同樣設(shè)置為"用于圖形"。
如上所述,如果存儲器診斷單元411檢測到多個存儲器質(zhì)量級別為"2級"(單損壞位元區(qū)塊)的存儲區(qū)塊,并且所述多個單損壞位元區(qū)塊彼此不相鄰,則存儲器用途設(shè)置單元412在DRAM 20中將多個單損壞位元區(qū)塊以及存在于多個單損壞位元塊之間的存儲區(qū)塊改變?yōu)橛糜?圖形"的存儲區(qū)塊。這樣,即使在有大片圖形數(shù)據(jù)存儲在DRAM 20中的情況下,計算機系統(tǒng)1也可在由多個存儲區(qū)塊形成的連續(xù)區(qū)域中存儲圖形數(shù)據(jù),并且可降低用于讀寫圖形數(shù)據(jù)的時間。 然后,將結(jié)合圖8解釋圖1所示的計算機系統(tǒng)1的存儲器用途設(shè)置過程。圖8為示出圖1所示的計算機系統(tǒng)1的存儲器用途設(shè)置過程的流程圖。在對計算機系統(tǒng)1的供電開啟之后,CPU 10從ROM 40讀取BIOS程序41并運行所述BIOS程序41,從而執(zhí)行圖8所示的存儲器用途設(shè)置過程。 如圖8所示,BIOS程序41首先判斷由存儲器用途設(shè)置單元412設(shè)置(改變)的用途設(shè)置數(shù)據(jù)31是否存儲于非易失性存儲器30中(步驟S10)。 作為判斷的結(jié)果,一旦判斷由存儲器用途設(shè)置單元412所改變的用途設(shè)置數(shù)據(jù)31存儲于非易失性存儲器30中(步驟S10 :是),即一旦判斷BIOS程序41在上一次被激活之后由存儲器用途設(shè)置單元412對存儲區(qū)塊201-210的每一個的用途做了設(shè)置,BIOS程序41將過程推進至步驟S16。同時,作為判斷的結(jié)果,一旦判斷存儲器用途設(shè)置單元412設(shè)置的用途設(shè)置數(shù)據(jù)31沒有存儲于非易失性存儲器30中(步驟S10 :否),BIOS程序41將過程推進至步驟Sll。 在步驟Sll中,BIOS程序41的存儲器診斷單元411對所有存儲區(qū)塊201-210的每一個進行診斷,以檢測在存儲區(qū)塊201-210的每一個中的壞區(qū)(步驟Sll)。
接著,存儲器診斷單元411執(zhí)行用于將檢測存儲區(qū)塊201-210的每一個中的壞區(qū)的存儲器診斷結(jié)果與DRAM 20中的存儲區(qū)塊201-210的每一個的地址數(shù)據(jù)進行關(guān)聯(lián)的處理(步驟S12)。 然后,存儲器診斷單元411判斷DRAM 20中是否還有未診斷的存儲區(qū)塊(步驟S13)。為了做出上述判斷,存儲器診斷單元411判斷存儲器診斷結(jié)果是否與DRAM 20的存儲區(qū)塊201-210的每一個的地址數(shù)據(jù)都有關(guān)聯(lián)。 一旦判斷DRAM 20中有未診斷的存儲區(qū)塊(步驟S13 :是),存儲器診斷單元411就重復(fù)從步驟Sll到S13的過程,直到DRAM 20中沒有未診斷的存儲區(qū)塊為止。 同時, 一旦判斷DRAM 20中沒有未診斷的存儲區(qū)塊(步驟S13 :否),存儲器診斷單元411就判斷是否在DRAM 20中的存儲區(qū)塊201-210的每一個中檢測到壞區(qū)(步驟S14)。作為判斷結(jié)果,一旦判斷在DRAM 20中的存儲區(qū)塊201-210的至少一個區(qū)塊中檢測到壞區(qū)(步驟S14 :是),存儲器診斷單元411將過程推進至步驟S15。 接著,存儲器用途設(shè)置單元412參考用途設(shè)置表格42來設(shè)置(改變)存儲在ROM40中的用途設(shè)置數(shù)據(jù)31 (步驟S15),并將過程推進至步驟S17。 同時, 一旦判斷存儲區(qū)塊201-210的每一個中都沒有檢測到壞區(qū)(步驟S14 :否),存儲器診斷單元411將過程推進至步驟S16。接著,基于存儲在非易失性存儲器30中的默認(rèn)用途設(shè)置數(shù)據(jù)43,存儲器用途設(shè)置單元412設(shè)置(改變)存儲在ROM 40中的用途設(shè)置數(shù)據(jù)31 (步驟S16),并將處理推進至步驟S17。 S卩,在步驟S16中,默認(rèn)用途設(shè)置數(shù)據(jù)43作為默認(rèn)值被拷入用途設(shè)置數(shù)據(jù)31。 基于在步驟S15或S16中設(shè)置的用途設(shè)置數(shù)據(jù)31, BIOS程序41給存儲區(qū)塊201-210的每一個分配用途,并結(jié)束存儲器用途設(shè)置過程。 如上所述,將表示存儲區(qū)塊201-210 (以某一長度劃分本實施例的DRAM20的區(qū)域而得)的每一個的用途的用途設(shè)置數(shù)據(jù)31存儲在非易失性存儲器30中。對DRAM 20進行診斷,從而在存儲區(qū)塊201-210的每一個中檢測壞區(qū)。根據(jù)對存儲區(qū)塊201-210的每一個中的壞區(qū)的檢測結(jié)果,設(shè)置存儲在非易失性存儲器30中的存儲區(qū)塊201-210的每一個的用途設(shè)置數(shù)據(jù)。 只要不要求高集成度,即使圖形或語音數(shù)據(jù)包括一些數(shù)據(jù)缺失或數(shù)據(jù)錯誤,圖形數(shù)據(jù)或語音數(shù)據(jù)也可以被復(fù)制,這是公知常識。反之,包含一些數(shù)據(jù)缺失或數(shù)據(jù)錯誤的程序則不能正常工作。本實施例就是應(yīng)用了上述特性。即,對于本實施例而言,將壞區(qū)塊設(shè)置為圖形存儲器(用于圖像數(shù)據(jù)的存儲區(qū)塊),并將正常塊設(shè)置為有程序駐留(reside)的主存儲器(用于程序的存儲區(qū)塊)。由于壞區(qū)塊被用作存儲器的一部分,所以存儲器可得到有效利用。 由于對本實施例的計算機系統(tǒng)進行了如上配置,從而計算機系統(tǒng)不僅給主存儲器的正常存儲區(qū)塊分配適當(dāng)?shù)挠猛?,其還給其中損壞位元數(shù)目相對較少的輕度損壞區(qū)塊分配適當(dāng)?shù)挠猛?,從而有效利用主存儲器中包含的每一個存儲區(qū)塊。
本實施例的BI0S程序41不限于存儲于R0M 40中,其還可存儲于諸如閃存等可重寫的非易失存儲器中,從而CPU 10讀取并運行該程序。另外,本實施例的BIOS程序41可從聯(lián)網(wǎng)的服務(wù)器上下載至閃存,或可進一步被記錄在諸如CD-ROM等記錄介質(zhì)上并通過記錄介質(zhì)的驅(qū)動而加載至閃存。 本文陳述的所有實例和條件性語言旨在用作教示目的,以幫助讀者理解本發(fā)明以及發(fā)明人為推進技術(shù)發(fā)展而提出的概念。本文記載的所有實例和條件性語言應(yīng)被解讀為不是對這些具體描述的實例和條件的限制,說明書中這些實例的構(gòu)造也不涉及對本發(fā)明的優(yōu)點和缺陷的描述。盡管已對本發(fā)明的實施例進行了詳細描述,但應(yīng)理解的是,可對其進行各種改變、替代和改進,而不偏離本發(fā)明的精神和范圍。
10
權(quán)利要求
一種計算機系統(tǒng),包括存儲器,配置為存儲各種數(shù)據(jù);用途設(shè)置數(shù)據(jù)存儲器,存儲表示多個存儲區(qū)塊的每一個的用途的用途設(shè)置數(shù)據(jù),其中所述多個存儲區(qū)塊是以某一長度劃分所述存儲器而得;存儲器診斷單元,對所述存儲器進行診斷,以檢測每一個所述存儲區(qū)塊中的壞區(qū);以及存儲器用途設(shè)置單元,根據(jù)由所述存儲器診斷單元對每一個所述存儲區(qū)塊中的壞區(qū)的檢測結(jié)果,設(shè)置存儲在所述用途設(shè)置數(shù)據(jù)存儲器中的每一個存儲區(qū)塊的用途設(shè)置數(shù)據(jù)。
2. 根據(jù)權(quán)利要求1所述的計算機系統(tǒng),其中,根據(jù)其中由所述存儲器診斷單元檢測出 所述壞區(qū)的所述多個存儲區(qū)塊,所述存儲器用途設(shè)置單元設(shè)置所述用途設(shè)置數(shù)據(jù),以表示 所述存儲區(qū)塊的用途是用來存儲圖像數(shù)據(jù)。
3. 根據(jù)權(quán)利要求2所述的計算機系統(tǒng),其中,根據(jù)其中由所述存儲器診斷單元檢測出 所述壞區(qū)的所述多個存儲區(qū)塊之間的存儲區(qū)塊,所述存儲器用途設(shè)置單元設(shè)置所述用途設(shè) 置數(shù)據(jù),以表示所述存儲區(qū)塊的用途是用來存儲用于圖像數(shù)據(jù)的數(shù)據(jù)。
4. 根據(jù)權(quán)利要求1所述的計算機系統(tǒng),其中,根據(jù)其中由所述存儲器診斷單元檢測出 所述壞區(qū)的所述存儲區(qū)塊,所述存儲器用途設(shè)置單元設(shè)置所述用途設(shè)置數(shù)據(jù),以表示所述 存儲區(qū)塊的用途是用來存儲用于語音數(shù)據(jù)的數(shù)據(jù)。
5. 根據(jù)權(quán)利要求1所述的計算機系統(tǒng),其中,根據(jù)其中由所述存儲器診斷單元沒有檢 測出所述壞區(qū)的所述存儲區(qū)塊,所述存儲器用途設(shè)置單元設(shè)置所述用途設(shè)置數(shù)據(jù),以表示 所述存儲區(qū)塊的用途是用來存儲用于程序數(shù)據(jù)的數(shù)據(jù)。
6. 根據(jù)權(quán)利要求1所述的計算機系統(tǒng),還包括默認(rèn)用途設(shè)置單元,用于存儲默認(rèn)用途設(shè)置數(shù)據(jù),所述默認(rèn)用途設(shè)置數(shù)據(jù)表示以某一 長度劃分所述存儲器而得的所述多個存儲區(qū)塊的默認(rèn)用途,其中,當(dāng)所述存儲器診斷單元 在所有的存儲區(qū)塊中都沒有檢測出所述壞區(qū)時,所述存儲器用途設(shè)置單元基于表示所述存 儲區(qū)塊的默認(rèn)用途的所述默認(rèn)用途設(shè)置數(shù)據(jù)而設(shè)置所述用途設(shè)置數(shù)據(jù)。
7. 根據(jù)權(quán)利要求1所述的計算機系統(tǒng),其中,當(dāng)在執(zhí)行處理之前對所有的存儲區(qū)塊都 設(shè)置了所述用途設(shè)置數(shù)據(jù)時,所述存儲器用途設(shè)置單元不根據(jù)由所述存儲器診斷單元對每 一個所述存儲區(qū)塊中的所述壞區(qū)的檢測結(jié)果來設(shè)置所述用途設(shè)置數(shù)據(jù)。
8. —種計算機可讀介質(zhì),其存儲有存儲器用途設(shè)置程序,所述存儲器用途設(shè)置程序被 配置為用來指示計算機,且所述計算機具有存儲器和用途設(shè)置數(shù)據(jù)存儲器單元,其中該用 途設(shè)置數(shù)據(jù)存儲器單元用于存儲表示多個存儲區(qū)塊的每一個的用途的用途設(shè)置數(shù)據(jù),以執(zhí) 行用來設(shè)置所述存儲器中的每一個存儲區(qū)塊的用途設(shè)置數(shù)據(jù)的功能,所述計算機可讀介質(zhì) 包括通過對所述存儲器進行診斷,檢測每一個所述存儲區(qū)塊中的壞區(qū);基于通過對所述存儲器進行診斷而得的對每一個所述存儲區(qū)塊中的壞區(qū)的檢測結(jié)果, 根據(jù)對每一個所述存儲區(qū)塊中的所述壞區(qū)的檢測結(jié)果,設(shè)置存儲在所述用途設(shè)置數(shù)據(jù)存儲 器單元中的每一個存儲區(qū)塊的用途設(shè)置數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種計算機系統(tǒng)及存儲器用途設(shè)置程序,該計算機系統(tǒng)包括存儲器,配置為存儲各種數(shù)據(jù);用途設(shè)置數(shù)據(jù)存儲器裝置,用于存儲表示多個存儲區(qū)塊的每一個的用途的用途設(shè)置數(shù)據(jù),其中所述多個存儲區(qū)塊是以某一長度劃分所述存儲器而得;存儲器診斷裝置,用于對所述存儲器進行診斷,以檢測每一個存儲區(qū)塊中的壞區(qū);以及存儲器用途設(shè)置裝置,用于根據(jù)由所述存儲器診斷裝置對每一個存儲區(qū)塊中的壞區(qū)的檢測結(jié)果,設(shè)置存儲在所述用途設(shè)置數(shù)據(jù)存儲器裝置中的每一個存儲區(qū)塊的用途設(shè)置數(shù)據(jù)。該計算機系統(tǒng)不僅給主存儲器的正常存儲區(qū)塊分配適當(dāng)?shù)挠猛?,還按照質(zhì)量級別給其中的壞區(qū)塊分配適當(dāng)?shù)挠猛荆瑥亩行Ю弥鞔鎯ζ髦械拿恳粋€存儲區(qū)塊。
文檔編號G06F12/02GK101714121SQ20091017913
公開日2010年5月26日 申請日期2009年9月29日 優(yōu)先權(quán)日2008年10月3日
發(fā)明者目崎義憲, 石橋修, 菱沼武夫 申請人:富士通株式會社