r>[0032] 圖5示出根據(jù)本公開實施例的包含存儲控制器的系統(tǒng)的配置。
[0033] 參照圖5,能夠?qū)⒏鶕?jù)本公開實施例的存儲控制器535實現(xiàn)為基于從接口緩沖器 500輸出的請求執(zhí)行存儲器中的命令的調(diào)度器520的部件。
[0034] 例如,存儲控制器能夠包含:狀態(tài)預(yù)測器或讀/寫(R/W)預(yù)測器540,基于存儲在 接口緩沖器500和調(diào)度緩沖器545中的請求確定是否改變存儲器操作狀態(tài);以及根據(jù)所述 確定結(jié)果控制輸入選擇器525和輸出選擇器550。進一步,所述存儲控制器能夠進一步包含 輸入選擇器525和輸出選擇器550,用于根據(jù)R/W預(yù)測器540的控制選擇從接口緩沖器500 和調(diào)度緩沖器545輸出的請求類型。
[0035] 在本公開的實施例中,接口緩沖器500能夠包含與FIFO結(jié)構(gòu)相對應(yīng)的讀緩沖器 505和寫緩沖器510,并且調(diào)度緩沖器545能夠具有單一隊列結(jié)構(gòu)。
[0036] 通過控制將從接口緩沖器500輸出的請求發(fā)送給調(diào)度緩沖器545的復(fù)用器530, 輸入選擇器525從接口緩沖器500的讀緩沖器505和寫緩沖器510選擇將接收請求的緩沖 器。此時,為了保護在調(diào)度緩沖器545中針對各個存儲體的大量請求,復(fù)用器530從存在于 調(diào)度緩沖器545的請求中選擇最小數(shù)量的存儲體請求。進一步,輸出選擇器550選擇從調(diào) 度緩沖器545輸出的請求類型,并且將根據(jù)所選擇請求所產(chǎn)生的命令發(fā)送到存儲器。
[0037] 在本公開的實施例中,R/W預(yù)測器540將對應(yīng)于控制存儲器操作狀態(tài)的存儲控制 器狀態(tài)劃分為四個階段。當(dāng)確定改變存儲器狀態(tài)時,R/W預(yù)測器540改變存儲控制器的狀 ??τ〇
[0038] 圖6示出指示存儲控制器的四個狀態(tài)的狀態(tài)機。
[0039] 參照圖6,R/W預(yù)測器能夠?qū)⒋鎯刂破鞯臓顟B(tài)劃分為讀(RD)610、讀到寫 (RD2WR)620、寫(WR)630和寫到讀(WR2RD)640四個狀態(tài)。RD610和WR630是與存儲器的 讀和寫操作相對應(yīng)的狀態(tài),而RD2WR620是控制調(diào)度緩沖器將存儲器狀態(tài)從當(dāng)前讀狀態(tài)改 變到寫狀態(tài)的狀態(tài)。進一步,WR2RD640是控制調(diào)度緩沖器將存儲器狀態(tài)從當(dāng)前寫狀態(tài)改 變?yōu)樽x狀態(tài)的狀態(tài)。如圖6中所示,以RD610、RD2WR620、WR630和WR2RD640的順序切 換存儲控制器的狀態(tài)。
[0040] 在存儲控制器處于RD狀態(tài)610和WR狀態(tài)630時,R/W預(yù)測器在存儲器的每個周 期中分析接口緩沖器和調(diào)度緩沖器的請求。R/W預(yù)測器根據(jù)分析結(jié)果確定是否改變存儲 器操作,并且根據(jù)確定結(jié)果維持存儲控制器的當(dāng)前狀態(tài)或者改變存儲控制器的當(dāng)前狀態(tài)到 RD2WR狀態(tài)620或WR2RD狀態(tài)640。如上所述,由于存儲控制器能夠確??刂普{(diào)度緩沖器尺 寸的時間,以便通過引入RD2WR狀態(tài)620和WR2RD狀態(tài)640來改變存儲器狀態(tài),因此能夠提 高調(diào)度緩沖器的利用率。
[0041] 下面將描述根據(jù)本公開實施例的控制R/W預(yù)測器的存儲器的方法。
[0042] 圖7是示出根據(jù)本公開實施例的存儲器控制方法的過程的流程圖。
[0043] 參照圖7,在步驟710中,R/W預(yù)測器根據(jù)接口緩沖器和調(diào)度緩沖器的請求確定針 對存儲器的每一存儲體的命令數(shù)。此時,獨立地獲得與讀命令和寫命令有關(guān)的命令數(shù)。進 一步,將具有相同行地址的請求命令數(shù)相加。
[0044] 命令數(shù)的確定能夠包含兩個階段。例如,R/W預(yù)測器在第一階段確定關(guān)于接口緩 沖器和調(diào)度緩沖器的每一個的針對每個存儲體的命令數(shù),并且在第二階段結(jié)合接口緩沖器 和調(diào)度緩沖器的確定結(jié)果并計算最后結(jié)果以確定存儲器狀態(tài)。
[0045] 作為一個實例將首先描述基于存儲在接口緩沖器或調(diào)度緩沖器中的請求如表1 中所示獲得針對存儲器的每一存儲體的列地址選通(CAS)命令數(shù)量的情形。
[0046] 表 1
[0047][表1]
[0048]
[0049] R/ff預(yù)測器從表1中所示的結(jié)果中把具有相同地址的CAS命令數(shù)相加,以降序排列 計算結(jié)果,并且僅選擇一些較高的結(jié)果,從而獲得如下表2中所示的結(jié)果。
[0050]表2
[0051]
[0052] 參照表2,將表1中與相同行地址相對應(yīng)的請求1和2的CAS命令數(shù)相加。
[0053] 接下來,R/W預(yù)測器組合關(guān)于接口緩沖器和調(diào)度緩沖器所獲得的表2中所示的結(jié) 果并且計算針對每個存儲體的命令數(shù)的最終結(jié)果。也在此情形中,將具有相同行地址的命 令數(shù)相加。
[0054] 在步驟720中,R/W預(yù)測器基于所獲得的針對每一存儲體的命令的最終數(shù)量確定 是否改變存儲器狀態(tài)。根據(jù)命令數(shù)量最大的命令類型確定是否改變存儲器狀態(tài)。基于通過 針對各個存儲體疊加命令數(shù)量然后比較所述數(shù)量所產(chǎn)生的結(jié)果,或者基于通過針對各個存 儲體比較命令數(shù)量然后相加所述數(shù)量所產(chǎn)生的結(jié)果來確定命令數(shù)量最大的命令類型。就是 說,當(dāng)存儲器的當(dāng)前狀態(tài)與命令數(shù)量最大的命令類型不匹配時,R/W預(yù)測器能夠改變存儲器 狀態(tài)。當(dāng)存儲器的當(dāng)前狀態(tài)與命令數(shù)量最大的命令類型匹配時,R/W預(yù)測器能夠確定維持 存儲器狀態(tài)。
[0055]當(dāng)存儲器當(dāng)前處于寫操作狀態(tài)并且命令數(shù)量最大的命令類型為讀命令時,R/W預(yù) 測器能夠確定將存儲器狀態(tài)從寫狀態(tài)改變?yōu)樽x狀態(tài)。因此,在圖6的狀態(tài)機中將存儲控制 器的狀態(tài)從與存儲器的當(dāng)前狀態(tài)相對應(yīng)的WR狀態(tài)630改變?yōu)榕c存儲器的下一個狀態(tài)相對 應(yīng)的WR2RD狀態(tài)640。存儲器保持在寫操作狀態(tài),而存儲控制器處于WR2RD狀態(tài)640。
[0056] 進一步,當(dāng)存儲器當(dāng)前處于讀操作狀態(tài)并且命令數(shù)量最大的命令類型是寫命令 時,R/W預(yù)測器能夠確定將存儲器狀態(tài)從讀狀態(tài)改變?yōu)閷憼顟B(tài)。因此,在圖6的狀態(tài)機中將 存儲控制器的狀態(tài)從與存儲器的當(dāng)前狀態(tài)相對應(yīng)的RD狀態(tài)610改變?yōu)榕c存儲器的下一狀 態(tài)相對應(yīng)的RD2WR狀態(tài)620。存儲器保持在讀操作狀態(tài),而存儲控制器處于RD2WR狀態(tài)620。
[0057] 當(dāng)在步驟730中確定改變存儲器狀態(tài)時,R/W預(yù)測器在步驟740中根據(jù)要被改變 成的存儲器狀態(tài)通過控制輸入選擇器和輸出選擇器確定接口緩沖器和調(diào)度緩沖器的輸出 請求的類型。
[0058] 例如,由于當(dāng)存儲控制器處于RD2WR狀態(tài)時將存儲器的狀態(tài)從讀狀態(tài)改變?yōu)閷憼?態(tài),R/W預(yù)測器執(zhí)行減小與存儲器的當(dāng)前狀態(tài)相對應(yīng)的讀請求的比例并且增加調(diào)度緩沖器 中的寫請求的比例的操作。因此,在R/W預(yù)測器的控制下,輸入選擇器通過從接口緩沖器輸 出的請求中選擇寫請求來增加存儲在調(diào)度緩沖器中的寫請求的比例,并且輸出選擇器通過 從調(diào)度緩沖器輸出的請求中選擇讀請求來減小存儲在當(dāng)前調(diào)度緩沖器中的讀請求的比例。
[0059] 由于將存儲器狀態(tài)從寫狀態(tài)改變?yōu)樽x狀態(tài)的情形對應(yīng)于存儲控制器處于WR2RD 狀態(tài)的情形,R/W預(yù)測器執(zhí)行減小與存儲器的當(dāng)前狀態(tài)相對應(yīng)的寫請求的比例并且增加調(diào) 度緩沖器中的讀請求的比例的操作。因此,在R/W預(yù)測器的控制下,輸入選擇器通過從接口 緩沖器輸出的請求中選擇讀請求來增加存儲在調(diào)度緩沖器中的讀請求的比例,并且輸出選 擇器通過從調(diào)度緩沖器輸出的請求中選擇寫請求來減小存儲在當(dāng)前調(diào)度緩沖器中的寫請 求的比例。
[0060] 當(dāng)通過以上過程耗盡調(diào)度緩沖器中與當(dāng)前存儲器狀態(tài)相對應(yīng)的全部請求時,改變 存儲器狀態(tài),并且因此在步驟750中也改變存儲控制器的狀態(tài)。
[0061]例如,當(dāng)由于存儲控制器處于RD2WR狀態(tài)而執(zhí)行增加存儲在調(diào)度緩沖器中的寫請 求的比例的處理并且因此存儲在調(diào)度緩沖器中的讀請求的數(shù)量減小到預(yù)設(shè)數(shù)量或更小時, 改變存儲器狀態(tài)以執(zhí)行寫操作,并且因此,將存儲控制器的狀態(tài)也從RD2WR狀態(tài)改變?yōu)閃R 狀態(tài)。
[0062]進一步,當(dāng)存儲控制器在WR2RD狀態(tài)輸出存儲在調(diào)度緩沖器中的寫請求并且從接 口緩沖器接收讀請求,并且因此存儲在調(diào)度緩沖器中的寫請求數(shù)量被減小到預(yù)設(shè)數(shù)量或更 小時,改變存儲器狀態(tài)以執(zhí)行讀操作,并且將存儲控制器狀態(tài)也從WR2RD狀態(tài)改變到RD狀 ??τ〇
[0063] 同時,當(dāng)在步驟730中確定不改變存儲器狀態(tài)時,R/W預(yù)測器在步驟760中根據(jù)當(dāng) 前存儲器的狀態(tài)通過控制輸入選擇器和輸出選擇器來確定接口緩沖器和調(diào)度緩沖器的輸 出請求的類型。
[0064]例如,當(dāng)具有最大命令數(shù)的命令