CN104769558B - 存储器控制装置 - Google Patents
存储器控制装置 Download PDFInfo
- Publication number
- CN104769558B CN104769558B CN201280076878.2A CN201280076878A CN104769558B CN 104769558 B CN104769558 B CN 104769558B CN 201280076878 A CN201280076878 A CN 201280076878A CN 104769558 B CN104769558 B CN 104769558B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- address
- order
- reading
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1028—Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
内部缓冲器(A109)缓存来自存储器(105)的数据。存储器地址变换部(106)从请求要求源(101)输入读取请求。命中判定部(113)判定存储有读取请求所要求的有效载荷数据、和对应的ECC的大于或等于2个地址即读出候补地址中的某地址处的数据是否已经缓存或者预定要缓存至内部缓冲器(A109)。命令发出间隔控制部(114)在某地址处的数据已经缓存或者预定要缓存至内部缓冲器(A109)的情况下,在经过规定的延迟时间之后,将部分读取命令输出至存储器(105),该部分读取命令指示从读出候补地址中除了数据已经缓存或者预定要缓存至内部缓冲器(A109)的地址以外的地址读取数据。
Description
技术领域
本发明涉及一种对要求从存储器读出有效载荷数据的读取请求进行处理的技术。
背景技术
为了提高存储器的可靠性,有时在有效载荷数据中附加ECC(Error CorrectingCode)、奇偶校验位。
通常,在宽度方向上追加专用于所附加的ECC、奇偶校验位的存储器元件(水平ECC、水平奇偶校验)。
例如,可以想到并非×8位结构的存储器,而是使用特殊的×9位结构的存储器。
但是,存储器元件的追加、特殊存储器的采用,大多在成本方面是不利的,或者难于得到部件。
作为其解决对策之一,有时采用通过不在宽度方向上保存ECC而在深度方向上保存ECC,由此不需要在宽度方向上增加存储器的垂直ECC、垂直奇偶校验(下面记载为垂直ECC)。
例如,考虑在如图1所示的存储器结构中通过垂直ECC方式,附加ECC的情况。
在图1中,在1个地址处,存储有4个各自的数据宽度是1字节的有效载荷数据。
在图1的存储器结构中,如果通过垂直ECC,对每4字节的有效载荷数据附加1字节的ECC,则形成如图2所示的数据的配置。
在对采用了垂直ECC的存储器从连续的地址进行读取的情况下,如果第2次从存储器进行读取的数据(第2数据)包含ECC,则该数据也可用于后续的从连续地址进行的读取。
在由读取请求的要求源通过图1的数据配置对有效载荷数据进行管理、由存储器通过图2的数据配置对有效载荷数据和ECC进行管理的情况下,如果存在图1的0000h地址的数据(D0~D3)的读取请求,则进行下面的数据读取。
从存储器按照图2的0000h地址的数据(D0~D3)、0004h地址的数据(ECC0~D6)的顺序进行读出,使用ECC0对读出的D0~D3进行错误订正,将错误订正后的D0~D3输出至要求源。
并且,在存在图1的0004h地址的数据(D4~D7)的读取请求的情况下,进行下面的数据读取。
从存储器按照图2的0004h地址的数据(ECC0~D6)、0008h地址的数据(D7~D9)的顺序进行读出,使用ECC1对读出的D4~D7进行错误订正,将错误订正后的D4~D7输出至要求源。
如上所述,在读取对象的地址连续的情况下,需要将第2数据(在上面的例子中,图2的0004h地址的数据)从存储器读取2次。
但是,在存储器访问中存在一定的开销(overhead)的情况较多(例如,在DRAM(Dynamic Random Access Memory)中,如果对同一个存储块进行操作(ACT),则产生无法访问的期间),如果将第2数据读取2次,则发生性能损耗,效率不高。
另外,由于每次存储器访问都会消耗电力,因此,如果将第2数据读取2次,则电力消耗变多。
关于伴有奇偶校验结果的数据转送技术,存在下述技术,即,针对连续的访问,以在奇偶校验结果输出之前不接受下一次的读取请求的方式进行总线控制,使读取请求在奇偶校验后的数据转送之前进行等待(例如,专利文献1)。
专利文献1:日本特开平5-233471号公报
发明内容
在专利文献1的方式中,能够保障从读取请求直到读取数据返回的一次传输处理(transition)一定会完成,但是,存在无法支持向流水线型存储器的数据转送的课题。
本发明就是鉴于上述的情况而提出的,其主要目的在于,即使对于流水线型存储器,也避免重复的数据读出,高效地利用有限的存储带宽,另外,抑制存储器访问中的电力消耗。
本发明所涉及的存储器控制装置,其通过流水线方式对要求从存储器读出有效载荷数据的读取请求进行处理,在该存储器中,具有分别对呈规定的数据宽度的数据进行存储的多个地址,针对呈所述数据宽度的有效载荷数据设定错误订正数据,存在对应关系的错误订正数据和呈所述数据宽度的有效载荷数据横跨相邻的2个地址而存储,以地址为单位进行数据的读出,
该存储器控制装置的特征在于,具有:
缓存区域,其缓存从所述存储器读出的数据;
读取请求输入部,其用于将读取请求输入,该读取请求要求读出整数倍于所述数据宽度的量的有效载荷数据;
缓存判定部,其判定存储有要求有效载荷数据和对应错误订正数据的大于或等于2个地址即读出候补地址中的某地址处的数据是否已经缓存或者预定要缓存至所述缓存区域,其中,该要求有效载荷数据是由所述读取请求输入部输入的读取请求所要求的有效载荷数据,该对应错误订正数据是用于对所述要求有效载荷数据进行错误订正的错误订正数据;以及
命令输出部,其在由所述缓存判定部判定为大于或等于2个读出候补地址中的某地址处的数据已经缓存或者预定要缓存至所述缓存区域的情况下,将指示从除了缓存地址以外的地址读出数据的部分读取命令,在从能够向所述存储器输出所述部分读取命令的定时开始经过规定的延迟时间之后,输出至所述存储器,其中,该缓存地址是大于或等于2个读出候补地址中数据已经缓存或者预定要缓存至所述缓存区域的地址。
发明的效果
在本发明中,在从能够向存储器输出部分读取命令的定时(timing)开始经过规定的延迟时间之后,将指示从读出候补地址中除了缓存地址以外的地址读出数据的部分读取命令输出至存储器。
关于缓存地址处的数据,通过使用缓存区域的数据,从而能够避免重复数据的读出,有效地利用有限的存储带宽,另外,能够抑制存储器访问中的电力消耗。
另外,在经过延迟时间之后,将部分读取命令输出至存储器,由此,即使对于流水线型的存储器,也能够避免从缓存区域实现的缓存地址处的数据的输入与从存储器实现的除了缓存地址以外的地址处的数据的输入之间发生冲突。
附图说明
图1是表示实施方式1所涉及的不包含ECC的数据的配置例的图。
图2是表示实施方式1所涉及的附加有垂直ECC的数据的配置例的图。
图3是表示实施方式1所涉及的存储器控制装置、请求要求源以及存储器的图。
图4是表示实施方式1所涉及的存储器控制装置的动作例的流程图。
图5是表示实施方式1所涉及的存储器控制装置的动作例的图。
图6是表示实施方式1所涉及的存储器控制装置的动作例的图。
图7是表示实施方式2所涉及的存储器控制装置、请求要求源以及存储器的图。
图8是表示实施方式2所涉及的存储器控制装置的动作例的流程图。
图9是表示实施方式2所涉及的存储器控制装置的动作例的流程图。
图10是表示实施方式3所涉及的存储器控制装置、请求要求源以及存储器的图。
图11是表示实施方式3所涉及的存储器控制装置的动作例的流程图。
图12是表示实施方式2所涉及的存储器控制装置的动作例的时序图。
图13是表示实施方式2所涉及的存储器控制装置的动作例的时序图。
图14是表示实施方式3所涉及的存储器控制装置的动作例的时序图。
具体实施方式
在实施方式1中说明支持非流水线型存储器的存储器控制装置,在实施方式2以及3中说明支持流水线型存储器的存储器控制装置。
在实施方式1的存储器控制装置中,为了避免第2数据的重复读取,使用前次值保存部和内部缓冲器。
对于支持流水线型存储器的实施方式2以及3的存储器控制装置,为了避免第2数据的重复读取,同样地使用前次值保存部和内部缓冲器。
存储器控制装置的前次值保存部和内部缓冲器的使用方法在实施方式1~3中是通用的,因此,考虑到易于理解,在实施方式1中,说明非流水线方式的存储器控制装置的动作。
并且,以实施方式1中的动作为前提,在实施方式2以及3中说明流水线方式所特有的动作。
另外,对在实施方式1~3中通用的请求要求源以及存储器上的地址和数据的关系进行说明。
例如,存在如图1所示的地址与数据宽度是4字节的数据(D0~D3f)。
图2示出向每4字节附加1字节ECC而形成的垂直ECC的存储器配置。
成为在数据之后配置ECC的顺序,但这只是一个例子,对于ECC的配置方法,只要是在相邻的前后2行中配置数据和ECC即可。
例如,“ECC0”也可以配置在有效载荷数据“D0”之前。
另外,分配至相同地址的数据能够扩展,例如可以将数据宽度扩展为,在0000h地址处是D0~D3、ECC0、D4~D6,在下面的0008h地址处是D7、ECC1、D8~Db、ECC2、Dc。
其原因在于,即使在该情况下,依然处于一部分有效载荷数据和ECC横跨相邻的2个地址这样的对应关系。
实施方式1
图3表示实施方式1所涉及的存储器控制装置100、请求要求源101以及存储器105。
在图3中,请求要求源101向存储器105发出读取、写入请求。
下面,限定于请求要求源101发出要求从存储器105读出有效载荷数据的读取请求的情况而进行说明。
请求要求源101例如是CPU(Central Processing Unit)。
此外,在请求要求源101中,例如按照图1所示的形式,掌握了有效载荷数据的配置。
另外,在存储器105中,例如按照图2所示的形式,配置有有效载荷数据和作为错误订正数据的ECC。
以地址为单位,从存储器105进行数据的读出。
此外,存储器105是作为存储器控制装置100的控制对象的存储器。
存储器控制装置100由存储器地址变换部106、内部缓冲器A109、内部缓冲器管理部107、内部缓冲器信息储存部112、命中判定部113、前次值保存部104、数据选择部108、数据排列部103、以及ECC订正部102构成。
存储器控制装置100的各结构要素例如是元件、器件、电路这样的硬件。
存储器控制装置100的各结构要素例如是芯片组内的半导体电路组。
另外,例如,也可以使用程序而实现存储器地址变换部106、内部缓冲器管理部107、内部缓冲器信息储存部112、数据选择部108、数据排列部103以及ECC订正部102。
存储器地址变换部106输入来自请求要求源101的读取请求。
然后,存储器地址变换部106将输入的读取请求的地址变换为配置有垂直ECC的存储器105上的地址。
例如,在从请求要求源101收到图1的0000h地址的数据(D0~D3)的读取请求的情况下,存储器地址变换部106进行向图2的0000h地址的数据(D0~D3)和0004h地址的数据(ECC0~D6)的地址变换。
此外,将由存储器地址变换部106进行地址变换后的地址称为读出候补地址(在上面的例子中,图2的0000h地址和0004h地址是读出候补地址)。
另外,将来自请求要求源101的读取请求所要求的有效载荷数据称为要求有效载荷数据(在上面的例子中,D0~D3是要求有效载荷数据)。
另外,将用于要求有效载荷数据的错误订正的ECC称为对应错误订正数据或者对应ECC(在上面的例子中,ECC0是对应错误订正数据)。
并且,存储器地址变换部106基于地址变换结果以及命中判定部113的判定结果,将指示数据读取的读取命令输出至存储器105。
此外,在本说明书中,将存储器地址变换部106从请求要求源101输入的信息称为读取请求,将存储器地址变换部106输出至存储器105的信息称为读取命令。
在命中判定部113中为命中判定的情况下,存储器地址变换部106将部分读取命令输出至存储器105。
部分读取命令是指示从读出候补地址中的、除了已经缓存至内部缓冲器A109的地址(称为缓存地址)以外的地址读出数据的命令。
另外,在命中判定部113中为未命中判定的情况下,存储器地址变换部106将全区域读取命令输出至存储器105。
全区域读取命令是指示从读出候补地址的全部区域读出数据的命令。
此外,存储器地址变换部106相当于读取请求输入部以及命令输出部的例子。
在内部缓冲器A109中存储通过先前的读取命令从存储器105读取的数据。
内部缓冲器A109是缓存区域的例子。
此外,在图1中仅图示了1个内部缓冲器,但是,能够配置多个内部缓冲器。
内部缓冲器管理部107进行内部缓冲器A109的管理。
更具体地说,内部缓冲器管理部107在从存储器105读取的数据中选择想要储存至内部缓冲器A109的数据,并将选择出的数据存储至内部缓冲器A109。
在根据由存储器地址变换部106输出的读取命令而从存储器105读出的数据中的、末尾的数据(称为末尾数据)中包含既不是要求有效载荷数据也不是对应ECC的数据的情况下,内部缓冲器管理部107将该末尾数据存储至内部缓冲器A109。
例如,在从请求要求源101发出图1的0000h地址的数据(D0~D3)的读取请求的情况下,通过存储器地址变换部106,向图2的0000h地址的数据(D0~D3)和0004h地址的数据(ECC0~D6)进行地址变换。
在0000h地址的数据(D0~D3)没有存储在内部缓冲器A109的情况下,为未命中判定,输出指示对0000h地址的数据和0004h地址的数据进行读取的全区域读取命令。
在与该全区域读取命令相对应而从存储器105读取的末尾数据(0004h地址)中包含ECC0~D6。
ECC0相当于对应ECC,但D4~D6不是要求有效载荷数据。
因此,内部缓冲器管理部107将0004h地址的数据(ECC0~D6)存储至内部缓冲器A109。
另一方面,在从请求要求源101发出图1的001Ch地址的数据(D1c~D1f)的读取请求的情况下,通过存储器地址变换部106,向图2的0020h地址的数据(D1a~D1c)和0024h地址的数据(D1d~ECC7)进行地址变换。
在0020h地址的数据(D1a~D1c)没有存储在内部缓冲器A109的情况下,为未命中判定,输出指示对0020h地址的数据和0024h地址的数据进行读取的全区域读取命令。
在与该全区域读取命令相对应而从存储器105读取的末尾数据(0024h地址)中包含D1d~ECC7。
D1d~D1f相当于要求有效载荷数据,ECC7相当于对应ECC。
因此,内部缓冲器管理部107不将0024h地址的数据(D1d~ECC7)存储至内部缓冲器A109。
此外,内部缓冲器管理部107相当于缓存管理部的例子。
命中判定部113判定由存储器地址变换部106获取的读出候补地址的一部分地址处的数据是否已经缓存至内部缓冲器A109。
如果读出候补地址的一部分地址处的数据已经缓存至内部缓冲器A109,则是命中判定,如果没有进行缓存,则是未命中判定。
命中判定部113根据内部缓冲器信息储存部112的“内部缓冲器A的地址”和“距离信息A”计算相连续的地址,判定数据是否已经缓存至内部缓冲器A109。
如果是命中判定,则命中判定部113将命中信号输出至存储器地址变换部106。
此外,命中判定部113相当于缓存判定部的例子。
在内部缓冲器信息储存部112内的“内部缓冲器A的地址”中储存由来自请求要求源101的读取请求示出的地址(图1的地址)。
在内部缓冲器信息储存部112内的“距离信息A”中储存读取请求所要求的地址的地址长度。
在从请求要求源101发出图1的0000h地址的读取请求的情况下,在“内部缓冲器A的地址”中储存“0000h地址”,在“距离信息A”中储存“4字节”。
在内部缓冲器是多个的情况下,针对各内部缓冲器对地址和距离信息进行储存。
此外,在图3中单独地管理“内部缓冲器A的地址”和“距离信息A”,但也可以仅运用“内部缓冲器A的地址”。
在该情况下,将对读取请求所示出的地址加上地址长度而得到的值储存至“内部缓冲器A的地址”。
即,在从请求要求源101发出图1的0000h地址的读取请求的情况下,将对0000h地址加上4字节而得到的“0004h地址”储存至“内部缓冲器A的地址”。
前次值保存部104是对从存储器105接收的前一次的读取数据、或者内部缓冲器A109的数据进行保存的寄存器。
数据选择部108选择从存储器105接收的读取数据以及内部缓冲器A109的数据中的某一个,将选择出的数据输出至数据排列部103。
数据排列部103从由数据选择部108选择的数据和前次值保存部104的数据中获取要求有效载荷数据和对应ECC,对获取的要求有效载荷数据和对应ECC进行排列,以使得能够进行ECC订正。
此外,将数据排列部103、前次值保存部104、以及数据选择部108所组成的部分称为数据获取部111。
ECC订正部102从数据排列部103输入排列后的要求有效载荷数据和对应ECC,使用对应ECC进行要求有效载荷数据的ECC订正,将ECC订正后的要求有效载荷数据输出至请求要求源101。
下面,使用图1~图5,对本实施方式所涉及的存储器控制装置100的动作例进行说明。
下面,说明从图1的0000h地址读取4字节(D0~D3),然后从0004h地址读取4字节(D4~D7)的情况。
首先,存储器地址变换部106从请求要求源101受理从0000h地址读取4字节的读取请求(S201)。
然后,命中判定部113对受理的读取请求是否命中于内部缓冲器A109所存储的数据进行判定(S301)。
具体地说,命中判定部113根据内部缓冲器信息储存部112的“内部缓冲器A的地址”和“距离信息A”计算缓存地址,并进行判定。
此外,在该时刻,在内部缓冲器A109中没有存储数据,因此,S301的判定结果是No。
然后,存储器地址变换部106对包含4字节的数据(D0~D3)和与之对应的ECC(ECC0)的区域(读出候补地址)进行计算,生成指示从计算出的区域进行读取的读取命令,并将生成的读取命令输出至存储器105(S202)。
参照图2,上述数据横跨0000h地址和0004h地址而配置,因此,存储器地址变换部106生成指示从0000h地址读取8字节的读取命令(全区域读取命令)。
另外,存储器地址变换部106将生成的读取命令输出至存储器105,并且,将读取命令和来自请求要求源101的读取请求输出至内部缓冲器管理部107以及数据选择部108。
存储器105返送0000h地址的数据(D0~D3),在存储器控制装置100中,数据选择部108输入0000h地址的数据(S203)。
数据选择部108向数据排列部103和内部缓冲器管理部107就读取数据的输入进行通知。
如果内部缓冲器管理部107从数据选择部108接收到通知,则判断输入的读取数据是否是末尾数据(S400)。
0000h地址的数据不是末尾数据,因此,S401的判定结果是No。
内部缓冲器管理部107从存储器地址变换部106输入有读取命令和读取请求,另外,掌握了图1的数据配置以及图2的数据配置,因此,能够判定为最初输入的读取数据(0000h地址的数据)不是末尾数据。
此外,由于输入的0000h地址的数据不是末尾数据,因此,输入的读取数据不保存至内部缓冲器A109。
然后,数据排列部103判断是否能够进行数据的排列(S305)。
即,数据排列部103判断通过来自存储器105的数据或者内部缓冲器A109的数据,和前次值保存部104的数据,能否得到请求要求源101所要求的要求有效载荷数据和对应ECC。
在该时刻,从存储器105输入了0000h地址的数据,但在前次值保存部104中并没有存储数据。
仅通过0000h地址的数据无法得到要求有效载荷数据和对应ECC,因此,数据排列部103等待0004h地址的数据的输入(S305为NO)。
此时,从数据选择部108,将读取数据(0000h地址)作为前次值存储至前次值保存部104。
此外,数据排列部103从存储器地址变换部106输入有读取命令和读取请求,另外,掌握了图1的数据配置以及图2的数据配置,因此,能够判断能否进行数据的排列。
然后,存储器105返送0004h地址的数据(ECC0~D6),在存储器控制装置100中,数据选择部108输入0004h地址的数据(S203)。
数据选择部108向数据排列部103和内部缓冲器管理部107就读取数据的输入进行通知。
如果内部缓冲器管理部107从数据选择部108接收到通知,则判断输入的读取数据是否是末尾数据(S400)。
0004h地址的数据是与读取命令相对应而从存储器105输入的最后的数据,相当于末尾数据(S400为YES)。
然后,内部缓冲器管理部107判断在输入的0004h地址的数据中是否包含除了要求有效载荷数据以及对应ECC以外的后续的有效载荷数据(S401)。
由请求要求源101所要求的要求有效载荷数据是D0~D3,另外,对应ECC是ECC0。
在0004h地址的数据中包含有后续的有效载荷数据即D4~D6。
因此,S401的判定结果是YES。
如上所述,内部缓冲器管理部107从存储器地址变换部106输入有读取请求,另外,掌握了图1的数据配置以及图2的数据配置,因此,能够判断出0004h地址的D4~D6既不是要求有效载荷数据,也不是对应ECC,而是后续的有效载荷数据。
然后,内部缓冲器管理部107将“0000h”记述至“内部缓冲器信息储存部112”的“内部缓冲器A的地址”,将4字节读取的“4”记述至“距离信息A”,将0004h地址的数据(ECC0~D6)存储至内部缓冲器A109(S402)。
然后,数据排列部103判断是否能够进行数据的排列(S305)。
即,数据排列部103判断通过来自存储器105的数据或者内部缓冲器A109的数据,和前次值保存部104的数据,能否得到请求要求源101所要求的要求有效载荷数据和对应ECC。
在该时刻,从存储器105输入0004h地址的数据,0000h地址的数据作为前次值存储在前次值保存部104中。
通过从存储器105输入的数据和前次值保存部104的数据得到了要求有效载荷数据和对应ECC,因此,S350的判定结果是Yes。
数据排列部103从前次值保存部104输入0000h地址的数据(D0~D3),另外,从数据选择部108获取0004h地址的数据(ECC0~D6),提取要求有效载荷数据(D0~D3)和对应ECC(ECC0),进行提取出的数据的排列(S205)。
然后,ECC订正部102从数据排列部103获取排列后的数据(D0~D3和ECC0),在使用ECC0对要求有效载荷数据D0~D3进行ECC订正之后,将要求有效载荷数据(D0~D3)返送至请求要求源101(S206)。
通过以上流程,所要求的有效载荷数据的返送全部完成,因此,结束处理(S207)。
下面,假设从请求要求源101受理从0004h地址读取4字节的读取请求的情况。
在该情况下,在受理读取请求(S201)之后,命中判定部113判定读取请求所要求的要求有效载荷数据是否命中于内部缓冲器A109所存储的数据(S301)。
即,命中判定部113判定在S201中受理的读取请求是否要求读取与内部缓冲器信息储存部112的“内部缓冲器A的地址”所记述的地址相连续的地址处的数据。
在本例的情况下,在“内部缓冲器A的地址”中记述有“0000h地址”,在“距离信息A”中记述有“4”,因此,对“0000h地址”加上4字节而得到“0004h”,与读取请求的要求一致,因此,是命中判定,S301的判定结果是Yes。
存储器地址变换部106计算包含4字节的数据(D4~D7)和与之相对应的ECC(ECC1)在内的区域(读出候补地址)。
参照图2,上述数据横跨0004h地址和0008h地址而配置,因此,如果是通常情况,则存储器地址变换部106生成指示从0004h地址读取8字节的读取命令。
但是,0004h地址的数据利用内部缓冲器A109的数据,因此,存储器地址变换部106生成指示从0008h读取4字节的读取命令(部分读取命令),并将生成的读取命令输出至存储器105(S302)。
另外,存储器地址变换部106将生成的读取命令输出至存储器105,并且,将读取命令和来自请求要求源101的读取请求输出至内部缓冲器管理部107以及数据选择部108。
0004h地址的数据已经存储在内部缓冲器A109,因此,内部缓冲器管理部107将内部缓冲器A109的数据经由数据选择部108发送至数据排列部103(S303)。
数据排列部103判断是否能够进行数据的排列(S305)。
即,数据排列部103判断通过来自存储器105的数据或者内部缓冲器A109的数据,和前次值保存部104的数据,能否得到请求要求源101所要求的要求有效载荷数据和对应ECC。
在该时刻,在内部缓冲器A109中存在0004h地址的数据,在前次值保存部104中也存在0004h地址的数据。
仅通过0004h地址的数据无法得到要求有效载荷数据和对应ECC,因此,数据排列部103等待0008h地址的数据的输入(S305为NO)。
此时,从数据选择部108将内部缓冲器A109的数据(0004h地址)作为前次值存储至前次值保存部104。
下面,存储器105返送0008h地址的数据(D7~D9),在存储器控制装置100中,数据选择部108输入0008h地址的数据(S203)。
数据选择部108向数据排列部103和内部缓冲器管理部107就读取数据的输入进行通知。
如果内部缓冲器管理部107从数据选择部108接收到通知,则判断输入的读取数据是否是末尾数据(S400)。
0008h地址的数据是与读取命令相对应而从存储器105输入的最后的数据,相当于末尾数据(S400为YES)。
然后,内部缓冲器管理部107判断在输入的0008h地址的数据中是否包含除了要求有效载荷数据以及对应ECC以外的后续的有效载荷数据(S401)。
请求要求源101所要求的要求有效载荷数据是D4~D7,另外,对应ECC是ECC1。
在0008h地址的数据中包含有后续的有效载荷数据即D8~D9。
因此,S401的判定结果是YES。
然后,内部缓冲器管理部107将“0004h”记述至内部缓冲器信息储存部112的“内部缓冲器A的地址”,将4字节读取的“4”记述至“距离信息A”,将0008h地址的数据(D7~D9)存储至内部缓冲器A109(S402)。
然后,数据排列部103判断是否能够进行数据的排列(S305)。
即,数据排列部103判断通过来自存储器105的数据或者内部缓冲器A109的数据,和前次值保存部104的数据,能否得到请求要求源101所要求的要求有效载荷数据和对应ECC。
在该时刻,从存储器105输入0008h地址的数据,0004h地址的数据作为前次值存储于前次值保存部104。
通过从存储器105输入的数据和前次值保存部104的数据得到了要求有效载荷数据和对应ECC,因此,S305的判定结果是Yes。
数据排列部103从前次值保存部104输入0004h地址的数据(ECC0~D6),另外,从数据选择部108获取0008h地址的数据(D7~D9),提取要求有效载荷数据(D4~D7)和对应ECC(ECC1),并对提取的数据进行排列(S205)。
然后,ECC订正部102从数据排列部103获取排列后的数据(D4~D7和ECC1),在使用ECC1对要求有效载荷数据D4~D7进行ECC订正之后,将要求有效载荷数据D4~D7返送至请求要求源101(S206)。
通过以上流程,所要求的有效载荷数据的返送全部完成,因此,结束处理(S207)。
图5具体地说明上面的存储器控制装置100的动作。
如果从请求要求源101发出从0000h地址(图1)读取4字节的读取请求(D0~D3),则从存储器105的图2的0000h地址读出第1数据A(D0~D3)。
第1数据A(D0~D3)不是末尾数据,因此,不保存至内部缓冲器A109,而是作为第1数据B(D0~D3)保存至前次值保存部104。
然后,从存储器105的图2的0004h地址读出第2数据A(ECC0~D6)。
第2数据A(ECC0~D6)是末尾数据,因此,作为第2数据E(ECC0~D6)保存至内部缓冲器A109。
数据排列部103根据来自存储器105的第2数据A(ECC0~D6)和前次值保存部104的第1数据B(D0~D3)进行数据排列,生成第1数据C(D0~ECC0)。
然后,ECC订正部102进行第1数据C(D0~ECC0)的ECC订正,将ECC订正后的第1数据D(D0~D3)输出至请求要求源101。
另外,将第2数据A(ECC0~D6)作为第2数据B(ECC0~D6)保存至前次值保存部104。
然后,当从请求要求源101发出从0004h地址(图1)读取4字节的读取请求(D4~D7)时,在内部缓冲器A109存在有第2数据E(ECC0~D6),将第2数据B(ECC0~D6)作为前次值保存至前次值保存部104。
对于内部缓冲器A109的第2数据E(ECC0~D6)和前次值保存部104的第2数据B(ECC0~D6),无法进行数据排列,因此,将第2数据E(ECC0~D6)作为前次值保存至前次值保存部104,并且,从存储器105的图2的0008h地址读出第4数据A(D7~D9)。
第4数据A(D7~D9)是末尾数据,因此,作为第4数据E(D7~D9)保存至内部缓冲器A109。
数据排列部103根据来自存储器105的第4数据A(D7~D9)和前次值保存部104的第2数据E(ECC0~D6)进行数据排列,生成第2数据C(D4~ECC1)。
然后,ECC订正部102进行第2数据C(D4~ECC1)的ECC订正,将ECC订正后的第2数据D(D4~D7)输出至请求要求源101。
另外,将第4数据A(D7~D9)作为第4数据B(D7~D9)保存至前次值保存部104。
若非是本实施方式这样,则当从请求要求源101发出从0004h地址读取4字节的读取请求时,如第3数据A(ECC0~D6)这样,会从存储器105重复读出ECC0~D6的数据。
与其相对,在本实施方式中,能够利用内部缓冲器A109内的第2数据E(ECC0~D6),因此,无需从存储器105进行重复的读出。
上面说明了仅包含内部缓冲器A109的存储器控制装置100的动作例。
在这里,说明除了内部缓冲器A109以外还包含内部缓冲器B1090的存储器控制装置100的动作例。
图6表示包含内部缓冲器A109和内部缓冲器B1090的存储器控制装置100的动作例。
在图6中,表示下述情况的存储器控制装置100的动作例,即,从请求要求源101发出从0000h地址(图1)读取4字节的读取请求(D0~D3),然后,发出从0014h地址(图1)读取4字节的读取请求(D14~D17),随后,发出从0004h地址读取4字节的读取请求(D4~D7)。
此外,假设在第1读取请求(0000h地址的读取请求)时,与早于第1读取请求的读取请求相对应而读出的ECC4~D16的数据(图2的0018h地址)已作为第3数据E保存于内部缓冲器B1090。
另一方面,假设在第1读取请求时,在内部缓冲器A109中没有保存数据。
如果从请求要求源101发出从0000h地址(图1)读取4字节的读取请求(D0~D3),则从存储器105的图2的0000h地址读出第1数据A(D0~D3)。
第1数据A(D0~D3)不是末尾数据,因此,不保存至内部缓冲器A109,而是作为第1数据B(D0~D3)保存至前次值保存部104。
然后,从存储器105读出第2数据A(ECC0~D6)。
第2数据A(ECC0~D6)是末尾数据,因此,作为第2数据E(ECC0~D6)保存至内部缓冲器A109。
数据排列部103根据来自存储器105的第2数据A(ECC0~D6)和前次值保存部104的第1数据B(D0~D3)进行数据排列,生成第1数据C(D0~ECC0)。
然后,ECC订正部102进行第1数据C(D0~ECC0)的ECC订正,将ECC订正后的第1数据D(D0~D3)输出至请求要求源101。
另外,第2数据A(ECC0~D6)作为第2数据B(ECC0~D6)而保存至前次值保存部104。
然后,当从请求要求源101发出从0014h地址(图1)读取4字节的读取请求(D14~D17)时,在内部缓冲器B1090中存在第3数据E(ECC4~D16),第2数据B(ECC0~D6)作为前次值保存于前次值保存部104。
对于内部缓冲器B1090的第3数据E(ECC4~D16)和前次值保存部104的第2数据B(ECC0~D6),无法进行数据排列,因此,将第3数据E(ECC4~D16)作为第3数据B(ECC4~D16)(前次值)保存至前次值保存部104,并且,从存储器105的图2的001Ch地址读出第4数据A(D17~D19)。
第4数据A(D17~D19)是末尾数据,因此,作为第4数据E(D17~D19)保存至内部缓冲器A109。
数据排列部103根据来自存储器105的第4数据A(D17~D19)和前次值保存部104的第3数据B(ECC4~D16)进行数据排列,生成第2数据C(D14~ECC5)。
然后,ECC订正部102进行第2数据C(D14~ECC5)的ECC订正,将ECC订正后的第2数据D(D14~D17)输出至请求要求源101。
另外,第4数据A(D17~D19)作为第4数据B(D17~D19)保存至前次值保存部104。
然后,当从请求要求源101发出从0004h地址(图1)读取4字节的读取请求(D4~D7)时,在内部缓冲器A109中存在第2数据E(ECC0~D6),第4数据B(D17~D19)作为前次值保存在前次值保存部104。
对于内部缓冲器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)。
第6数据A(D7~D9)是末尾数据,因此,作为第6数据E(D7~D9)保存至内部缓冲器A109。
数据排列部103根据来自存储器105的第6数据A(D7~D9)和前次值保存部104的第5数据B(ECC0~D6)进行数据排列,生成第3数据C(D4~ECC1)。
然后,ECC订正部102进行第3数据C(D4~ECC1)的ECC订正,将ECC订正后的第3数据D(D4~D7)输出至请求要求源101。
另外,第6数据A(D7~D9)作为第6数据B(D7~D9)保存至前次值保存部104。
此外,省略第6数据B(D7~D9)的图示。
在上面的内容中,列举了针对从0000h地址读取4字节、从0004h地址读取4字节这种每次4字节的读取请求,将有效载荷数据返送至请求要求源101的例子。
本实施方式的存储器控制装置100还能够应对每次整数倍于4字节的读取请求。
例如,还能够应对从0000h地址读取8字节、从0008h地址读取8字节这种每次8字节的读取请求。
另外,在本实施方式中,对使用内部缓冲器A109和内部缓冲器B1090这两个内部缓冲器的例子进行了说明,但是,对于使用大于或等于3个内部缓冲器的情况也能够按照本实施方式所说明的步骤进行处理。
在本实施方式中,说明了具有下述单元的存储器控制装置。
(a)将来自请求要求源的请求变换为存储器的请求并进行数据的桥接传输的单元
(b)对数据进行ECC错误订正的单元
(c)将来自采用了垂直ECC的存储器的接收数据再配置为能够进行ECC错误订正的数据(分离为数据和与其对应的ECC)的单元
(d)将来自请求要求源的地址和长度变换为针对采用了垂直ECC的存储器的地址和长度的单元
(e)用于保存从存储器接收到的前一次数据的单元
(f)对最后接收的、包含下一个地址处的有效载荷数据的读取数据进行保存的单元
(g)为了针对是下一个地址这一情况进行判定而对保存的有效载荷数据的地址进行储存的单元
(h)为了针对是下一个地址这一情况进行判定而保存距离信息的单元
(i)判定即将向存储器发出的读取命令是否可以再次利用已保存的有效载荷数据的单元
(j)选择内部缓冲器的数据和从存储器接收的读取数据中的某一方的单元。
实施方式2
在实施方式1中,例如,来自请求要求源101的从0004h地址(图1)读取4字节的读取请求是在先行的从0000h地址(图1)读取4字节的处理结束之后(图4的S207为YES)进行的,因此,进行的是非流水线型的动作。
在流水线型的动作中,在利用内部缓冲器所保存的数据的定时,其他传输处理的读取数据可能从存储器返送,导致在内部缓冲器的数据和来自存储器的数据之间发生冲突,在发生数据冲突的情况下,会导致某一方的数据消失。
在本实施方式中,在通过流水线型的动作再次利用内部缓冲器的数据的情况下,使来自存储器的读取数据的接收定时延迟,以使得从存储器接收的读取数据向数据获取部111的输出定时、和来自内部缓冲器的数据向数据获取部111的输出定时不发生重叠。
如上所述,本实施方式的存储器控制装置100支持流水线型的存储器。
并且,本实施方式的存储器控制装置100能够充分发挥流水线型存储器的特征,能够有助于存储器的吞吐量的提高。
图7表示本实施方式所涉及的存储器控制装置100的结构例。
与图3的结构相比,在图7中,追加有命令发出间隔控制部114和FIFO缓冲器110。
命令发出间隔控制部114在利用内部缓冲器A109的数据的情况下,进行以利用内部缓冲器A109的数据所需的时间使针对存储器105的读取命令的输出延迟的控制。
输出读取命令后,在某个固定的间隔之后(读取延迟),从存储器105返送回来读取数据,因此,能够通过利用命令发出间隔控制部114对发出读取命令的间隔进行控制,从而空出用于利用内部缓冲器A的数据的时间。
此外,命令发出间隔控制部114使读取命令的输出延迟的延迟时间例如是流水线中的1个间隙(slot)量的时间。
在本实施方式中,命令发出间隔控制部114也相当于命令输出部的例子。
在本实施方式中,存储器地址变换部106将针对存储器105的读取命令存储至FIFO缓冲器110。
然后,存储器地址变换部106将内部缓冲器数据输入命令(相当于缓存数据输入命令)和存储器数据输入命令存储至FIFO缓冲器110,其中,该内部缓冲器数据输入命令用于向数据排列部103做出指示以输入内部缓冲器A109所保存的数据,该存储器数据输入命令用于向数据排列部103做出指示以输入来自存储器105的数据。
FIFO缓冲器110储存读取命令、内部缓冲器数据输入命令、以及存储器数据输入命令。
本实施方式所涉及的存储器控制装置100对流水线型的存储器进行控制。
即,本实施方式所涉及的存储器控制装置100,在将与从请求要求源101受理的读取请求相对应的读取数据向请求要求源101的返送全部结束之前,从请求要求源101受理下一个读取请求,对存储器105发出读取命令。
因此,在FIFO缓冲器110中储存发出的读取命令。
另外,在本实施方式中,内部缓冲器管理部107在从存储器105输入读取数据之前,将内部缓冲器信息储存部112的“内部缓冲器A的地址”的值和“距离信息A”的值更新。
因此,命中判定部113不仅判定读出对象地址处的数据是否已经缓存至内部缓冲器A109,还根据“内部缓冲器A的地址”的值和“距离信息A”的值,判定读出对象地址处的数据是否预定要缓存至内部缓冲器A109。
此外,图7所示的其他要素与图3所示的相同,因此,省略说明。
下面,参照图8以及图9对本实施方式所涉及的存储器控制装置100的动作例进行说明。
S201、S301、S202与实施方式1所说明的相同,因此,省略说明。
在本实施方式中,在S302中,存储器地址变换部106生成指示对没有保存至内部缓冲器A109的数据进行读取的读取命令(部分读取命令),在S506中,命令发出间隔控制部114空出与用于利用内部缓冲器A109的数据的时间(用于避免数据冲突的时间)相对应的间隔而将读取命令(部分读取命令)输出至存储器105。
命令发出间隔控制部114在从存储器地址变换部106生成读取命令之后将读取命令输出的通常的定时开始经过规定的延迟时间之后,将读取命令输出至存储器105。
然后,内部缓冲器管理部107判断在末尾数据中是否包含后续的有效载荷数据(S505)。
即,内部缓冲器管理部107判断在与S202或者S302中生成的读取命令相对应而从存储器105读出的数据中的末尾数据中是否包含后续的有效载荷数据。
该处理是与图4的S401相同的处理。
内部缓冲器管理部107与实施方式1相同地,从存储器地址变换部106输入有来自请求要求源101的读取请求以及针对存储器105的读取命令,另外,由于掌握了图1的数据配置以及图2的数据配置,因此,如S505所示,能够判断在末尾数据中是否包含后续的有效载荷数据。
在末尾数据中包含后续的有效载荷数据的情况下(S505为YES),内部缓冲器管理部107将内部缓冲器信息储存部112的“内部缓冲器A的地址”的值和“距离信息A”的值更新(S507)。
但是,在该时刻,内部缓冲器A109的数据没有更新。
在本实施方式中,为了进行支持流水线型存储器的动作,在从存储器105输入读取数据之前,将内部缓冲器信息储存部112的“内部缓冲器A的地址”以及“距离信息A”的值更新。
然后,存储器地址变换部106将命令存储至FIFO缓冲器110(S501)。
具体地说,存储器地址变换部106在S202中生成了全区域读取命令的情况下,生成向数据排列部103做出指示以输入来自存储器105的数据的存储器数据输入命令。
然后,存储器地址变换部106将全区域读取命令、读取请求、以及存储器数据输入命令存储至FIFO缓冲器110。
另外,存储器地址变换部106在S302中生成了部分读取命令的情况下,生成向数据排列部103做出指示以输入内部缓冲器A109所保存的数据的内部缓冲器数据输入命令和存储器数据输入命令。
然后,存储器地址变换部106将部分读取命令、读取请求、内部缓冲器数据输入命令、以及存储器数据输入命令存储至FIFO缓冲器110。
此外,在完成进行了ECC订正的要求有效载荷数据的返送之前,在从请求要求源101接受了读取请求的情况下,将命令连续地存储至FIFO缓冲器110。
与图8的处理并行地,数据排列部103定期地确认在FIFO缓冲器110中是否累积有命令(S502),如果在FIFO缓冲器110中存在命令(S502为YES),则从FIFO缓冲器110中取出命令(S503)。
如果取出的命令是内部缓冲器数据输入命令,则S504为YES,进行S303的处理。
如果取出的命令是存储器数据输入命令,则S504为NO,进行S203的处理。
此外,由于作图上的原因,在图9中,没有示出取出的命令是读取命令以及读取请求的情况的处理,但在取出读取命令以及读取请求的情况下,数据排列部103将取出的读取命令以及读取请求保存至规定的储存区域,并且,再次从FIFO缓冲器110取出命令。
在S203中,数据选择部108从存储器105输入读取数据,并向内部缓冲器管理部107就读取数据的输入进行通知。
内部缓冲器管理部107判断输入的读取数据是否是末尾数据(S400),在读取数据是末尾数据的情况下,判断在末尾数据中是否包含后续的有效载荷数据(S401)。
在末尾数据中包含后续的有效载荷数据的情况下,内部缓冲器管理部107更新内部缓冲器A109的数据(S402)。
在S303中,内部缓冲器管理部107经由数据选择部108将内部缓冲器A109的数据发送至数据排列部103。
数据排列部103判断能否进行数据的排列(S305),在能够进行数据的排列的情况下,数据排列部103提取要求有效载荷数据和对应ECC,进行提取的数据的排列(S205)。
并且,ECC订正部102从数据排列部103获取排列后的数据,在使用ECC数据对要求有效载荷数据进行ECC订正之后,将要求有效载荷数据返送至请求要求源101(S206)。
在将要求有效载荷数据全部返送之后,结束处理(S207)。
此外,S203、S400、S401、S402、S305、S205、S206、S207的动作与图4所说明的相同。
下面,使用图8、图9以及图12,对本实施方式所涉及的存储器控制装置100的动作进行具体说明。
在这里,假设出下述的例子,说明存储器控制装置100的动作,即,作为第1读取请求,从请求要求源101受理从0000h地址(图1)读取4字节的读取请求,在与第1读取请求相对应而将要求有效载荷数据返送之前,作为第2读取请求,从请求要求源101受理从0004h地址(图1)读取4字节的读取请求。
此外,图12的T1~T11表示流水线处理中的各间隙。
存储器时钟表示请求要求源101、存储器控制装置100、以及存储器105的动作时钟。
另外,图12的命令(C1)相当于图7的C1,命令(C2)相当于图7的C2,命令(C3)相当于图7的C3。
另外,图12的读取数据(Out)表示从ECC订正部102向请求要求源101的要求有效载荷数据的输出。
另外,图12的读取数据(In)表示来自存储器105的读取数据的输入。
另外,sRead-0000表示来自请求要求源101的读取请求,表示从0000h地址(图1)读取4字节的读取请求。
另外,sRead-0004表示来自请求要求源101的读取请求,表示从0004h地址(图1)读取4字节的读取请求。
dRead-0000表示针对存储器105的读取命令,表示从0000h地址(图2)读取4字节的读取命令。
dRead-0004表示针对存储器105的读取命令,表示从0004h地址(图2)读取4字节的读取命令。
dRead-0008表示针对存储器105的读取命令,表示从0008h地址(图2)读取4字节的读取命令。
位于读取数据(out)以外栏的data-0000表示从存储器105读取的0000h地址(图2)的数据。
位于读取数据(out)以外栏的data-0004表示从存储器105读取的0004h地址(图2)的数据。
位于读取数据(out)栏以外的data-0008表示从存储器105读取的0008h地址(图2)的数据。
位于读取数据(out)栏的data-0000表示输出至请求要求源101的0000h地址(图1)的要求有效载荷数据。
位于读取数据(out)栏的data-0004表示输出至请求要求源101的0004h地址(图1)的要求有效载荷数据。
首先,存储器地址变换部106从请求要求源101受理从0000h地址(图1)读取4字节的读取请求(图12的sRead-0000)(S201)。
然后,命中判定部113判定受理的读取请求是否命中于内部缓冲器A109所存储的数据(S301)。
另外,在该时刻,在内部缓冲器A109中没有存储数据,因此,S301的判定结果是No。
然后,存储器地址变换部106生成指示从0000h地址(图2)和0004h地址(图2)进行读取的读取命令(图12的dRead-0000和dRead-0004),并将生成的读取命令输出至存储器105(S202)。
然后,内部缓冲器管理部107确认在末尾数据中是否包含后续的有效载荷数据(S505),在该情况下,由于在来自0004h地址(图2)的读取数据中包含后续的有效载荷数据,因此,内部缓冲器管理部107将内部缓冲器信息储存部112的“内部缓冲器A的地址”、“距离信息A”的值更新(S507)。
其结果,如图12的“内部缓冲器A的地址”栏所示,在“内部缓冲器A的地址”中记述“0000h地址”,在“距离信息A”中记述“4”。
另外,存储器地址变换部106将读取命令(图12的dRead-0000和dRead-0004)、读取请求(图12的sRead-0004)、以及存储器数据输入命令存储至FIFO缓冲器110(S501)。
在这里,设为存储器地址变换部106从请求要求源101受理了从0004h地址(图1)读取4字节的读取请求(图12的sRead-0004)(S201)。
如上所述,在S507的处理中,内部缓冲器信息储存部112的“内部缓冲器A的地址”中记述有“0000h地址”,“距离信息A”中记述有“4”,0004h地址(图2)的数据预定要缓存至内部缓冲器A109,因此,S301的判定是YES。
因此,存储器地址变换部106生成指示从0008h地址(图2)进行读取的读取命令(图12的dRead-0008)(S302)。
而且,命令发出间隔控制部114空出与用于利用内部缓冲器A109的数据的时间(用于避免数据的冲突的时间)相对应的间隔而将读取命令(图12的dRead-0008)输出至存储器105。
相对于来自请求要求源101的读取请求(图12的sRead-0004)的输入定时,读取命令(图12的dRead-0008)能够在图12的标号1201的定时输出至存储器105。
但是,在本实施方式中,相对于能够输出读取命令的定时,命令发出间隔控制部114使读取命令的输出定时延迟1个间隙的量,并在标号1202的定时将读取命令(图12的dRead-0008)输出至存储器105。
然后,内部缓冲器管理部107确认在末尾数据中是否包含后续的有效载荷数据(S505)。
在该情况下,在来自0008h地址(图2)的读取数据中包含后续的有效载荷数据,因此,内部缓冲器管理部107将内部缓冲器信息储存部112的“内部缓冲器A的地址”、“距离信息A”的值更新(S507)。
其结果,如图12的“内部缓冲器A的地址”栏所示,在“内部缓冲器A的地址”中记述“0004h地址”,在“距离信息A”中记述“4”。
另外,存储器地址变换部106将读取命令(图12的dRead-0008)、读取请求(图12的sRead-0004)、存储器数据输入命令、以及内部缓冲器数据输入命令存储至FIFO缓冲器110(S501)。
与上述的动作并行地,数据排列部103从FIFO缓冲器110中取出最前端的读取命令(图12的dRead-0000和dRead-0004)和存储器数据输入命令(S502、S503)。
在该情况下,没有利用内部缓冲器A109,因此,S504为NO,如图12所示,数据选择部108从存储器105输入0000h地址(图2)的数据(图12的data-0000)(S203)。
并且,输入的数据(图12的data-0000)不是末尾数据(S400为NO),因此,没有存储至内部缓冲器A109。
另外,仅通过输入的数据(图12的data-0000)无法进行数据的排列(S305为NO),因此,等待来自存储器105的下一个数据的输入。
另外,此时,0000h地址(图2)的数据(图12的data-0000)保存至前次值保存部104。
然后,数据选择部108从存储器105输入0004h地址(图2)的数据(图12的data-0004)(S203)。
由于输入的数据(图12的data-0004)是末尾数据(S400为YES),另外,包含后续的有效载荷数据(S401为YES),因此,输入的数据存储至内部缓冲器A109。
另外,能够通过输入的数据(图12的data-0004)和前次值保存部104的数据(图12的data-0000)进行数据的排列(S305为YES),因此,数据排列部103对数据进行排列,ECC订正部102进行ECC订正,将ECC订正后的要求有效载荷数据(图12的data-0000)输出至请求要求源101(S205、S206)。
另外,0004h地址(图2)的数据(图12的data-0004)保存至前次值保存部104。
另外,数据排列部103从FIFO缓冲器110中取出下一个读取命令(图12的dRead-0008)、内部缓冲器数据输入命令、以及存储器数据输入命令(S502、S503)。
在该情况下,由于利用内部缓冲器A109,因此,S504为YES,内部缓冲器A109内的数据(图12的data-0004)输出至数据排列部103(S303)。
无法通过来自内部缓冲器A109的数据(图12的data-0004)和前次值保存部104的数据(图12的data-0004)进行数据的排列(S305为NO),因此,等待来自存储器105的下一个数据的输入。
另外,此时,来自内部缓冲器A109的数据(图12的data-0004)保存至前次值保存部104。
然后,数据选择部108从存储器105输入0008h地址(图2)的数据(图12的data-0008)(S203)。
此外,如果在标号1201的定时从命令发出间隔控制部114向存储器105输出dRead-0008,则在标号1203的定时从存储器105输入data-0008,如上所述,由于在标号1202的定时输出dRead-0008,因此,在标号1204的定时从存储器105输入dRead-0008。
由于输入的数据(图12的data-0008)是末尾数据(S400为YES),另外,包含后续的有效载荷数据(S401为YES),因此,输入的数据存储至内部缓冲器A109。
另外,能够通过输入的数据(图12的data-0008)和前次值保存部104的数据(图12的data-0004)进行数据的排列(S305为YES),因此,数据排列部103对数据进行排列,ECC订正部102进行ECC订正,并将ECC订正后的要求有效载荷数据(图12的data-0004)输出至请求要求源101(S205、S206)。
另外,0008h地址(图2)的数据(图12的data-0004)保存至前次值保存部104。
在图12的例子中,如果不利用命令发出间隔控制部114对dRead-0008的输出定时进行调整,而在标号1201的定时输出dRead-0008,则在标号1203的定时从存储器105输入data-0008。
在该情况下,data-0008在标号1206的定时输入至前次值保存部104,如标号1205所示,会与内部缓冲器A109内的data-0004输入至前次值保存部104的定时发生冲突。
因此,data-0008和data-0004中的某一方会消失。
与其相对,在本实施方式中,命令发出间隔控制部114在标号1202的定时输出dRead-0008,因此,在标号1204的定时从存储器105输入data-0008。
并且,在标号1204的定时进行输入的情况下,data-0008输入至前次值保存部104的定时是标号1207的定时,不会发生数据的冲突。
下面,使用图8、图9、以及图13,对在内部缓冲器A109基础上还存在内部缓冲器B1090的存储器控制装置100的动作例进行说明。
在这里,假设出下述的例子,说明存储器控制装置100的动作,即,作为第1读取请求,从请求要求源101受理从0000h地址(图1)读取4字节的读取请求,作为第2读取请求,在与第1读取请求相对应而将要求有效载荷数据返送之前,从请求要求源101受理从0014h地址(图1)读取4字节的读取请求。
此外,如图13的“内部缓冲器B的地址”以及“内部缓冲器B”所示,假设通过在先的针对0010h地址(图1)的读取请求而在内部缓冲器B1090中存储有0018h地址(图2)的数据(图13的data-0018)。
此外,在图13中,为了表示data-0018持续保存在内部缓冲器B1090中,通过双重线表现data-0018。
首先,存储器地址变换部106从请求要求源101受理从0000h地址(图1)读取4字节的读取请求(图13的sRead-0000)(S201)。
然后,命中判定部113判定受理的读取请求是否命中于内部缓冲器A109或者内部缓冲器B1090所存储的数据(S301)。
此外,在该时刻,由于在内部缓冲器A109中没有存储数据,另外,内部缓冲器B1090的数据与读取请求所要求的地址不一致,因此,S301的判定结果是No。
然后,存储器地址变换部106生成指示从0000h地址(图2)和0004h地址(图2)进行读取的读取命令(图13的dRead-0000和dRead-0004),并将生成的读取命令输出至存储器105(S202)。
然后,内部缓冲器管理部107确认在末尾数据中是否包含后续的有效载荷数据(S505),在该情况下,由于在来自0004h地址(图2)的读取数据中包含后续的有效载荷数据,因此内部缓冲器管理部107将内部缓冲器信息储存部112的“内部缓冲器A的地址”、“距离信息A”的值更新(S507)。
其结果,如图13的“内部缓冲器A的地址”栏所示,在“内部缓冲器A的地址”中记述“0000h地址”,在“距离信息A”中记述“4”。
另外,存储器地址变换部106将读取命令(图13的dRead-0000和dRead-0004)、以及存储器数据输入命令存储至FIFO缓冲器110(S501)。
在这里,假设存储器地址变换部106从请求要求源101受理了从0014h地址(图1)读取4字节的读取请求(图13的sRead-0014)(S201)。
如上所述,在内部缓冲器B1090中,缓存有与0014h地址(图1)相对应的0018h地址(图2)的数据和001Ch地址(图2)的数据中的0018h地址(图2)的数据(图13的data-0018),因此,S301的判定是YES。
因此,存储器地址变换部106生成指示从001Ch地址(图2)进行读取的读取命令(图13的dRead-001C)(S302)。
然后,命令发出间隔控制部114空出与用于利用内部缓冲器B1090的数据的时间(用于避免数据的冲突的时间)相对应的间隔而将读取命令(图13的dRead-001C)输出至存储器105。
相对于来自请求要求源101的读取请求(图13的sRead-0014)的输入定时,将读取命令(图13的dRead-001C)在图13的标号1301的定时输出至存储器105。
但是,在本实施方式中,相对于能够输出读取命令的定时,命令发出间隔控制部114使读取命令的输出定时延迟1个间隙的量,并在标号1302的定时将读取命令(图13的dRead-001C)输出至存储器105。
然后,内部缓冲器管理部107确认在末尾数据中是否包含后续的有效载荷数据(S505),在该情况下,在来自001Ch地址(图2)的读取数据中包含后续的有效载荷数据,因此,内部缓冲器管理部107将内部缓冲器信息储存部112的“内部缓冲器B的地址”、“距离信息B”的值更新(S507)。
其结果,如图13的“内部缓冲器B的地址”栏所示,在“内部缓冲器B的地址”中记述“0014h地址”,在“距离信息B”中记述“4”。
另外,存储器地址变换部106将读取命令(图13的dRead-001C)、读取请求(图13的sRead-0014)、存储器数据输入命令、以及内部缓冲器数据输入命令存储至FIFO缓冲器110(S501)。
此外,在本例中,在内部缓冲器数据输入命令中,指示的是将内部缓冲器B1090的数据输入。
另一方,在利用内部缓冲器A109的数据的情况下,在内部缓冲器数据输入命令中,指示的是将内部缓冲器A109的数据输入。
与上述的动作并行地,数据排列部103从FIFO缓冲器110中取出最前端的读取命令(图13的dRead-0000和dRead-0004)和存储器数据输入命令(S502、S503)。
在该情况下,没有利用内部缓冲器A109,因此,S504是NO,如图13所示,数据选择部108从存储器105输入0000h地址(图2)的数据(图13的data-0000)(S203)。
并且,输入的数据(图13的data-0000)不是末尾数据(S400为NO),因此,没有存储至内部缓冲器A109。
另外,仅通过输入的数据(图13的data-0000)无法进行数据的排列(S305为NO),因此,等待来自存储器105的下一个数据的输入。
另外,此时,0000h地址(图2)的数据(图13的data-0000)保存至前次值保存部104。
然后,数据选择部108从存储器105输入0004h地址(图2)的数据(图13的data-0004)(S203)。
由于输入的数据(图13的data-0004)是末尾数据(S400为YES),另外,包含后续的有效载荷数据(S401为YES),因此,输入的数据存储至内部缓冲器A109。
另外,能够通过输入的数据(图13的data-0004)和前次值保存部104的数据(图13的data-0000)进行数据的排列(S305为YES),因此,数据排列部103对数据进行排列,ECC订正部102进行ECC订正,并将ECC订正后的要求有效载荷数据(图13的data-0000)输出至请求要求源101(S205、S206)。
另外,0004h地址(图2)的数据(图13的data-0004)保存至前次值保存部104。
另外,数据排列部103从FIFO缓冲器110中取出下一个读取命令(图13的dRead-001C)、内部缓冲器数据输入命令、以及存储器数据输入命令(S502、S503)。
在该情况下,由于利用内部缓冲器B1090,因此,S504为YES,内部缓冲器B1090内的数据(图13的data-0018)输出至数据排列部103(S303)。
对于来自内部缓冲器B1090的数据(图13的data-0018)和前次值保存部104的数据(图13的data-0004),无法进行数据的排列(S305为NO),因此,等待来自存储器105的下一个数据的输入。
另外,此时,来自内部缓冲器A109的数据(图13的data-0018)保存至前次值保存部104。
然后,数据选择部108从存储器105输入001Ch地址(图2)的数据(图13的data-001C)(S203)。
此外,如果在标号1301的定时从命令发出间隔控制部114向存储器105输出dRead-001C,则在标号1303的定时从存储器105输入data-001C,但如上所述,由于在标号1302的定时输出有dRead-001C,因此,在标号1304的定时从存储器105输入data-001C。
由于输入的数据(图13的data-001C)是末尾数据(S400为YES),另外,包含后续的有效载荷数据(S401为YES),因此,输入的数据存储至内部缓冲器B1090。
另外,能够通过输入的数据(图13的data-001C)和前次值保存部104的数据(图13的data-0018)进行数据的排列(S305为YES),因此,数据排列部103对数据进行排列,ECC订正部102进行ECC订正,并将ECC订正后的要求有效载荷数据(图13的data-0014)输出至请求要求源101(S205、S206)。
另外,001Ch地址(图2)的数据(图13的data-001C)保存至前次值保存部104。
此外,在上述的内容中,将1个地址的量的数据(4字节的数据)存储至内部缓冲器A109以及内部缓冲器B1090,但也可以将大于或等于2个地址的量的数据存储至内部缓冲器A109以及内部缓冲器B1090。
另外,在将来自请求要求源101的读取请求中作为对象的图1形式的地址变换成图2的形式的地址后,大于或等于3个的地址成为读出候补地址、并且大于或等于3个的读出候补地址中的前2个地址的数据已缓存在内部缓冲器A109或者内部缓冲器B1090的情况下,存储器地址变换部106生成指示对除了该2个地址以外的地址处的数据即第3个地址及其以后的地址处的数据进行读取的读取命令(部分读取命令)。
另外,在上述的内容中,命令发出间隔控制部114使由存储器地址变换部106生成的部分读取命令的输出定时延迟1个间隙的量而将该部分读取命令输出至存储器105。
对此,也可以通过存储器地址变换部106相对于通常的生成定时延迟1个间隙的量而生成部分读取命令,从而避免来自存储器105的读取数据和来自内部缓冲器A109的数据之间发生冲突。
另外,本实施方式的存储器控制装置100与实施方式1相同,也能够应对每次整数倍于4字节的读取请求。
另外,在使用大于或等于3个内部缓冲器的情况下,也能够按照本实施方式所说明的步骤进行处理。
上面,在本实施方式中,说明了用于支持流水线型存储器的存储器控制装置,该存储器控制装置具有下述单元:
(a)存储已对存储器发出的请求的单元
(b)对命令发出间隔进行控制并使下一个向存储器发出的命令的发出延迟的单元。
实施方式3
在实施方式2中,在利用内部缓冲器A109的数据的情况下,无条件地空出针对存储器105的读取命令的发出间隔,但是,在受理来自请求要求源101的读取请求的时刻已经空出大于或等于利用内部缓冲器A109的时间的情况下,即,在不会引起数据冲突的情况下,无需空出读取命令的发出间隔。
在本实施方式中,说明通过进行下述控制从而有效地发出读取命令的方式,所述控制为检测尚未空出用于利用内部缓冲器A109的时间这一情况,并仅在该情况下空出命令发出间隔。
图10表示本实施方式所涉及的存储器控制装置100的结构例。
与图7相比,在图10中追加有发出间隔判定部115。
发出间隔判定部115判定要向存储器105发出的部分读取命令和在该部分读取命令之前刚发出的读取命令(全区域读取命令、部分读取命令中的某一个)之间的发出间隔在当前是否已空出大于或等于一定量的时间。
具体地说,发出间隔判定部115判断从最后输出读取命令(全区域读取命令、部分读取命令中的某一个)开始的经过时间是否超过实施方式2中所说明的发出间隔(延迟时间)。
命令发出间隔控制部114在从最后输出读取命令开始的经过时间超过实施方式2中所说明的发出间隔(延迟时间)的情况下,不空出间隔就将部分读取命令输出至存储器105。
此外,发出间隔判定部115将最后输出读取命令的时刻作为最近一次读取的发出时刻进行保存,判定该最近一次读取的发出时刻与当前时刻的差是否超过实施方式2中所说明的发出间隔(延迟时间)。
在本实施方式中,发出间隔判定部115也相当于命令输出部的例子。
下面,参照图11以及图14,说明本实施方式所涉及的存储器控制装置100的动作。
此外,在下面,主要说明与实施方式2的不同点。
另外,在下面,假设出下述的例子,说明存储器控制装置100的动作,即,作为第1读取请求,从请求要求源101受理从0000h地址(图1)读取4字节的读取请求,作为第2读取请求,在与第1读取请求相对应而将要求有效载荷数据返送之前,受理从0004h地址(图1)读取4字节的读取请求。
首先,存储器地址变换部106输入从0000h地址(图1)读取4字节的读取请求(图14的sRead-0000),与实施方式2相同地生成指示从0000h地址(图2)读取8字节的全区域读取命令,命令发出间隔控制部114将该全区域读取命令输出至存储器105(S201、S301、S202)。
命令发出间隔控制部114在输出读取命令时,向发出间隔判定部115就读取命令的输出进行通知,在发出间隔判定部115中,在由命令发出间隔控制部114就读取命令的输出进行了通知的时刻将最近一次读取的发出时刻更新(S602)。
此后,进行与实施方式2相同的处理。
然后,存储器地址变换部106输入从0004h地址(图1)读取4字节的读取请求(图14的sRead-0004)(S201)。
在这里,能够利用内部缓冲器A109的数据,因此,判定为命中,S301为YES,存储器地址变换部106与实施方式2相同地生成部分读取命令(图14的dRead-0008)(S302)。
然后,发出间隔判定部115判断从最后输出读取命令(图14的dRead-0004)开始的经过时间是否超过延迟时间(在图14的例子中,是1个间隙量的时间)(S601)。
在图14的例子中,从最后输出读取命令开始的经过时间超过延迟时间(S601为YES),因此,命令发出间隔控制部114没有空出发出间隔(没有等待至经过了延迟时间)就将读取命令(图14的dRead-0008)输出至存储器105。
在实施方式2中,在图14的标号1402的定时,读取命令(dRead-0008)输出至存储器105,但在本实施方式中,读取命令(dRead-0008)在标号1401的定时输出至存储器105。
其结果,在标号1403的定时,从存储器105输入读取数据(data-0008)。
另一方面,在实施方式2的情况下,在标号1404的定时,输入读取数据(data-0008)。
另一方面,在从最后输出读取命令开始的经过时间没有超过延迟时间的情况下(S601为NO),与实施方式2相同地命令发出间隔控制部114在从能够向存储器105输出读取命令的定时开始经过了延迟时间之后,将读取命令(图14的dRead-0008)输出至存储器105(S506)。
此后的处理与实施方式2相同,因此省略说明。
此外,在上述内容中,在从最后输出读取命令开始的经过时间没有超过延迟时间的情况下,命令发出间隔控制部114在从能够进行读取命令的输出的定时开始经过了延迟时间之后,将读取命令输出至存储器105。
对此,在从最后输出读取命令开始的经过时间没有超过延迟时间的情况下,命令发出间隔控制部114也可以计算出从最后输出读取命令开始的经过时间与延迟时间的差值时间,在从能够进行读取命令的输出的定时开始经过差值时间之后,将读取命令输出至存储器105。
以上,在本实施方式中,说明了在再次利用内部缓冲器的数据的时间充足的情况下,没有使命令发出延迟的存储器控制装置,该存储器控制装置具有:
(a)判定与最近一次发出的读取命令之间的发出间隔是否比再次利用内部缓冲器的数据的时间长的单元
(b)保存最近一次发出的读取命令的定时的单元。
以上,说明了本发明的实施方式,但也可以将这些实施方式中的大于或等于2个实施方式组合而进行实施。
或者,也可以将这些实施方式中的1个实施方式局部地进行实施。
或者,也可以将这些实施方式中的大于或等于2个实施方式局部地组合而进行实施。
此外,本发明并不限定于这些实施方式,可以根据需要进行各种变更。
标号的说明
100存储器控制装置,101请求要求源,102ECC订正部,103数据排列部,104前次值保存部,105存储器,106存储器地址变换部,107内部缓冲器管理部,108数据选择部,109内部缓冲器A,110FIFO缓冲器,111数据获取部,112内部缓冲器信息储存部,113命中判定部,114命令发出间隔控制部,115发出间隔判定部,1090内部缓冲器B。
Claims (10)
1.一种存储器控制装置,其通过流水线方式对要求从存储器读出有效载荷数据的读取请求进行处理,在该存储器中,具有分别对呈既定的数据宽度的数据进行存储的多个地址,针对呈所述数据宽度的有效载荷数据设定错误订正数据,存在对应关系的错误订正数据和呈所述数据宽度的有效载荷数据横跨相邻的2个地址而存储,以地址为单位进行数据的读出,
该存储器控制装置的特征在于,具有:
缓存区域,其缓存从所述存储器读出的数据;
读取请求输入部,其用于将读取请求输入,该读取请求要求读出整数倍于所述数据宽度的量的有效载荷数据;
缓存判定部,其判定存储有要求有效载荷数据和对应错误订正数据的大于或等于2个地址即读出候补地址中的某地址处的数据是否已经缓存或者预定要缓存至所述缓存区域,其中,该要求有效载荷数据是由所述读取请求输入部输入的读取请求所要求的有效载荷数据,该对应错误订正数据是用于对所述要求有效载荷数据进行错误订正的错误订正数据;以及
命令输出部,其在由所述缓存判定部判定为大于或等于2个读出候补地址中的某地址处的数据已经缓存或者预定要缓存至所述缓存区域的情况下,将指示从除了缓存地址以外的地址读出数据的部分读取命令,在从能够向所述存储器输出所述部分读取命令的定时开始经过既定的延迟时间之后,输出至所述存储器,其中,该缓存地址是大于或等于2个读出候补地址中数据已经缓存或者预定要缓存至所述缓存区域的地址。
2.根据权利要求1所述的存储器控制装置,其特征在于,
在由所述缓存判定部判定为大于或等于2个读出候补地址中的最前面的地址处的数据和紧随在所述最前面的地址之后的大于或等于0个地址处的数据已经缓存或者预定要缓存至所述缓存区域的情况下,
所述命令输出部将指示对除了包含所述最前面的地址的缓存地址以外的地址处的数据进行读出的部分读取命令输出至所述存储器。
3.根据权利要求2所述的存储器控制装置,其特征在于,
所述存储器控制装置还具有:
FIFO缓冲器,其对命令进行累积;以及
数据获取部,其从所述FIFO缓冲器输入命令,根据输入的命令,获取所述要求有效载荷数据和所述对应错误订正数据,
所述命令输出部将所述部分读取命令输出至所述存储器,并且,将缓存数据输入命令和存储器数据输入命令存储至所述FIFO缓冲器,其中,该缓存数据输入命令指示所述数据获取部从所述缓存区域输入所述缓存地址处的数据,该存储器数据输入命令指示所述数据获取部从所述存储器输入除了所述缓存地址以外的地址处的数据,
所述数据获取部,
从所述FIFO缓冲器输入所述缓存数据输入命令和所述存储器数据输入命令,根据所述缓存数据输入命令,从所述缓存区域输入所述缓存地址处的数据,根据所述存储器数据输入命令,从所述存储器输入对应于所述部分读取命令而读出的除了所述缓存地址以外的地址处的数据,
根据从所述缓存区域输入的所述缓存地址处的数据、和从所述存储器输入的除了所述缓存地址以外的地址处的数据,获取所述要求有效载荷数据和所述对应错误订正数据。
4.根据权利要求3所述的存储器控制装置,其特征在于,
所述命令输出部通过在经过所述延迟时间之后将部分读取命令输出至所述存储器,从而使所述数据获取部中的从所述缓存区域实现的所述缓存地址处的数据的输入、和从所述存储器实现的除了所述缓存地址以外的地址处的数据的输入之间不发生冲突。
5.根据权利要求1所述的存储器控制装置,其特征在于,
在由所述缓存判定部判定为大于或等于2个读出候补地址中的所有地址处的数据既没有缓存至所述缓存区域、也没有预定要缓存至所述缓存区域的情况下,
所述命令输出部不等待所述延迟时间的经过就将全区域读取命令输出至所述存储器,其中,该全区域读取命令指示从大于或等于2个读出候补地址的全部区域读出数据。
6.根据权利要求5所述的存储器控制装置,其特征在于,
在将部分读取命令输出至所述存储器的情况下,所述命令输出部判断从将全区域读取命令以及部分读取命令中的某一个最后输出至所述存储器开始的经过时间是否超过所述延迟时间,
在从将全区域读取命令以及部分读取命令中的某一个最后输出至所述存储器开始的经过时间超过所述延迟时间的情况下,所述命令输出部不等待所述延迟时间的经过就将部分读取命令输出至所述存储器。
7.根据权利要求6所述的存储器控制装置,其特征在于,
所述命令输出部,
在从将全区域读取命令以及部分读取命令中的某一个最后输出至所述存储器开始的经过时间没有超过所述延迟时间的情况下,
计算从将全区域读取命令以及部分读取命令中的某一个最后输出至所述存储器开始的经过时间与所述延迟时间的差值时间,
在从能够向所述存储器输出所述部分读取命令的定时开始经过所述差值时间之后,将部分读取命令输出至所述存储器。
8.根据权利要求5所述的存储器控制装置,其特征在于,
所述存储器控制装置还具有缓存管理部,该缓存管理部在末尾数据中包含既不是所述要求有效载荷数据、也不是所述对应错误订正数据的数据的情况下,将所述末尾数据存储至所述缓存区域,其中,该末尾数据是根据由所述命令输出部输出的全区域读取命令以及部分读取命令中的某一个而从所述存储器读出的末尾的数据。
9.根据权利要求1所述的存储器控制装置,其特征在于,
所述命令输出部至少将与流水线处理中的1个间隙的量的时间相当的时间作为所述延迟时间。
10.根据权利要求1所述的存储器控制装置,其特征在于,
所述存储器控制装置具有多个缓存区域,
所述缓存判定部判定大于或等于2个读出候补地址中的某地址处的数据是否已经缓存或者预定要缓存至所述多个缓存区域中的某缓存区域。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/078628 WO2014068789A1 (ja) | 2012-11-05 | 2012-11-05 | メモリ制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104769558A CN104769558A (zh) | 2015-07-08 |
CN104769558B true CN104769558B (zh) | 2017-07-21 |
Family
ID=50626752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280076878.2A Expired - Fee Related CN104769558B (zh) | 2012-11-05 | 2012-11-05 | 存储器控制装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9715427B2 (zh) |
JP (1) | JP5797342B2 (zh) |
CN (1) | CN104769558B (zh) |
DE (1) | DE112012007102B4 (zh) |
TW (1) | TWI475383B (zh) |
WO (1) | WO2014068789A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326142B (zh) * | 2015-06-17 | 2019-05-21 | 群联电子股份有限公司 | 缓冲存储器存取方法、存储器控制器与存储器存储装置 |
WO2017131648A1 (en) * | 2016-01-27 | 2017-08-03 | Hewlett Packard Enterprise Development Lp | Adaptive request management |
US10713750B2 (en) * | 2017-04-01 | 2020-07-14 | Intel Corporation | Cache replacement mechanism |
CN111881068A (zh) * | 2020-06-30 | 2020-11-03 | 北京思朗科技有限责任公司 | 多入口的全相联的高速缓冲存储器及数据管理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7451261B2 (en) * | 2004-12-27 | 2008-11-11 | Hitachi Global Storage Technologies Netherlands B.V. | Data storage device and control method with buffer control thereof |
CN101681304A (zh) * | 2007-06-20 | 2010-03-24 | 富士通株式会社 | 高速缓冲存储器控制装置及流水线控制方法 |
US8214600B2 (en) * | 2005-02-10 | 2012-07-03 | International Business Machines Corporation | Data processing system and method for efficient coherency communication utilizing coherency domains |
CN102754089A (zh) * | 2010-02-09 | 2012-10-24 | 三菱电机株式会社 | 传送控制装置、存储器控制装置、以及具有上述传送控制装置的plc |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03132852A (ja) * | 1989-10-19 | 1991-06-06 | Pfu Ltd | バス非同期制御方式 |
JPH0588987A (ja) | 1991-09-25 | 1993-04-09 | Hitachi Ltd | バツフア記憶装置 |
JPH05233471A (ja) | 1992-02-21 | 1993-09-10 | Toshiba Corp | マイクロプロセッサ及びそれを使用したデータ処理装置 |
JPH0773114A (ja) | 1993-09-01 | 1995-03-17 | Nec Corp | 宇宙用デジタル計算機のメモリ制御回路 |
JPH07146825A (ja) | 1993-11-22 | 1995-06-06 | Okuma Mach Works Ltd | メモリシステム |
JPH1040165A (ja) * | 1996-07-22 | 1998-02-13 | Oki Data:Kk | データ読み出し方法およびリードバッファ |
JPH1198462A (ja) | 1997-09-19 | 1999-04-09 | Hitachi Ltd | データ再生装置 |
US6748486B2 (en) * | 2001-01-04 | 2004-06-08 | International Business Machines Corporation | Method, system, and data structures for superimposing data records in a first data format to memory in a second data format |
JP2003044354A (ja) * | 2001-07-26 | 2003-02-14 | Matsushita Electric Ind Co Ltd | メモリ制御装置 |
JP2004038705A (ja) | 2002-07-05 | 2004-02-05 | Toshiba Corp | メモリ制御装置およびメモリアクセス方法 |
US20080034132A1 (en) | 2006-08-01 | 2008-02-07 | Nec Electronics Corporation | Memory interface for controlling burst memory access, and method for controlling the same |
JP2008059565A (ja) | 2006-08-01 | 2008-03-13 | Nec Electronics Corp | バーストメモリアクセスを制御するメモリインターフェース装置及びその制御方法 |
JP2008217857A (ja) * | 2007-02-28 | 2008-09-18 | Toshiba Corp | メモリコントローラ及び半導体装置 |
JP5380102B2 (ja) | 2009-02-16 | 2014-01-08 | 株式会社東芝 | マイクロプロセッサ |
JP2012137944A (ja) * | 2010-12-27 | 2012-07-19 | Mitsubishi Electric Corp | メモリアクセス装置 |
TWI467579B (zh) * | 2011-01-14 | 2015-01-01 | Mstar Semiconductor Inc | 電子裝置及其記憶體控制方法以及相關電腦可讀取儲存媒體 |
WO2014002222A1 (ja) | 2012-06-28 | 2014-01-03 | 三菱電機株式会社 | リードリクエスト処理装置 |
-
2012
- 2012-11-05 JP JP2014544200A patent/JP5797342B2/ja active Active
- 2012-11-05 CN CN201280076878.2A patent/CN104769558B/zh not_active Expired - Fee Related
- 2012-11-05 US US14/423,841 patent/US9715427B2/en active Active
- 2012-11-05 WO PCT/JP2012/078628 patent/WO2014068789A1/ja active Application Filing
- 2012-11-05 DE DE112012007102.6T patent/DE112012007102B4/de active Active
-
2013
- 2013-01-15 TW TW102101434A patent/TWI475383B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7451261B2 (en) * | 2004-12-27 | 2008-11-11 | Hitachi Global Storage Technologies Netherlands B.V. | Data storage device and control method with buffer control thereof |
US8214600B2 (en) * | 2005-02-10 | 2012-07-03 | International Business Machines Corporation | Data processing system and method for efficient coherency communication utilizing coherency domains |
CN101681304A (zh) * | 2007-06-20 | 2010-03-24 | 富士通株式会社 | 高速缓冲存储器控制装置及流水线控制方法 |
CN102754089A (zh) * | 2010-02-09 | 2012-10-24 | 三菱电机株式会社 | 传送控制装置、存储器控制装置、以及具有上述传送控制装置的plc |
Also Published As
Publication number | Publication date |
---|---|
WO2014068789A1 (ja) | 2014-05-08 |
DE112012007102B4 (de) | 2022-04-28 |
US9715427B2 (en) | 2017-07-25 |
TWI475383B (zh) | 2015-03-01 |
JPWO2014068789A1 (ja) | 2016-09-08 |
TW201418980A (zh) | 2014-05-16 |
JP5797342B2 (ja) | 2015-10-21 |
US20150186208A1 (en) | 2015-07-02 |
CN104769558A (zh) | 2015-07-08 |
DE112012007102T5 (de) | 2015-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104769558B (zh) | 存储器控制装置 | |
JP3620473B2 (ja) | 共有キャッシュメモリのリプレイスメント制御方法及びその装置 | |
CN100524251C (zh) | 采用压缩缓存线信息价值的计算系统、处理器及方法 | |
US7539812B2 (en) | System and method to increase DRAM parallelism | |
US8850121B1 (en) | Outstanding load miss buffer with shared entries | |
JP3846638B2 (ja) | 画素エンジン・データ・キャッシング機構 | |
US8793435B1 (en) | Load miss result buffer with shared data lines | |
US8086802B2 (en) | Instruction cache system, instruction-cache-system control method, and information processing apparatus | |
JP5730126B2 (ja) | データ供給装置、キャッシュ装置、データ供給方法、キャッシュ方法およびプログラム | |
US20090259813A1 (en) | Multi-processor system and method of controlling the multi-processor system | |
US8806135B1 (en) | Load store unit with load miss result buffer | |
US8347034B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
CN101706760B (zh) | 矩阵转置自动控制电路系统及矩阵转置方法 | |
IT201800000580A1 (it) | Metodo di aggiornamento in tempo reale di una memoria differenziale con accessibilita' continua in lettura, memoria differenziale e sistema elettronico | |
US20090089551A1 (en) | Apparatus and method of avoiding bank conflict in single-port multi-bank memory system | |
US10275392B2 (en) | Data processing device | |
KR20140108787A (ko) | 텍스쳐 맵핑 파이프라인을 위한 논블로킹 방식의 텍스쳐 캐쉬 메모리 시스템 및 논블로킹 방식의 텍스쳐 캐쉬 메모리의 동작 방법 | |
CN107506139A (zh) | 一种面向相变存储器的写请求优化装置 | |
JP2001051896A (ja) | 記憶装置 | |
CN104471549B (zh) | 读取请求处理装置 | |
US20110197013A1 (en) | Cache system | |
WO2013184855A1 (en) | Memory with bank-conflict-resolution (bcr) module including cache | |
JPS58189890A (ja) | 階層記憶装置 | |
CN103748566A (zh) | 用于寄存器组的创新结构 | |
US7543113B2 (en) | Cache memory system and method capable of adaptively accommodating various memory line sizes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170721 Termination date: 20191105 |
|
CF01 | Termination of patent right due to non-payment of annual fee |