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

文档序号:8449186阅读:来源:国知局
到请求要求源101所要求的要求有效载荷数据和对应 ECC。
[0181]在该时刻,从存储器105输入0008h地址的数据,0004h地址的数据作为前次值存储于前次值保存部104。
[0182]通过从存储器105输入的数据和前次值保存部104的数据得到了要求有效载荷数据和对应ECC,因此,S305的判定结果是Yes。
[0183]数据排列部103从前次值保存部104输入0004h地址的数据(ECC0?D6),另外,从数据选择部108获取0008h地址的数据(D7?D9),提取要求有效载荷数据(D4?D7)和对应ECC (ECCl),并对提取的数据进行排列(S205)。
[0184]然后,ECC订正部102从数据排列部103获取排列后的数据(D4?D7和ECC1),在使用ECCl对要求有效载荷数据D4?D7进行ECC订正之后,将要求有效载荷数据D4?D7返送至请求要求源101 (S206)。
[0185]通过以上流程,所要求的有效载荷数据的返送全部完成,因此,结束处理(S207)。
[0186]图5具体地说明上面的存储器控制装置100的动作。
[0187]如果从请求要求源101发出从OOOOh地址(图1)读取4字节的读取请求(D0?D3),则从存储器105的图2的OOOOh地址读出第I数据A(D0?D3)。
[0188]第I数据A(D0?D3)不是末尾数据,因此,不保存至内部缓冲器A109,而是作为第I数据B (D0?D3)保存至前次值保存部104。
[0189]然后,从存储器105的图2的0004h地址读出第2数据A(ECC0?D6)。
[0190]第2数据A(ECC0?D6)是末尾数据,因此,作为第2数据E (ECC0?D6)保存至内部缓冲器A109。
[0191]数据排列部103根据来自存储器105的第2数据A(ECC0?D6)和前次值保存部104的第I数据B (D0?D3)进行数据排列,生成第I数据C (D0?ECC0)。
[0192]然后,ECC订正部102进行第I数据C(D0?ECC0)的ECC订正,将ECC订正后的第I数据D (D0?D3)输出至请求要求源101。
[0193]另外,将第2数据A(ECC0?D6)作为第2数据B(ECC0?D6)保存至前次值保存部 104。
[0194]然后,当从请求要求源101发出从0004h地址(图1)读取4字节的读取请求(D4?D7)时,在内部缓冲器A109存在有第2数据E (ECC0?D6),将第2数据B (ECC0?D6)作为前次值保存至前次值保存部104。
[0195]对于内部缓冲器A109的第2数据E(ECC0?D6)和前次值保存部104的第2数据B (ECC0?D6),无法进行数据排列,因此,将第2数据E (ECC0?D6)作为前次值保存至前次值保存部104,并且,从存储器105的图2的0008h地址读出第4数据A(D7?D9)。
[0196]第4数据A(D7?D9)是末尾数据,因此,作为第4数据E(D7?D9)保存至内部缓冲器A109。
[0197]数据排列部103根据来自存储器105的第4数据A (D7?D9)和前次值保存部104的第2数据E (ECC0?D6)进行数据排列,生成第2数据C (D4?ECC1)。
[0198]然后,ECC订正部102进行第2数据C(D4?ECC1)的ECC订正,将ECC订正后的第2数据D(D4?D7)输出至请求要求源101。
[0199]另外,将第4数据A(D7?D9)作为第4数据B (D7?D9)保存至前次值保存部104。
[0200]若非是本实施方式这样,则当从请求要求源101发出从0004h地址读取4字节的读取请求时,如第3数据A (ECC0?D6)这样,会从存储器105重复读出ECCO?D6的数据。
[0201]与其相对,在本实施方式中,能够利用内部缓冲器A109内的第2数据E(ECC0?D6),因此,无需从存储器105进行重复的读出。
[0202]上面说明了仅包含内部缓冲器A109的存储器控制装置100的动作例。
[0203]在这里,说明除了内部缓冲器A109以外还包含内部缓冲器B1090的存储器控制装置100的动作例。
[0204]图6表示包含内部缓冲器A109和内部缓冲器B1090的存储器控制装置100的动作例。
[0205]在图6中,表示下述情况的请求要求源101的动作例,即,从请求要求源101发出从OOOOh地址(图1)读取4字节的读取请求(D0?D3),然后,发出从0014h地址(图1)读取4字节的读取请求(D14?D17),随后,发出从0004h地址读取4字节的读取请求(D4?D7)。
[0206]此外,假设在第I读取请求(OOOOh地址的读取请求)时,与早于第I读取请求的读取请求相对应而读出的ECC4?D16的数据(图2的0018h地址)已作为第3数据E保存于内部缓冲器B1090。
[0207]另一方面,假设在第I读取请求时,在内部缓冲器A109中没有保存数据。
[0208]如果从请求要求源101发出从OOOOh地址(图1)读取4字节的读取请求(D0?D3),则从存储器105的图2的OOOOh地址读出第I数据A(D0?D3)。
[0209]第I数据A (D0?D3)不是末尾数据,因此,不保存至内部缓冲器A109,而是作为第I数据B (D0?D3)保存至前次值保存部104。
[0210]然后,从存储器105读出第2数据A(ECC0?D6)。
[0211]第2数据A(ECC0?D6)是末尾数据,因此,作为第2数据E (ECC0?D6)保存至内部缓冲器A109。
[0212]数据排列部103根据来自存储器105的第2数据A(ECC0?D6)和前次值保存部104的第I数据B (D0?D3)进行数据排列,生成第I数据C (D0?ECC0)。
[0213]然后,ECC订正部102进行第I数据C(D0?ECC0)的ECC订正,将ECC订正后的第I数据D (D0?D3)输出至请求要求源101。
[0214]另外,第2数据A(ECC0?D6)作为第2数据B(ECC0?D6)而保存至前次值保存部 104。
[0215]然后,当从请求要求源101发出从0014h地址(图1)读取4字节的读取请求(D14?D17)时,在内部缓冲器B1090中存在第3数据E (ECC4?D16),第2数据B (ECC0?D6)作为前次值保存于前次值保存部104。
[0216]对于内部缓冲器B1090的第3数据E(ECC4?D16)和前次值保存部104的第2数据B(ECC0?D6),无法进行数据排列,因此,将第3数据E(ECC4?D16)作为第3数据B (ECC4?D16)(前次值)保存至前次值保存部104,并且,从存储器105的图2的OOlCh地址读出第4数据A(D17?D19)。
[0217]第4数据A(D17?D19)是末尾数据,因此,作为第4数据E(D17?D19)保存至内部缓冲器A109。
[0218]数据排列部103根据来自存储器105的第4数据A(D17?D19)和前次值保存部104的第3数据B (ECC4?D16)进行数据排列,生成第2数据C (D14?ECC5)。
[0219]然后,ECC订正部102进行第2数据C(D14?ECC5)的ECC订正,将ECC订正后的第2数据D (D14?D17)输出至请求要求源101。
[0220]另外,第4数据A(D17?D19)作为第4数据B(D17?D19)保存至前次值保存部104。
[0221]然后,当从请求要求源101发出从0004h地址(图1)读取4字节的读取请求(D4?D7)时,在内部缓冲器A109中存在第2数据E(ECC0?D6),第4数据B(D17?D19)作为前次值保存在前次值保存部104。
[0222]对于内部缓冲器A109的第2数据E(ECC0?D6)和前次值保存部104的第4数据B (D17?D19),无法进行数据排列,因此,将第2数据E (ECC0?D6)作为第5数据B (ECC0?D6)(前次值)保存至前次值保存部104,并且,从存储器105的图2的0008h地址读出第6数据A(D7?D9)。
[0223]第6数据A(D7?D9)是末尾数据,因此,作为第6数据E(D7?D9)保存至内部缓冲器A109。
[0224]数据排列部103根据来自存储器105的第6数据A (D7?D9)和前次值保存部104的第5数据B (ECC0?D6)进行数据排列,生成第3数据C (D4?ECC1)。
[0225]然后,ECC订正部102进行第3数据C(D4?ECC1)的ECC订正,将ECC订正后的第3数据D(D4?D7)输出至请求要求源101。
[0226]另外,第6数据A (D7?D9)作为第6数据B(D7?D9)保存至前次值保存部104。
[0227]此外,省略第6数据B (D7?D9)的图示。
[0228]在上面的内容中,列举了针对从OOOOh地址读取4字节、从0004h地址读取4字节这种每次4字节的读取请求,将有效载荷数据返送至请求要求源101的例子。
[0229]本实施方式的存储器控制装置100还能够应对每次整数倍于4字节的读取请求。
[0230]例如,还能够应对从OOOOh地址读取8字节、从0008h地址读取8字节这种每次8字节的读取请求。
[0231]另外,在本实施方式中,对使用内部缓冲器A109和内部缓冲器B1090这两个内部缓冲器的例子进行了说明,但是,对于使用大于或等于3个内部缓冲器的情况也能够按照本实施方式所说明的步骤进行处理。
[0232]在本实施方式中,说明了具有下述单元的存储器控制装置。
[0233](a)将来自请求要求源的请求变换为存储器的请求并进行数据的桥接传输的单元
[0234](b)对数据进行ECC错误订正的单元
[0235](c)将来自采用了垂直ECC的存储器的接收数据再配置为能够进行ECC错误订正的数据(分离为数据和与其对应的ECC)的单元
[0236](d)将来自请求要求源的地址和长度变换为针对采用了垂直ECC的存储器的地址和长度的单元
[0237](e)用于保存从存储器接收到的前一次数据的单元
[0238](f)对最后接收的、包含下一个地址处的有效载荷数据的读取数据进行保存的单元
[0239](g)为了针对是下一个地址这一情况进行判定而对保存的有效载荷数据的地址进行储存的单元
[0240](h)为了针对是下一个地址这一情况进行判定而保存距离信息的单元
[0241](i)判定即将向存储器发出的读取命令是否可以再次利用已保存的有效载荷数据的单元
[0242](j)选择内部缓冲器的数据和从存储器接收的读取数据中的某一方的单元。
[0243]实施方式2
[0244]在实施方式I中,例如,来自请求要求源101的从0004h地址(图1)读取4字节的读取请求是在先行的从OOOOh地址(图1)读取4字节的处理结束之后(图4的S207为YES)进行的,因此,进行的是非流水线型的动作。
[0245]在流水线型的动作中,在利用内部缓冲器所保存的数据的定时,其他传输处理的读取数据可能从存储器返送,导致在内部缓冲器的数据和来自存储器的数据之间发生冲突,在发生数据冲突的情况下,会导致某一方的数据消失。
[0246]在本实施方式中,在通过流水线型的动作再次利用内部缓冲器的数据的情况下,使来自存储器的读取数据的接收定时延迟,以使得从存储器接收的读取数据向数据获取部111的输出定时、和来自内部缓冲器的数据向数据获取部111的输出定时不发生重叠。
[0247]如上所述,本实施方式的存储器控制装置100支持流水线型的存储器。
[0248]并且,本实施方式的存储器控制装置100能够充分发挥流水线型存储器的特征,能够有助于存储器的吞吐量的提尚。
[0249]图7表示本实施方式所涉及的存储器控制装置100的结构例。
[0250]与图3的结构相比,在图7中,追加有命令发出间隔控制部114和FIFO缓冲器110。
[0251]命令发出间隔控制部114在利用内部缓冲器A109的数据的情况下,进行以利用内部缓冲器A109的数据所需的时间使针对存储器105的读取命令的输出延迟的控制。
[0252]输出读取命令后,在某个固定的间隔之后(读取延迟),从存储器105返送回来读取数据,因此,能够通过利用命令发出间隔控制部114对发出读取命令的间隔进行控制,从而空出用于利用内部缓冲器A的数据的时间。
[0253]此外,命令发出间隔控制部114使读取命令的输出延迟的延迟时间例如是流水线中的I个间隙(slot)量的时间。
[0254]在本实施方式中,命令发出间隔控制部114也相当于命令输出部的例子。
[0255]在本实施方式中,存储器地址变换部106将针对存储器105的读取命令存储至FIFO缓冲器110。
[0256]然后,存储器地址变换部106将内部缓冲器数据输入命令(相当于缓存数据输入命令)和存储器数据输入命令存储至FIFO缓冲器110,其中,该内部缓冲器数据输入命令用于向数据排列部103做出指示以输入内部缓冲器A109所保存的数据,该存储器数据输入命令用于向数据排列部103做出指示以输入来自存储器105的数据。
[0257]FIFO缓冲器110储存读取命令、内部缓冲器数据输入命令、以及存储器数据输入命令。
[0258]本实施方式所涉及的存储器控制装置100对流水线型的存储器进行控制。
[0259]S卩,本实施方式所涉及的存储器控制装置100,在将与从请求要求源101受理的读取请求相对应的读取数据向请求要求源101的返送全部结束之前,从请求要求源101受理下一个读取请求,对存储器105发出读取命令。
[0260]因此,在FIFO缓冲器110中储存发出的读取命令。
[0261]另外,在本实施方式中,内部缓冲器管理部107在从存储器105输入读取数据之前,将内部缓冲器信息储存部112的“内部缓冲器A的地址”的值和“距离信息A”的值更新。
[0262]因此,命中判定部113不仅判定读出对象地址处的数据是否已经缓存至内部缓冲器A109,还根据“内部缓冲器A的地址”的值和“距离信息A”的值,判定读出对象地址处的数据是否预定要缓存至内部缓冲器A109。
[0263]此外,图7所示的其他要素与图3所示的相同,因此,省略说明。
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1