存儲(chǔ)器控制裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種對要求從存儲(chǔ)器讀出有效載荷數(shù)據(jù)的讀取請求進(jìn)行處理的技術(shù)。
【背景技術(shù)】
[0002]為了提高存儲(chǔ)器的可靠性,有時(shí)在有效載荷數(shù)據(jù)中附加ECC(Error CorrectingCode)、奇偶校驗(yàn)位。
[0003]通常,在寬度方向上追加專用于所附加的ECC、奇偶校驗(yàn)位的存儲(chǔ)器元件(水平ECC、水平奇偶校驗(yàn))。
[0004]例如,可以想到并非X8位結(jié)構(gòu)的存儲(chǔ)器,而是使用特殊的X9位結(jié)構(gòu)的存儲(chǔ)器。
[0005]但是,存儲(chǔ)器元件的追加、特殊存儲(chǔ)器的采用,大多在成本方面是不利的,或者難于得到部件。
[0006]作為其解決對策之一,有時(shí)采用通過不在寬度方向上保存ECC而在深度方向上保存ECC,由此不需要在寬度方向上增加存儲(chǔ)器的垂直ECC、垂直奇偶校驗(yàn)(下面記載為垂直ECC)。
[0007]例如,考慮在如圖1所示的存儲(chǔ)器結(jié)構(gòu)中通過垂直ECC方式,附加ECC的情況。
[0008]在圖1中,在I個(gè)地址處,存儲(chǔ)有4個(gè)各自的數(shù)據(jù)寬度是I字節(jié)的有效載荷數(shù)據(jù)。
[0009]在圖1的存儲(chǔ)器結(jié)構(gòu)中,如果通過垂直ECC,對每4字節(jié)的有效載荷數(shù)據(jù)附加I字節(jié)的ECC,則形成如圖2所示的數(shù)據(jù)的配置。
[0010]在對采用了垂直ECC的存儲(chǔ)器從連續(xù)的地址進(jìn)行讀取的情況下,如果第2次從存儲(chǔ)器進(jìn)行讀取的數(shù)據(jù)(第2數(shù)據(jù))包含ECC,則該數(shù)據(jù)也可用于后續(xù)的從連續(xù)地址進(jìn)行的讀取。
[0011]在由讀取請求的要求源通過圖1的數(shù)據(jù)配置對有效載荷數(shù)據(jù)進(jìn)行管理、由存儲(chǔ)器通過圖2的數(shù)據(jù)配置對有效載荷數(shù)據(jù)和ECC進(jìn)行管理的情況下,如果存在圖1的OOOOh地址的數(shù)據(jù)(D0?D3)的讀取請求,則進(jìn)行下面的數(shù)據(jù)讀取。
[0012]從存儲(chǔ)器按照圖2的OOOOh地址的數(shù)據(jù)(D0?D3)、0004h地址的數(shù)據(jù)(ECC0?D6)的順序進(jìn)行讀出,使用ECCO對讀出的DO?D3進(jìn)行錯(cuò)誤訂正,將錯(cuò)誤訂正后的DO?D3輸出至要求源。
[0013]并且,在存在圖1的0004h地址的數(shù)據(jù)(D4?D7)的讀取請求的情況下,進(jìn)行下面的數(shù)據(jù)讀取。
[0014]從存儲(chǔ)器按照圖2的0004h地址的數(shù)據(jù)(ECC0?D6)、0008h地址的數(shù)據(jù)(D7?D9)的順序進(jìn)行讀出,使用ECCl對讀出的D4?D7進(jìn)行錯(cuò)誤訂正,將錯(cuò)誤訂正后的D4?D7輸出至要求源。
[0015]如上所述,在讀取對象的地址連續(xù)的情況下,需要將第2數(shù)據(jù)(在上面的例子中,圖2的0004h地址的數(shù)據(jù))從存儲(chǔ)器讀取2次。
[0016]但是,在存儲(chǔ)器訪問中存在一定的開銷(overhead)的情況較多(例如,在DRAM (Dynamic Random Access Memory)中,如果對同一個(gè)存儲(chǔ)塊進(jìn)行操作(ACT),則產(chǎn)生無法訪問的期間),如果將第2數(shù)據(jù)讀取2次,則發(fā)生性能損耗,效率不高。
[0017]另外,由于每次存儲(chǔ)器訪問都會(huì)消耗電力,因此,如果將第2數(shù)據(jù)讀取2次,則電力消耗變多。
[0018]關(guān)于伴有奇偶校驗(yàn)結(jié)果的數(shù)據(jù)轉(zhuǎn)送技術(shù),存在下述技術(shù),S卩,針對連續(xù)的訪問,以在奇偶校驗(yàn)結(jié)果輸出之前不接受下一次的讀取請求的方式進(jìn)行總線控制,使讀取請求在奇偶校驗(yàn)后的數(shù)據(jù)轉(zhuǎn)送之前進(jìn)行等待(例如,專利文獻(xiàn)I)。
[0019]專利文獻(xiàn)1:日本特開平5 - 233471號(hào)公報(bào)
【發(fā)明內(nèi)容】
[0020]在專利文獻(xiàn)I的方式中,能夠保障從讀取請求直到讀取數(shù)據(jù)返回的一次傳輸處理(transit1n) 一定會(huì)完成,但是,存在無法支持向流水線型存儲(chǔ)器的數(shù)據(jù)轉(zhuǎn)送的課題。
[0021]本發(fā)明就是鑒于上述的情況而提出的,其主要目的在于,即使對于流水線型存儲(chǔ)器,也避免重復(fù)的數(shù)據(jù)讀出,高效地利用有限的存儲(chǔ)帶寬,另外,抑制存儲(chǔ)器訪問中的電力消耗。
[0022]本發(fā)明所涉及的存儲(chǔ)器控制裝置,其通過流水線方式對要求從存儲(chǔ)器讀出有效載荷數(shù)據(jù)的讀取請求進(jìn)行處理,在該存儲(chǔ)器中,具有分別對呈規(guī)定的數(shù)據(jù)寬度的數(shù)據(jù)進(jìn)行存儲(chǔ)的多個(gè)地址,針對呈所述數(shù)據(jù)寬度的有效載荷數(shù)據(jù)設(shè)定錯(cuò)誤訂正數(shù)據(jù),存在對應(yīng)關(guān)系的錯(cuò)誤訂正數(shù)據(jù)和呈所述數(shù)據(jù)寬度的有效載荷數(shù)據(jù)橫跨相鄰的2個(gè)地址而存儲(chǔ),以地址為單位進(jìn)行數(shù)據(jù)的讀出,
[0023]該存儲(chǔ)器控制裝置的特征在于,具有:
[0024]緩存區(qū)域,其緩存從所述存儲(chǔ)器讀出的數(shù)據(jù);
[0025]讀取請求輸入部,其用于將讀取請求輸入,該讀取請求要求讀出整數(shù)倍于所述數(shù)據(jù)寬度的量的有效載荷數(shù)據(jù);
[0026]緩存判定部,其判定存儲(chǔ)有要求有效載荷數(shù)據(jù)和對應(yīng)錯(cuò)誤訂正數(shù)據(jù)的大于或等于2個(gè)地址即讀出候補(bǔ)地址中的某地址處的數(shù)據(jù)是否已經(jīng)緩存或者預(yù)定要緩存至所述緩存區(qū)域,其中,該要求有效載荷數(shù)據(jù)是由所述讀取請求輸入部輸入的讀取請求所要求的有效載荷數(shù)據(jù),該對應(yīng)錯(cuò)誤訂正數(shù)據(jù)是用于對所述要求有效載荷數(shù)據(jù)進(jìn)行錯(cuò)誤訂正的錯(cuò)誤訂正數(shù)據(jù);以及
[0027]命令輸出部,其在由所述緩存判定部判定為大于或等于2個(gè)讀出候補(bǔ)地址中的某地址處的數(shù)據(jù)已經(jīng)緩存或者預(yù)定要緩存至所述緩存區(qū)域的情況下,將指示從除了緩存地址以外的地址讀出數(shù)據(jù)的部分讀取命令,在從能夠向所述存儲(chǔ)器輸出所述部分讀取命令的定時(shí)開始經(jīng)過規(guī)定的延遲時(shí)間之后,輸出至所述存儲(chǔ)器,其中,該緩存地址是大于或等于2個(gè)讀出候補(bǔ)地址中數(shù)據(jù)已經(jīng)緩存或者預(yù)定要緩存至所述緩存區(qū)域的地址。
[0028]發(fā)明的效果
[0029]在本發(fā)明中,在從能夠向存儲(chǔ)器輸出部分讀取命令的定時(shí)(timing)開始經(jīng)過規(guī)定的延遲時(shí)間之后,將指示從讀出候補(bǔ)地址中除了緩存地址以外的地址讀出數(shù)據(jù)的部分讀取命令輸出至存儲(chǔ)器。
[0030]關(guān)于緩存地址處的數(shù)據(jù),通過使用緩存區(qū)域的數(shù)據(jù),從而能夠避免重復(fù)數(shù)據(jù)的讀出,有效地利用有限的存儲(chǔ)帶寬,另外,能夠抑制存儲(chǔ)器訪問中的電力消耗。
[0031]另外,在經(jīng)過延遲時(shí)間之后,將部分讀取命令輸出至存儲(chǔ)器,由此,即使對于流水線型的存儲(chǔ)器,也能夠避免從緩存區(qū)域?qū)崿F(xiàn)的緩存地址處的數(shù)據(jù)的輸入與從存儲(chǔ)器實(shí)現(xiàn)的除了緩存地址以外的地址處的數(shù)據(jù)的輸入之間發(fā)生沖突。
【附圖說明】
[0032]圖1是表示實(shí)施方式I所涉及的不包含ECC的數(shù)據(jù)的配置例的圖。
[0033]圖2是表示實(shí)施方式I所涉及的附加有垂直ECC的數(shù)據(jù)的配置例的圖。
[0034]圖3是表示實(shí)施方式I所涉及的存儲(chǔ)器控制裝置、請求要求源以及存儲(chǔ)器的圖。
[0035]圖4是表示實(shí)施方式I所涉及的存儲(chǔ)器控制裝置的動(dòng)作例的流程圖。
[0036]圖5是表示實(shí)施方式I所涉及的存儲(chǔ)器控制裝置的動(dòng)作例的圖。
[0037]圖6是表示實(shí)施方式I所涉及的存儲(chǔ)器控制裝置的動(dòng)作例的圖。
[0038]圖7是表示實(shí)施方式2所涉及的存儲(chǔ)器控制裝置、請求要求源以及存儲(chǔ)器的圖。
[0039]圖8是表示實(shí)施方式2所涉及的存儲(chǔ)器控制裝置的動(dòng)作例的流程圖。
[0040]圖9是表示實(shí)施方式2所涉及的存儲(chǔ)器控制裝置的動(dòng)作例的流程圖。
[0041]圖10是表示實(shí)施方式3所涉及的存儲(chǔ)器控制裝置、請求要求源以及存儲(chǔ)器的圖。
[0042]圖11是表示實(shí)施方式3所涉及的存儲(chǔ)器控制裝置的動(dòng)作例的流程圖。
[0043]圖12是表示實(shí)施方式2所涉及的存儲(chǔ)器控制裝置的動(dòng)作例的時(shí)序圖。
[0044]圖13是表示實(shí)施方式2所涉及的存儲(chǔ)器控制裝置的動(dòng)作例的時(shí)序圖。
[0045]圖14是表示實(shí)施方式3所涉及的存儲(chǔ)器控制裝置的動(dòng)作例的時(shí)序圖。
【具體實(shí)施方式】
[0046]在實(shí)施方式I中說明支持非流水線型存儲(chǔ)器的存儲(chǔ)器控制裝置,在實(shí)施方式2以及3中說明支持流水線型存儲(chǔ)器的存儲(chǔ)器控制裝置。
[0047]在實(shí)施方式I的存儲(chǔ)器控制裝置中,為了避免第2數(shù)據(jù)的重復(fù)讀取,使用前次值保存部和內(nèi)部緩沖器。
[0048]對于支持流水線型存儲(chǔ)器的實(shí)施方式2以及3的存儲(chǔ)器控制裝置,為了避免第2數(shù)據(jù)的重復(fù)讀取,同樣地使用前次值保存部和內(nèi)部緩沖器。
[0049]存儲(chǔ)器控制裝置的前次值保存部和內(nèi)部緩沖器的使用方法在實(shí)施方式I?3中是通用的,因此,考慮到易于理解,在實(shí)施方式I中,說明非流水線方式的存儲(chǔ)器控制裝置的動(dòng)作。
[0050]并且,以實(shí)施方式I中的動(dòng)作為前提,在實(shí)施方式2以及3中說明流水線方式所特有的動(dòng)作。
[0051]另外,對在實(shí)施方式I?3中通用的請求要求源以及存儲(chǔ)器上的地址和數(shù)據(jù)的關(guān)系進(jìn)行說明。
[0052]例如,存在如圖1所示的地址與數(shù)據(jù)寬度是4字節(jié)的數(shù)據(jù)(D0?D3f)。
[0053]圖2示出向每4字節(jié)附加I字節(jié)ECC而形成的垂直ECC的存儲(chǔ)器配置。
[0054]成為在數(shù)據(jù)之后配置ECC的順序,但這只是一個(gè)例子,對于ECC的配置方法,只要是在相鄰的前后2行中配置數(shù)據(jù)和ECC即可。
[0055]例如,“EEC0”也可以配置在有效載荷數(shù)據(jù)“D0”之前。
[0056]另外,分配至相同地址的數(shù)據(jù)能夠擴(kuò)展,例如可以將數(shù)據(jù)寬度擴(kuò)展為,在OOOOh地址處是DO?D3、ECCO、D4?D6,在下面的0008h地址處是D7、ECCl、D8?Db、ECC2、Dc。
[0057]其原因在于,即使在該情況下,依然處于一部分有效載荷數(shù)據(jù)和ECC橫跨相鄰的2個(gè)地址這樣的對應(yīng)關(guān)系。
[0058]實(shí)施方式I
[0059]圖3表示實(shí)施方式I所涉及的存儲(chǔ)器控制裝置100、請求要求源101以及存儲(chǔ)器105。
[0060]在圖3中,請求要求源101向存儲(chǔ)器105發(fā)出讀取、寫入請求。
[0061]下面,限定于請求要求源101發(fā)出要求從存儲(chǔ)器105讀出有效載荷數(shù)據(jù)的讀取請求的情況而進(jìn)行說明。
[0062]請求要求源101 例如是 CPU (Central Processing Unit) ο
[0063]此外,在請求要求源101中,例如按照圖1所示的形式,掌握了有效載荷數(shù)據(jù)的配置。
[0064]另外,在存儲(chǔ)器105中,例如按照圖2所示的形式,配置有有效載荷數(shù)據(jù)和作為錯(cuò)誤訂正數(shù)據(jù)的ECC。
[0065]以地址為單位,從存儲(chǔ)器105進(jìn)行數(shù)據(jù)的讀出。
[0066]此外,存儲(chǔ)器105是作為存儲(chǔ)器控制裝置100的控制對象的存儲(chǔ)器。
[0067]存儲(chǔ)器控制裝置100由存儲(chǔ)器地址變換部106、內(nèi)部緩沖器A109、內(nèi)部緩沖器管理部107、內(nèi)部緩沖器信息儲(chǔ)存部112、命中判定部113、前次值保存部104、數(shù)據(jù)選擇部108、數(shù)據(jù)排列部103、以及ECC訂正部102構(gòu)成。
[0068]存儲(chǔ)器控制裝置100的各結(jié)構(gòu)要素例如是元件、器件、電路這樣的硬件。
[0069]存儲(chǔ)器控制裝置100的各結(jié)構(gòu)要素例如是芯片組內(nèi)的半導(dǎo)體電路組。
[0070]另外,例如,也可以使用程序而實(shí)現(xiàn)存儲(chǔ)器地址變換部106、內(nèi)部緩沖器管理部107、內(nèi)部緩沖器信息儲(chǔ)存部112、數(shù)據(jù)選擇部108、數(shù)據(jù)排列部103以及ECC訂正部102。
[0071]存儲(chǔ)器地址變換部106輸入來自請求要求源101的讀取請求。
[0072]然后,存儲(chǔ)器地址變換部106將輸入的讀取請求的地址變換為配置有垂直ECC的存儲(chǔ)器105上的地址。
[0073]例如,在從請求要求源101收到圖1的OOOOh地址的數(shù)據(jù)(D0?D3)的讀取請求的情況下,存儲(chǔ)器地址變換部106進(jìn)行向圖2的OOOOh地址的數(shù)據(jù)(D0?D3)和0004h地址的數(shù)據(jù)(ECC0?D6)的地址變換。
[0074]此外,將由存儲(chǔ)器地址變換部106進(jìn)行地址變換后的地址稱為讀出候補(bǔ)地址(在上面的例子中,圖2的OOOOh地址和0004h地址是讀出候補(bǔ)地址)。
[0075]另外,將來自請求要求源101的讀取請求所要求的有效載荷數(shù)據(jù)稱為要求有效載荷數(shù)據(jù)(在上面的例子中,DO?D3是要求有效載荷數(shù)據(jù))。
[0076]另外,將用于要求有效載荷數(shù)據(jù)的錯(cuò)誤訂正的ECC稱為對應(yīng)錯(cuò)誤訂正數(shù)據(jù)或者對應(yīng)ECC (在上面的例子中,ECCO是對應(yīng)錯(cuò)誤訂正數(shù)據(jù))。
[0077]并且,存儲(chǔ)器地址變換部106基于地址變換結(jié)果以及命中判定部113的判定結(jié)果,將指示數(shù)據(jù)讀取的讀取命令輸出至存儲(chǔ)器105。
[0078]此外,在本說明書中,將存儲(chǔ)器地址變換部106從請求要求源101輸入的信息稱為讀取請求,將存儲(chǔ)器地址變換部106輸出至存儲(chǔ)器105的信息稱為讀取命令。
[0079]在命中判定部113中為命中判定的情況下,存儲(chǔ)器地址變換部106將部分讀取命令輸出至存儲(chǔ)器105。
[0080]部分讀取命令是指示從讀出候補(bǔ)地址中的、除了已經(jīng)緩存至內(nèi)部緩沖器A109的地址(稱為緩存地址)以外的地址讀出數(shù)據(jù)的命令。
[0081]另外,在命中判定部113中為未命中判定的情況下,存儲(chǔ)器地址變換部106將全區(qū)域讀取命令輸出至存儲(chǔ)器105。
[0082]全區(qū)域讀取命令是指示從讀出候補(bǔ)地址的全部區(qū)域讀出數(shù)據(jù)的命令。
[0083]此外,存儲(chǔ)器地址變換部106相當(dāng)于讀取請求輸入部以及命令輸出部的例子。
[0084]在內(nèi)部緩沖器A109中存儲(chǔ)通過先前的讀取命令從存儲(chǔ)器105讀取的數(shù)據(jù)。
[0085]內(nèi)部緩沖器A109是緩存區(qū)域的例子。
[0086]此外,在圖1中僅圖示了 I個(gè)內(nèi)部緩沖器,但是,能夠配置多個(gè)內(nèi)部緩沖器。
[0087]內(nèi)部緩沖器管理部107進(jìn)行內(nèi)部緩沖器A109的管理。
[0088]更具體地說,內(nèi)部緩沖器管理部107在從存儲(chǔ)器105讀取的數(shù)據(jù)中選擇想要儲(chǔ)存至內(nèi)部緩沖器A109的數(shù)據(jù),并將選擇出的數(shù)據(jù)存儲(chǔ)至內(nèi)部緩沖器A109。
[0089]在根據(jù)由存儲(chǔ)器地址變換部106輸出的讀取命令而從存儲(chǔ)器105讀出的數(shù)據(jù)中的、末尾的數(shù)據(jù)(稱為末尾數(shù)據(jù))中包含既不是要求有效載荷數(shù)據(jù)也不是對應(yīng)ECC的數(shù)據(jù)的情況下,內(nèi)部緩沖器管理部107將該末尾數(shù)據(jù)存儲(chǔ)至內(nèi)部緩沖器A109。
[0090]例如,在從請求要求源101發(fā)出圖1的OOOOh地址的數(shù)據(jù)(D0?D3)的讀取請求的情況下,通過存儲(chǔ)器地址變換部106,向圖2的OOOOh地址的數(shù)據(jù)(D0?D3)和0004h地址的數(shù)據(jù)(ECC0?D6)進(jìn)行地址變換。
[0091]在OOOOh地址的數(shù)據(jù)(D0?D3)沒有存儲(chǔ)在內(nèi)部緩沖器A109的情況下,為未命中判定,輸出指示對OOOOh地址的數(shù)據(jù)和0004h地址的數(shù)據(jù)進(jìn)行讀取的全區(qū)域讀取命令。
[0092]在與該全區(qū)域讀取命令相對應(yīng)而從存儲(chǔ)器105讀取的末尾數(shù)據(jù)(0004h地址)中包含ECCO?D6。
[0093]ECCO相當(dāng)于對應(yīng)ECC,但D4?D6不是要求有效載荷數(shù)據(jù)。
[009