存储器控制装置的制造方法_2

文档序号:8449186阅读:来源:国知局
4]因此,内部缓冲器管理部107将0004h地址的数据(ECC0?D6)存储至内部缓冲器A109。
[0095]另一方面,在从请求要求源101发出图1的OOlCh地址的数据(Dlc?Dlf)的读取请求的情况下,通过存储器地址变换部106,向图2的0020h地址的数据(Dla?Dlc)和0024h地址的数据(Did?ECC7)进行地址变换。
[0096]在0020h地址的数据(Dla?Dlc)没有存储在内部缓冲器A109的情况下,为未命中判定,输出指示对0020h地址的数据和0024h地址的数据进行读取的全区域读取命令。
[0097]在与该全区域读取命令相对应而从存储器105读取的末尾数据(0024h地址)中包含Dld?ECC7。
[0098]Dld?Dlf相当于要求有效载荷数据,ECC7相当于对应ECC。
[0099]因此,内部缓冲器管理部107不将0024h地址的数据(Did?ECC7)存储至内部缓冲器A109。
[0100]此外,内部缓冲器管理部107相当于缓存管理部的例子。
[0101]命中判定部113判定由存储器地址变换部106获取的读出候补地址的一部分地址处的数据是否已经缓存至内部缓冲器A109。
[0102]如果读出候补地址的一部分地址处的数据已经缓存至内部缓冲器A109,则是命中判定,如果没有进行缓存,则是未命中判定。
[0103]命中判定部113根据内部缓冲器信息储存部112的“内部缓冲器A的地址”和“距离信息”计算相连续的地址,判定数据是否已经缓存至内部缓冲器A109。
[0104]如果是命中判定,则命中判定部113将命中信号输出至存储器地址变换部106。
[0105]此外,命中判定部113相当于缓存判定部的例子。
[0106]在内部缓冲器信息储存部112内的“内部缓冲器A的地址”中储存由来自请求要求源101的读取请求示出的地址(图1的地址)。
[0107]在内部缓冲器信息储存部112内的“距离信息A”中储存读取请求所要求的地址的地址长度。
[0108]在从请求要求源101发出图1的OOOOh地址的读取请求的情况下,在“内部缓冲器A的地址”中储存“OOOOh地址”,在“距离信息A”中储存“4字节”。
[0109]在内部缓冲器是多个的情况下,针对各内部缓冲器对地址和距离信息进行储存。
[0110]此外,在图1中单独地管理“内部缓冲器A的地址”和“距离信息A”,但也可以仅运用“内部缓冲器A的地址”。
[0111]在该情况下,将对读取请求所示出的地址加上地址长度而得到的值储存至“内部缓冲器A的地址”。
[0112]即,在从请求要求源101发出图1的OOOOh地址的读取请求的情况下,将对OOOOh地址加上4字节而得到的“0004h地址”储存至“内部缓冲器A的地址”。
[0113]前次值保存部104是对从存储器105接收的前一次的读取数据、或者内部缓冲器A109的数据进行保存的寄存器。
[0114]数据选择部108选择从存储器105接收的读取数据以及内部缓冲器A109的数据中的某一个,将选择出的数据输出至数据排列部103。
[0115]数据排列部103从由数据选择部108选择的数据和前次值保存部104的数据中获取要求有效载荷数据和对应ECC,对获取的要求有效载荷数据和对应ECC进行排列,以使得能够进行ECC订正。
[0116]此外,将数据排列部103、前次值保存部104、以及数据选择部108所组成的部分称为数据获取部111。
[0117]ECC订正部102从数据排列部103输入排列后的要求有效载荷数据和对应ECC,使用对应ECC进行要求有效载荷数据的ECC订正,将ECC订正后的要求有效载荷数据输出至请求要求源101。
[0118]下面,使用图1?图5,对本实施方式所涉及的存储器控制装置100的动作例进行说明。
[0119]下面,说明从图1的OOOOh地址读取4字节(D0?D3),然后从0004h地址读取4字节(D4?D7)的情况。
[0120]首先,存储器地址变换部106从请求要求源101受理从OOOOh地址读取4字节的读取请求(S201)。
[0121]然后,命中判定部113对受理的读取请求是否命中于内部缓冲器A109所存储的数据进行判定(S301)。
[0122]具体地说,命中判定部113根据内部缓冲器信息储存部112的“内部缓冲器A的地址”和“距离信息A”计算缓存地址,并进行判定。
[0123]此外,在该时刻,在内部缓冲器A109中没有存储数据,因此,S301的判定结果是
No0
[0124]然后,存储器地址变换部106对包含4字节的数据(D0?D3)和与之对应的ECC(ECCO)的区域(读出候补地址)进行计算,生成指示从计算出的区域进行读取的读取命令,并将生成的读取命令输出至存储器105(S202)。
[0125]参照图2,上述数据横跨OOOOh地址和0004h地址而配置,因此,存储器地址变换部106生成指示从OOOOh地址读取8字节的读取命令(全区域读取命令)。
[0126]另外,存储器地址变换部106将生成的读取命令输出至存储器105,并且,将读取命令和来自请求要求源101的读取请求输出至内部缓冲器管理部107以及数据选择部108。
[0127]存储器105返送OOOOh地址的数据(D0?D3),在存储器控制装置100中,数据选择部108输入OOOOh地址的数据(S203)。
[0128]数据选择部108向数据排列部103和内部缓冲器管理部107就读取数据的输入进行通知。
[0129]如果内部缓冲器管理部107从数据选择部108接收到通知,则判断输入的读取数据是否是末尾数据(S400)。
[0130]OOOOh地址的数据不是末尾数据,因此,S401的判定结果是No。
[0131]内部缓冲器管理部107从存储器地址变换部106输入有读取命令和读取请求,另夕卜,掌握了图1的数据配置以及图2的数据配置,因此,能够判定为最初输入的读取数据(OOOOh地址的数据)不是末尾数据。
[0132]此外,由于输入的OOOOh地址的数据不是末尾数据,因此,输入的读取数据不保存至内部缓冲器A109。
[0133]然后,数据排列部103判断是否能够进行数据的排列(S305)。
[0134]S卩,数据排列部103判断通过来自存储器105的数据或者内部缓冲器A109的数据,和前次值保存部104的数据,能否得到请求要求源101所要求的要求有效载荷数据和对应 ECC。
[0135]在该时刻,从存储器105输入了 OOOOh地址的数据,但在前次值保存部104中并没有存储数据。
[0136]仅通过OOOOh地址的数据无法得到要求有效载荷数据和对应ECC,因此,数据排列部103等待0004h地址的数据的输入(S305为NO)。
[0137]此时,从数据选择部108,将读取数据(OOOOh地址)作为前次值存储至前次值保存部 104。
[0138]此外,数据排列部103从存储器地址变换部106输入有读取命令和读取请求,另夕卜,掌握了图1的数据配置以及图2的数据配置,因此,能够判断能否进行数据的排列。
[0139]然后,存储器105返送0004h地址的数据(ECC0?D6),在存储器控制装置100中,数据选择部108输入0004h地址的数据(S203)。
[0140]数据选择部108向数据排列部103和内部缓冲器管理部107就读取数据的输入进行通知。
[0141]如果内部缓冲器管理部107从数据选择部108接收到通知,则判断输入的读取数据是否是末尾数据(S400)。
[0142]0004h地址的数据是与读取命令相对应而从存储器105输入的最后的数据,相当于末尾数据(S400为YES)。
[0143]然后,内部缓冲器管理部107判断在输入的0004h地址的数据中是否包含除了要求有效载荷数据以及对应ECC以外的后续的有效载荷数据(S401)。
[0144]由请求要求源101所要求的要求有效载荷数据是DO?D3,另外,对应ECC是EECO。
[0145]在0004h地址的数据中包含有后续的有效载荷数据即D4?D6。
[0146]因此,S401的判定结果是YES。
[0147]如上所述,内部缓冲器管理部107从存储器地址变换部106输入有读取请求,另夕卜,掌握了图1的数据配置以及图2的数据配置,因此,能够判断出0004h地址的D4?D6既不是要求有效载荷数据,也不是对应ECC,而是后续的有效载荷数据。
[0148]然后,内部缓冲器管理部107将“OOOOh”记述至“内部缓冲器信息储存部112”的“内部缓冲器A的地址”,将4字节读取的“4”记述至“距离信息A”,将0004h地址的数据(ECC0?D6)存储至内部缓冲器A109(S402)。
[0149]然后,数据排列部103判断是否能够进行数据的排列(S305)。
[0150]S卩,数据排列部103判断通过来自存储器105的数据或者内部缓冲器A109的数据,和前次值保存部104的数据,能否得到请求要求源101所要求的要求有效载荷数据和对应 ECC。
[0151]在该时刻,从存储器105输入0004h地址的数据,OOOOh地址的数据作为前次值存储在前次值保存部104中。
[0152]通过从存储器105输入的数据和前次值保存部104的数据得到了要求有效载荷数据和对应ECC,因此,S350的判定结果是Yes。
[0153]数据排列部103从前次值保存部104输入OOOOh地址的数据(D0?D3),另外,从数据选择部108获取0004h地址的数据(ECC0?D6),提取要求有效载荷数据(D0?D3)和对应ECC (ECCO),进行提取出的数据的排列(S205)。
[0154]然后,ECC订正部102从数据排列部103获取排列后的数据(D0?D3和ECC0),在使用ECCO对要求有效载荷数据DO?D3进行ECC订正之后,将要求有效载荷数据(D0?D3)返送至请求要求源101 (S206)。
[0155]通过以上流程,所要求的有效载荷数据的返送全部完成,因此,结束处理(S207)。
[0156]下面,假设从请求要求源101受理从0004h地址读取4字节的读取请求的情况。
[0157]在该情况下,在受理读取请求(S201)之后,命中判定部113判定读取请求所要求的要求有效载荷数据是否命中于内部缓冲器A109所存储的数据(S301)。
[0158]S卩,命中判定部113判定在S201中受理的读取请求是否要求读取与内部缓冲器信息储存部112的“内部缓冲器A的地址”所记述的地址相连续的地址处的数据。
[0159]在本例的情况下,在“内部缓冲器A的地址”中记述有“OOOOh地址”,在“距离信息A”中记述有“4”,因此,对“0000h地址”加上4字节而得到“0004h”,与读取请求的要求一致,因此,是命中判定,S301的判定结果是Yes。
[0160]存储器地址变换部106计算包含4字节的数据(D4?D7)和与之相对应的ECC(ECCl)在内的区域(读出候补地址)。
[0161]参照图2,上述数据横跨0004h地址和OOOSh地址而配置,因此,如果是通常情况,则存储器地址变换部106生成指示从0004h地址读取8字节的读取命令。
[0162]但是,0004h地址的数据利用内部缓冲器A109的数据,因此,存储器地址变换部106生成指示从0008h读取4字节的读取命令(部分读取命令),并将生成的读取命令输出至存储器105(S302)。
[0163]另外,存储器地址变换部106将生成的读取命令输出至存储器105,并且,将读取命令和来自请求要求源101的读取请求输出至内部缓冲器管理部107以及数据选择部108。
[0164]0004h地址的数据已经存储在内部缓冲器A109,因此,内部缓冲器管理部107将内部缓冲器A109的数据经由数据选择部108发送至数据排列部103(S303)。
[0165]数据排列部103判断是否能够进行数据的排列(S305)。
[0166]S卩,数据排列部103判断通过来自存储器105的数据或者内部缓冲器A109的数据,和前次值保存部104的数据,能否得到请求要求源101所要求的要求有效载荷数据和对应 ECC。
[0167]在该时刻,在内部缓冲器A109中存在0004h地址的数据,在前次值保存部104中也存在0004h地址的数据。
[0168]仅通过0004h地址的数据无法得到要求有效载荷数据和对应ECC,因此,数据排列部103等待0008h地址的数据的输入(S305为NO)。
[0169]此时,从数据选择部108将内部缓冲器A109的数据(0004h地址)作为前次值存储至前次值保存部104。
[0170]下面,存储器105返送OOOSh地址的数据(D7?D9),在存储器控制装置100中,数据选择部108输入0008h地址的数据(S203)。
[0171]数据选择部108向数据排列部103和内部缓冲器管理部107就读取数据的输入进行通知。
[0172]如果内部缓冲器管理部107从数据选择部108接收到通知,则判断输入的读取数据是否是末尾数据(S400)。
[0173]OOOSh地址的数据是与读取命令相对应而从存储器105输入的最后的数据,相当于末尾数据(S400为YES)。
[0174]然后,内部缓冲器管理部107判断在输入的OOOSh地址的数据中是否包含除了要求有效载荷数据以及对应ECC以外的后续的有效载荷数据(S401)。
[0175]请求要求源101所要求的要求有效载荷数据是D4?D7,另外,对应ECC是EECl。
[0176]在0008h地址的数据中包含有后续的有效载荷数据即D8?D9。
[0177]因此,S401的判定结果是YES。
[0178]然后,内部缓冲器管理部107将“0004h”记述至内部缓冲器信息储存部112的“内部缓冲器A的地址”,将4字节读取的“4”记述至“距离信息A”,将OOOSh地址的数据(D7?D9)存储至内部缓冲器A109(S402)。
[0179]然后,数据排列部103判断是否能够进行数据的排列(S305)。
[0180]S卩,数据排列部103判断通过来自存储器105的数据或者内部缓冲器A109的数据,和前次值保存部104的数据,能否得
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1