New! View global litigation for patent families

CN104471549B - 读取请求处理装置 - Google Patents

读取请求处理装置 Download PDF

Info

Publication number
CN104471549B
CN104471549B CN 201280074337 CN201280074337A CN104471549B CN 104471549 B CN104471549 B CN 104471549B CN 201280074337 CN201280074337 CN 201280074337 CN 201280074337 A CN201280074337 A CN 201280074337A CN 104471549 B CN104471549 B CN 104471549B
Authority
CN
Grant status
Grant
Patent type
Application number
CN 201280074337
Other languages
English (en)
Other versions
CN104471549A (zh )
Inventor
迹部浩士
Original Assignee
三菱电机株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Grant date

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding 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/1016Error in accessing a memory location, i.e. addressing error
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from or digital output to record carriers, e.g. RAID, emulated record carriers, networked record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters

Abstract

环回突发读取判定部(108)判定读取请求是否是环回读取的请求。在是环回读取的请求的情况下,存储器地址变换部(106)对包含存储有由读取请求所要求的有效载荷数据的地址在内的多个地址进行提取,并指定来自提取出的多个地址的数据的读出顺序。在是环回读取的请求的情况下,第1数据保存部(109)将从所述多个地址中的被指定为起始读出顺序的地址读出的第1数据输入,并存储第1数据。在是环回读取的请求的情况下,数据排列部(103)将从被指定为末尾读出顺序的地址读出的末尾数据输入,并且从第1数据和末尾数据中,提取存在对应关系的有效载荷数据和ECC。

Description

读取请求处理装置

技术领域

[0001] 本发明涉及一种对要求读取来自存储器的有效载荷数据的读取请求进行处理的 技术。

背景技术

[0002] 为了提高存储器的可靠性,有时在有效载荷数据中附加ECC (Error Correcting Code)、奇偶校验位。通常,在宽度方向上追加存储器元件,而专用于所附加的ECC、奇偶校验 位(水平ECC、水平奇偶校验)。

[0003] 例如,不是X8位结构的存储器,而考虑使用特殊的X9位结构的存储器。

[0004] 但是,存储器元件的追加、特殊存储器的采用,大多在成本方面是不利的,或者难 于得到部件。

[0005] 作为其解决对策之一,有时通过不在宽度方向上保存ECC而在深度方向上保存 ECC,从而不需要在宽度方向上增加存储器,而采用垂直ECC、垂直奇偶校验。

[0006] 下面,将垂直ECC作为例子进行说明,但下面的说明也能够适用于垂直奇偶校验。

[0007] 例如,考虑在如图1所示的存储器结构中通过垂直ECC方式,附力PECC的情况。

[0008] 在图1中,在1个地址处,存储有4个各自的数据宽度是1字节的有效载荷数据。

[0009] 在图1的存储器结构中,如果通过垂直ECC,对每4字节的有效载荷数据附加1字节 的ECC,则形成如图2所示的数据的配置。

[0010] 对采用了垂直ECC的存储器进行环回读取,最初从存储器进行读取的地址的数据 (第1数据)如果包含ECC,则该数据在最初和最后这2次被利用。

[0011] 环回读取是下述方法,S卩,在通过缓存的读取填充(read fi 11)动作等,读取一个 线宽的数据的情况下,如果将最初需要进行访问的地址置于起始处,并且,从起始地址开始 使地址单调地增加而到达至环回边界处,则环回绕向(Wrapping around)低位地址并返送 数据。

[0012] 在图1的例子中,以每4个地址(例如,OOOOh地址、0004h地址、0008h地址、OOOCh地 址这4个地址)划分出环回读取的单位。

[0013] 在图2的例子中,以每5个地址(例如,0000h地址、0004h地址、0008h地址、OOOCh地 址、001 Oh地址这5个地址)划分出环回读取的单位。

[0014] 在图2的例子中,例如,在将0004h地址作为起始地址的情况下,读出〇〇〇4h地址的 数据(ECC0〜D6)、0008h地址的数据(D7〜D9)、000Ch地址的数据(Da〜Dc)、0010h地址的数 据(Dd 〜ECC3)。

[0015] 而且,在0010h地址处到达环回边界,因此,环回绕向低位地址,读出〇〇〇〇h地址的 数据(D0〜D3)。

[0016] 〇〇〇〇h地址的数据(D0〜D3)的ECC是“ECC0”而存在于〇〇〇4h地址处,因此,需要再次 读出0004h地址的数据(ECC0〜D6)。

[0017] 如上所述,对采用了垂直ECC的存储器进行环回读取,最初从存储器读取的地址的 数据(第1数据)如果包SECC,则该数据在最初和最后这2次被读出。

[0018]在存储器访冋中存在额外开销(overhead)的情况较多(例如,在DRAM (Dynamic Random Access Memory)中,如果对同一个存储体进行ACT,则产生无法访问的期间),如果 将第1数据读取2次,则发生性能损耗,效率不高。

[0019]另外,由于每次存储器访问都会消耗电力,因此,如果将第丨数据读取2次,则电力 消耗变多。

[0020]在实现垂直ECC时,存在下述方法,g卩,根据存储器的特征,通过针对有效载荷数据 和ECC的存储器上的配置进行设计,从而快速地访问有效载荷数据和ECC (例如,专利文献 1)。

[0021] 专利文献1:日本特开平11—098462号公报

发明内容

[0022] 专利文献1的方式,能够利用垂直ECC、和具有页面模式以及存储体切换的DRAM高 速访问技术,但仅能够适合递增访问而无法对应环回读取访问。

[0023]本发明就是鉴于上述的情况而提出的,其主要目的在于避免重复的数据的读出, 高效地利用有限的存储器区域,另外,抑制存储器访问中的电力消耗。

[0024] 本发明所涉及的读取请求处理装置是对要求从存储器读出有效载荷数据的读取 请求进行处理的读取请求处理装置,在该存储器中,具有分别对规定的数据宽度值的数据 进行存储的n个地址,所述n个地址以环回读取的单位即m个地址为单位进行划分,存在对应 关系的有效载荷数据和错误订正数据横跨相邻的2个地址而存储,以地址单位进行数据的 读出,其中,m是2以上的整数,n是m的2以上整数倍的整数,

[0025] 该读取请求处理装置的特征在于,具有:

[0026] 读取请求输入部,其输入读取请求;

[0027] 读取请求判定部,其判定由所述读取请求输入部输入的读取请求是否是环回读取 的请求;

[0028] 地址提取部,其在由所述读取请求判定部判定出所述读取请求是环回读取的请求 的情况下,从所述n个地址中提取出包含存储有由所述读取请求所要求的有效载荷数据的 地址在内的m个地址而作为环回读取的对象,基于提取出的m个地址的顺序,指定来自m个地 址的数据的读出顺序,并且,将来自各地址的数据的读出次数限定为1次;

[0029] 起始数据存储部,其在由所述读取请求判定部判定出所述读取请求是环回读取的 请求的情况下,当从由所述地址提取部提取出的m个地址中的被指定为起始读出顺序的起 始地址读出数据时,将从所述起始地址读出的起始数据输入,并存储所述起始数据;以及

[0030] 数据提取部,其在由所述读取请求判定部判定出所述读取请求是环回读取的请求 的情况下,当从由所述地址提取部提取出的m个地址中的被指定为末尾读出顺序的末尾地 址读出数据时,将从所述末尾地址读出的末尾数据输入,并且,从所述起始数据存储部输入 所述起始数据,从所述起始数据和所述末尾数据中提取存在对应关系的有效载荷数据和错 误订正数据。

[0031] 发明的效果

[0032] 根据本发明,将来自各地址的数据的读出次数限定为1次,并且,存储起始数据,针 对术尾数聒利用仔TO W起始数据,因此,能够避免重复数据的读出,高效地利用有限的存 储器区域,另外,抑制在存储器访问中的电力消耗。

附图说明

[0033]图1是表f实施方式1所涉及的不包含ECC的数据的配置例的图。

[0034]图2是表^实施方式1所涉及的附加有垂直ECC的数据的配置例的图。

[0035]图3是表^实施方式1所涉及的存储器控制装置、请求要求源以及存储器的图。 [0036]图4是表示实施方式1所涉及的存储器控制装置、请求要求源以及请求要求目标的 图。

[0037]图5是表^实施方式1所涉及的存储器控制装置的动作例的流程图。

[0038]图6是表^实施方式2所涉及的存储器控制装置、请求要求源以及存储器的图。 [0039]图7是表^实施方式2所涉及的存储器控制装置的动作例的流程图。

[0040]图8是表^实施方式2所涉及的存储器控制装置的动作例的图。

[0041]图9是表示实施方式3所涉及的存储器控制装置、请求要求源以及存储器的图。 [0042]图1〇是表^实施方式3所涉及的存储器控制装置的动作例的流程图。

[0043]图11是表^实施方式4所涉及的存储器控制装置、请求要求源以及存储器的图。 [0044]图12是表示实施方式4所涉及的存储器控制装置的动作例的流程图。

[0045]图13是表示实施方式4所涉及的存储器控制装置、请求要求源以及存储器的图。

具体实施方式

[0046] 实施方式1

[0047]图3示出实施方式1所涉及的存储器控制装置1〇〇、请求要求源101以及存储器1〇5。 [0048] 在本实施方式中,在对与环回读取相对应的结构进行说明时,说明作为前提的结 构。

[0049] 与环回读取相对应的结构在实施方式2中进行说明。

[0050] 在图3中,请求要求源101向存储器105发出读取•写入请求。

[0051]下面,限定于请求要求源101发出要求从存储器105读出有效载荷数据的读取请求 的情况而进行说明。

[0052]请求要求源101 例如是CPU (Central Processing Unit)。

[0053] 此外,请求要求源101例如按照图1所示的形式,识别出有效载荷数据的配置。

[0054] 另外,请求要求源101针对每4个地址识别出环回读取的单位。

[0055]另外,在存储器105中,例如按照图2所示的形式,配置有有效载荷数据和错误订正 数据即ECC。

[0056] 在存储器105中,设定有n个地址。

[0057] 在图2中,作为一个例子,在存储器105中设定有20个地址(n = 20)。

[0058] 如前述所示,在图2中,通过垂直ECC,针对每4字节的有效载荷数据附加有1字节的 ECC〇

[0059] 垂直ECC如前述所示,是在地址的深度方向上配置ECC,实现ECC、奇偶校验而不增 加存储器的数据宽度的ECC的存储器配置方法。

[0060] 从存储器105按照地址单位进行数据的读出。

[0061]另外,存储器105的n个地址按照环回读取的单位即m个地址进行了划分泚外,m是 2以上的整数,n是m的2以上整数倍的整数)。

[0062] 在图2中,作为一个例子,以每5个地址设定出环回读取的单位(m = 5)。

[0063] 此外,在存储器105的环回读取的单位(例如,OOOOh地址、0004h地址、0008h地址、 OOOCh地址、0010h地址)和请求要求源101的环回读取的单位(例如,OOOOh地址、0004h地址、 0008h地址、000Ch地址)中包含有相同的有效载荷数据(D0〜Df)。

[0064]另外,在图2中,形成在有效载荷数据之后配置ECC的顺序,但这只是一个例子,ECC 的配置方法只要是横跨相邻的2个地址而配置有存在对应关系的有效载荷数据和ECC即可。 [0065] 例如,“EEC0”也可以配置在有效载荷数据“D0”之前

[0066] 另外,分配至相同地址的数据能够扩展,例如在0000h地址处可以将数据宽度扩展 为D0〜D3、ECC0、D4〜D6,在下面的00〇8h地址处可以将数据宽度扩展为D7、ECC1、D8〜Db、 ECC2、Dc。进行数据扩展的原因在于,在该情况下,一部分有效载荷数据和ECC横跨相邻的2 个地址而存在对应关系。

[0067] 此外,存储器105是存储器控制装置100的控制对象的存储器。

[0068] 存储器控制装置100由存储器地址变换部106、前次值保存部104、数据排列部103 以及ECC订正部102构成。

[0069] 存储器控制装置100的各结构要素例如是元件、器件、电路这样的硬件。

[0070] 存储器控制装置100的各结构要素例如是芯片组内的半导体电路组。

[0071]另外,例如,存储器地址变换部106、数据排列部103以及ECC订正部102也可以使用 程序而实现。

[0072] 此外,存储器控制装置100相当于读取请求处理装置的例子。

[0073] 存储器地址变换部1〇6接收来自请求要求源101的读取请求。

[0074]另外,存储器地址变换部1〇6将接收到的读取请求的地址变换为配置有垂直ECC的 存储器105上的地址。

[0075]即,存储器地址变换部1〇6提取出存储有由来自请求要求源1〇1的读取请求所要求 的有效载荷数据和与该有效载荷数据存在对应关系的ECC的p个(p是2以上且n以下的整数) 地址而作为读出的对象。

[0076] 存储器地址变换部106相当于读取请求输入部和地址提取部的例子。

[0077]前次值保存部104是保存从存储器105接收到的前次的读取数据(4字节)的寄存 器。

[0078]即,前次值保存部104在每次从由存储器地址变换部106指定出的各地址读出4字 节的数据时,将读出的4字节的数据输入,并将所输入的数据作为前次值(过去数据)进行存 储。

[0079]前次值保存部104相当于过去数据存储部的例子。

[0080]数据排列部103将从存储器1〇5接收到的本次的读取数据(4字节)和前次值保存部 104的数据(4字节)分离成有效载荷数据和与其对应的ECC,将数据排列为能够进行ECC订正 的配置。

[0081] s卩,数据排列部103在每次从由存储器地址变换部106指定出的各地址读出4字节 的数据时,将读出的4字节的数据输入。

[0082]另外,数据排列部103将所输入的4字节的数据的之前一次读出的4字节的数据(前 次值)从前次值保存部104输入,根据来自存储器105的数据和作为前次值的数据,提取存在 对应关系的有效载荷数据和ECC。

[0083] 数据排列部103相当于数据提取部的例子。

[0084] ECC订正部102对从数据排列部103接收到的读取数据进行ECC订正,并向请求要求 源101返送读取数据。

[0085] 即,ECC订正部102使用由数据排列部103提取出的ECC,对存在对应关系的有效载 荷数据进行错误订正处理,将错误订正处理之后的有效载荷数据向请求要求源101输出。 [0086] ECC订正部102相当于错误订正处理部的例子。

[0087] 在图3中示出了存储器控制装置100直接与存储器105连接的结构,但也可以如图4 所示,存储器控制装置1〇〇与请求要求目标200连接。

[0088] 在图4中,虽然省略了图示,但请求要求目标200与存储器105连接,进行存储器105 的数据的读出,并将读出的数据输出至存储器控制装置100。

[0089] 下面,参照图5,对本实施方式所涉及的存储器控制装置100的动作例进行说明。

[0090] 在这里,说明请求要求源101要求读取图1的OOOOh地址的4字节(D0〜D3)的情况。

[0091] 首先,存储器地址变换部106受理来自请求要求源101的读取请求(S201)。

[0092] 存储器地址变换部106对包含4字节的数据(D0〜D3)和与其对应的ECC (ECC0)的存 储器105上的区域进行计算。

[0093] 参照图2,上述数据横跨配置在0000h地址和0004h地址中,因此,存储器地址变换 部106变换为从0000h地址读取8字节的请求(S202)。

[0094] 而且,存储器地址变换部1〇6指示存储器105按照0000h地址的数据(D0〜D3)、 0004h地址的数据(ECC0〜D6)的顺序进行读出。

[0095] 存储器105按照顺序返送0000h地址的数据(D0〜D3)和0004h地址的数据(ECC0〜 D6) 〇

[0096]前次值保存部104接收0000h地址的数据(D0〜D3),并保存接收到的0000h地址的 数据(D0〜D3) (S203)。

[0097] 数据排列部103接收0000h地址的数据(D0〜D3),但由于仅利用0000h地址的数据 无法进行数据排列(S204为N0),因此,等待0004h地址的数据的接收。

[0098] 数据排列部103在从存储器105接收到0004h地址的数据(ECC0〜D6)时,通过前次 值保存部104保存的0000h地址的数据(D0〜D3)和从存储器105接收到的0004h地址的数据 (ECC0〜D6),判断出能够进行数据排列(S204为YES)。

[0099] S卩,数据排列部103从0000h地址的数据(D0〜D3)和0004h地址的数据(ECC0〜D6), 判断出能够提取存在对应关系的有效载荷数据(D0〜D3)和ECC (ECC0)。

[0100] 然后,数据排列部103切割出与有效载荷数据部分D0〜D3相对应的ECC0,使数据进 行排列(S205)。

[0101] ECC订正部102接受排列有有效载荷数据和ECC而成的数据(D0〜D3和ECC0),在进 行ECC订正之后,向请求要求源101返送读取数据(D0〜D3) (S206)。

[0102] 通过以上流程,由于己完成对由读取请求所要求的全部数据的返送,因此,处理结 束(S207)。

[0103]在上面的例子中,例举了从OOOOh地址读取4字节的情况,但如果是从0004h地址读 取8字节等使地址单调增加的读取访问,则存储器控制装置1〇〇也能够通过图5所示的动作, 适当地返送ECC订正之后的读取数据。

[0104]上面,在本实施方式中,说明了具有下述单元的存储器控制装置。

[0105] ⑸将来自请求要求源的请求变换为存储器的请求,并传输数据的单元

[0106] ⑹对数据进行ECC错误订正的单元

[0107] (c)将来自采用了垂直ECC的存储器的接收数据再配置为能够进行ECC错误订正的 数据(分离为数据和与其对应的ECC)的单元

[0108] (d)将来自请求要求源的地址和长度变换为针对采用了垂直ECC的存储器的地址 和长度的单元

[0109] ⑹用于保存从存储器接收到的前一次数据的单元。

[0110]另外,在本实施方式中,还说明了具有下述单元的存储器控制装置,该单元将来自 请求要求源的请求变换为针对后段的请求要求目标的请求。

[0111] 实施方式2

[0112] 在本实施方式中,说明在对采用了垂直ECC的存储器进行环回读取时,避免将第1 数据读取2次的结构。

[0113]更具体地说,本实施方式所涉及的存储器控制装置1〇〇具有保存第1数据的缓冲 器,进行1次第1数据的读取即可。

[0114] 根据本实施方式所涉及的存储器控制装置100,能够高效地利用有限的存储器区 域,能够抑制存储器访问中的电力消耗。

[0115] 并且,本实施方式所涉及的存储器控制装置100能够有助于存储器访问的高速化。

[0116] 在这里,再次说明在对采用了垂直ECC的存储器进行环回读取时,第1数据的读取 发生2次的原因。

[0117] 例如,在从图1的0004h地址环回读取16字节的情况下,存储器控制装置100向请求 要求源101按照〇〇〇4h—0008h—OOOCh—OOOOh地址的顺序返送合计16字节的读取数据。

[0118] 如果利用图2所示的附加了垂直ECC的存储器配置进行该读取动作,则按照0004h —0008h—000Ch40010h—0000h—0004h地址的顺序从存储器读取合计24字节的读取数 据,发生对〇〇〇4h地址的2次读取。

[0119] S卩,在图2的存储器配置中,需要将0000h地址的有效载荷数据“D0〜D3”的ECC即 “ECC0”从0004h地址读取,因此,需要再次读出第1数据(0004h地址的数据)。

[0120] 将解决上面的环回读取中的课题的存储器控制装置100在图6中示出。

[0121] 图6的存储器控制装置100在图3所示的结构中追加有环回突发读取判定部108和 第1数据保存部109。

[0122] 环回突发读取判定部108从请求要求源101接收读取请求,并且,判定接收到的读 取请求是否是环回突发的读取请求,将该结果通知存储器地址变换部106。

[0123] 环回突发读取判定部108相当于读取请求输入部和读取请求判定部的例子。

[0124] 第1数据保存部109是对根据由存储器地址变换部106变换出的请求,最初从存储 器105返回来的读取数据进行保存的寄存器。

[0125] g卩,第1数据保存部109在由环回突发读取判定部1〇8判定出读取请求是环回大友 的读取请求的情况下,在按照起始读出顺序即从起始地址(在上面的例子中是0004h地址) 读出数据时,将从起始地址读出的起始数据输入,并存储起始数据。

[0126] 第1数据保存部109相当于起始数据存储部的例子。

[0127] 另外,在本实施方式中,存储器地址变换部106在由环回突发读取判定部1〇8判定 出读取请求是环回突发的读取请求的情况下,提取出包含对由读取请求所要求的有效载荷 数据进行存储的地址在内的5个地址而作为环回读取的对象。

[0128] 另外,存储器地址变换部1 〇6基于提取出的5个地址的顺序,指定来自5个地址的数 据的读出顺序,并且,将来自各地址的数据的读出次数限定为1次。

[0129] 例如,假设发出了将图1的0004h地址(D4〜D7)作为起始地址的环回读取的读取请 求的情况。

[0130] 存储器地址变换部106提取出图2中包含0004h地址和000¾地址在内的5个地址 (0004h地址、0008h地址、OOOCh地址、OOOOh地址、)而作为环回读取的对象,其中,〇〇〇4h地址 和0008h地址中含有有效载荷数据“D4〜D7”。

[0131] 而且,存储器地址变换部106将数据读出顺序指定为0004h—0008h4000Ch— 0000h„

[0132] 如上所述,本实施方式所涉及的存储器地址变换部106将来自各地址的数据的读 出次数限定为1次,因此,不会对第1数据即0004h地址的数据进行2次读出。

[0133] 此外,在接收到通常的读取请求的情况下的存储器地址变换部106的动作与实施 方式1所示的情况相同。

[0134] 另外,图6所示的其他要素的动作由于与通过实施方式1所说明的情况相同,因此, 省略说明。

[0135] 下面,参照图7,对本实施方式所涉及的存储器控制装置100的动作例进行说明。

[0136] 在这里,说明请求要求源101要求将图1的0004h地址(D4〜D7)作为起始地址而进 行环回读取的情况。

[0137] 另外,图8对在存储器控制装置100的各部中,如何处理数据进行了说明。

[0138] 首先,环回突发读取判定部108受理来自请求要求源101的读取请求(S201)。

[0139] 环回突发读取判定部108判定读取请求是否是环回突发读取的请求(S301)。

[0140] 在是环回突发读取的请求的情况下(S3〇l为YES),环回突发读取判定部108将读取 请求输出至存储器地址变换部106,存储器地址变换部1〇6变换为环回突发读取的存储器地 址(S302)。

[0141] 存储器地址变换部106对包含16字节的数据(D4〜Df和D0〜D3)和与其相对应的 ECC (ECC1〜ECC3和ECC0)的区域进行计算。

[0142] 参照图2,上述数据配置在从0004h地址到0010h地址和0000h地址,因此,变换为从 0004h地址读取16字节,从0000h地址读取4字节的请求(S302)。

[0143] 而且,存储器地址变换部106按照0004h—0008h—000Ch—0000h的顺序,向存储器 105指示数据的读出。

[0144] 存储器105从0004h地址的数据(ECC0〜D6)开始依次进行返回。

[0145] 第1数据保存部1〇9接收起始数据即0004h地址的数据(ECC0〜D6)(图8的第1数据 A),并将接收到的〇〇〇4h地址的数据作为第1数据(图8的第1数据E)而进行保存(S303)。

[0146] 数据排列部103也接收0004h地址的数据(ECC0〜D6)(图8的第1数据A),但由于仅 利用0004h地址的数据无法进行数据排列(S305为N0),因此,等待接收0008h地址的数据。

[0147] 另外,此时,前次值保存部104也接收0004h地址的数据(ECC0〜D6)(图8的第1数据 A),并将接收到的〇〇〇4h地址的数据作为前次值(图8的第1数据B)而进行保存(S203)。

[0148] 此外,直至接收到OOOOh地址的数据为止的动作与实施方式1相同。

[0149] 即,当从存储器105读出0008h地址的数据(D7〜D9)(图8的第2数据A)时,前次值保 存部104将0008h地址的数据作为前次值(图8的第2数据B)而进行保存(S203),数据排列部 103也接收0008h地址的数据(D7〜D9)(图8的第2数据A)。

[0150] 数据排列部103如图8所示,从接收到的0008h地址的数据(第2数据A)和前次值(第 1数据B)中,提取“D4〜D7”和“ECC1”,生成第1数据C (S305、S205)。

[0151] 而且,ECC订正部102进行ECC订正,并将第1数据D发送至请求要求源101 (S206)。

[0152] 此外,在该时刻,没有返送全部的读取数据,因此,S207为NO。

[0153] 然后,当从存储器105读出000Ch地址的数据(Da〜Dc)(图8的第3数据A)时,前次值 保存部104将000Ch地址的数据作为前次值(图8的第3数据B)而进行保存(S203),数据排列 部103也接收000Ch地址的数据(Da〜Dc)(图8的第3数据A)。

[0154] 数据排列部103如图8所示,从接收到的000Ch地址的数据(第3数据A)和前次值(第 2数据B)中,提取“D8〜Db”和“ECC2”,生成第2数据C(S305、S205)。

[0155] 而且,ECC订正部102进行ECC订正,并将第2数据D发送至请求要求源101 (S206)。

[0156] 此外,在该时刻,没有返送全部的读取数据,因此,S207为NO。

[0157] 然后,当从存储器105读出0010h地址的数据(Dd〜ECC3)(图8的第4数据A)时,前次 值保存部104将0010h地址的数据作为前次值(图8的第4数据B)而进行保存(S203),数据排 列部103也接收0010h地址的数据(Dd〜ECC3)(图8的第4数据A)。

[0158] 数据排列部103如图8所示,从接收到的0010h地址的数据(第4数据A)和前次值(第 3数据B)中,提取“Dc〜Df”和“ECC3”,生成第3数据C(S305、S205)。

[0159] 而且,ECC订正部102进行ECC订正,并将第3数据D发送至请求要求源101 (S206)。 _] 此外,在该时刻,没有返送全部的读取数据,因此,S207为NO。

[0161] 然后,当从存储器105读出0000h地址的数据(DO〜D3)(图8的第5数据A)时,前次值 保存部104将0000h地址的数据作为前次值(图S的第5数据©而进行保存(S203),数据排列 部103也接收0000h地址的数据(D0〜D3)(图8的第5数据A)。

[0162] 数据排列部103接收0000h地址的数据(D0〜D3)(图8的第5数据A),但无法利用其 与0010h地址的数据(第4数据©进行数据排列(S3〇5为N0),因此,等待0000h地址的数据(第 5数据B)。

[0163] 数据排列部103如图8所示,从接收到的0000h地址的数据(第5数据B)和第1数据保 存部109内的第1数据(第1数据E)中,提取“D0〜D3”和“ECC0”,生成第4数据C(S305、S205)。

[0164] 而且,ECC订正部102进行ECC订正,并将第4数据D发送至请求要求源1〇1 (S206)。

[0165] 在该时刻,返送了全部的读取数据,因此,S207为YES。

[0166] 此外,在上面的例子中,前次值保存部104存储有第4数据B以及第5数据B,但由于 该第4数据B以及第5数据B在数据排列部103中未被使用,因此,前次值保存部1〇4可以不存 储第4数据B以及第5数据B。

[0167]如上所述,根据本实施方式,将来自各地址的数据的读出次数限定为1次,并且存 储第1数据,对末尾的数据使用所存储的第1数据,因此,能够避免重复数据的读出,高效地 利用有限的存储器区域,另外,抑制存储器访问中的电力消耗。

[0168] 上面,在本实施方式中,说明了在实施方式1所示的结构的基础上具有下述单元的 存储器控制装置。

[0169] (a)对根据来自请求要求源的请求而最初接收的数据进行保存的单元。

[0170] ⑹判定环回读取的单元。

[0171] 实施方式3

[0172] 在实施方式1中,接受来自请求要求源101的1个读取请求,直至完成返送该读取数 据为止,无法接受下一次的读取请求。

[0173] 例如在DRAM中,从发出读取请求开始直至读取数据返回为止的期间较长,但能够 在发出读取请求的读取数据返回之前,连续发出下一次的读取请求。

[0174] 为了提高处理能力,该流水线处理是不可缺少的。

[0175] 将以实施方式1的结构为基础,进行流水线处理的存储器控制装置100在图9中示 出。

[0176] 图9所示的存储器控制装置1〇〇是在图3所示的结构中追加有FIFO (First-In First-〇ut)110〇

[0177] FIF0110存储向存储器105发出的请求,并在读取数据从存储器105返回的定时,向 数据排列部103传输该信息。

[0178]另外,图9所示的其他要素的动作与实施方式1所说明的情况相同,因此,省略说 明。

[0179]下面。参照图10,对本实施方式所涉及的存储器控制装置100的动作例进行说明。 [0180] 存储器地址变换部106直至将由读取请求所要求的地址变换为图2的存储器地址 的处理(S202)为止,与实施方式1的处理相同。

[0181] 然后,在FIF0110中保存变换为存储器地址的命令信息(S401)。

[0182] 在已进行ECC订正的读取数据的返送完成之前,在从请求要求源1〇1接受新的读取 请求的情况下,在FIF0110中连续保存命令信息。

[0183] 在这里,在FIF0110中保存有信息而不为空(S402为YES),因此,数据排列部103以 及前次值保存部104接受来自存储器105的读取数据(S203)。

[0184] 在已进行ECC订正的读取数据的返送完成之后,在FIF0110中存在命令信息的情况 下(S402为YES),数据排列部103以及前次值保存部104从存储器105接受与下一次请求相对 应的读取数据(S203)。

[0185] 在FIF0110中不存在命令信息的情况下(S402为N0),由于已完成对全部请求的数 据的返送,因此处理结束(S207)。

[0186] 上面,在本实施方式中,说明了在实施方式1所示的结构的基础上具有将来自请求 要求源的请求储存的单元的存储器控制装置。

[0187] 实施方式4

[0188] 即使在实施方式2所说明的结构中,也能够与实施方式3同样地进行流水线处理。

[0189]但是,在图6所示的结构中单纯地仅追加FIF0110,会发生故障。

[0190]如果针对环回读取的下一次读取请求,通过流水线处理连续地进行存储器读取, 则有时在环回读取的末尾地址的数据从存储器105刚向数据排列部103输出之后,与下一个 读取请求相对应地读出的数据从存储器105向数据排列部103输出。

[0191]在环回读取中,在末尾地址的数据从存储器105向数据排列部103输出之后,由数 据排列部103使用来自第1数据保存部109的第1数据和在前次值保存部104中存储的末尾地 址的数据进行数据排列。

[0192]如果在该数据排列完成之前,与下一个读取请求相对应地从存储器105读出的数 据输入至数据排列部103,则在数据排列部103中发生数据冲突。

[0193] 因此,在本实施方式中,在图6所示的结构中设置FIF0110和控制数据冲突的单元, 实现流水线处理。

[0194] 将以实施方式2的结构为基础,进行流水线处理的存储器控制装置100在图11中示 出。

[0195] 图9所示的存储器控制装置100在图6所示的结构中追加有FIF0110和数据冲突控 制部111。

[0196] 数据冲突控制部111在数据排列部103在来自第1数据保存部109的第1数据的定 时,使得数据排列部103不被输入与后续的读取请求相对应地从存储器105读出的数据。

[0197] S卩,数据冲突控制部111以下述方式对从存储器105读出的数据的定时进行控制, 艮P,在数据排列部103输入来自第1数据保存部109的第1数据,从第1数据和末尾地址的数据 中提取出存在对应关系的有效载荷数据和ECC之后,向数据排列部103被输入与后续的读取 请求相对应地从存储器105读出的数据。

[0198] 例如,如图11所示,考虑将数据冲突控制部111配置在存储器105与数据排列部103 之间,数据冲突控制部111对与后续的读取请求相对应地从存储器105读出的数据进行缓 冲,从而控制冲突。

[0199] 另外,如图13所示,考虑将数据冲突控制部111配置在存储器105与存储器地址变 换部106之间,数据冲突控制部111在环回读取中对后续的读取请求向存储器105发出的请 求隔开间隔,从而进行冲突控制。

[0200] 下面,参照图12,对本实施方式所涉及的存储器控制装置1〇〇的动作例进行说明。

[0201] 此外,图12表示出图11的结构中的动作例。

[0202] 直至在FIF0110中保存命令信息的处理(S401)为止,与实施方式2以及实施方式3 相同。

[0203] 在FIF0110中保存的起始的命令信息不是环回读取的命令信息的情况下(S501为 NO)的处理与实施方式3相同。

[0204] 在FIF0110中保存的起始的命令信息是环回读取的命令信息的情况下(S501为 YES),直至数据排列部103使用第1数据进行数据排列的处理为止与实施方式2相同。

[0205] 然后,数据冲突控制部111在数据排列部103使用第1数据完成数据排列为止,判定 是否接收到从存储器105读出的数据(S502)。

[0206]在完成数据排列为止接收到来自存储器105的数据的情况下(Sf5〇2为YES),数据冲 突控制部111使数据排列部103接收来自存储器105的读取数据的定时延迟(S5〇3)。 102071 具体地说,数据冲突控制部111对来自存储器105的读取数据进行缓冲。

[0208]以后的动作与实施方式3相同。

[0209]以上,在本实施方式中,说明了在实施方式2所示的结构的基础上具有下述单元的 存储器控制装置。

[0210] (a)对来自请求要求源的请求进行储存的单元

[0211] (b)对实施方式2所记载的最初的接收数据和来自存储器的接收数据之间的冲突 进行控制的单元。

[0212]标号的说明

[0213] 100存储器控制装置,皿请求要求源,1〇2ECC订正部,1〇3数据排列部,1〇4前次值 保存部,1〇5存储器,1〇6存储器地址变换部,108环回突发读取判定部,丨⑽第丨数据保存部, 1HFIFO, 111数据冲突控制部,2〇〇请求要求目标。

Claims (6)

1.一种读取请求处理装置,其处理要求从存储器读出有效载荷数据的读取请求,在该 存储器中,具有分别对规定的数据宽度值的数据进行存储的n个地址,所述n个地址以环回 读取的单位即m个地址为单位进行划分,存在对应关系的有效载荷数据和错误订正数据横 跨相邻的2个地址而存储,以地址单位进行数据的读出,其中,m是2以上的整数,11是111的2以 上整数倍的整数, 该读取请求处理装置的特征在于,具有: 读取请求输入部,其接收读取请求; 读取请求判定部,其判定由所述读取请求输入部接收到的读取请求是否是环回读取的 请求; 地址提取部,其在由所述读取请求判定部判定出所述读取请求是环回读取的请求的情 况下,从所述n个地址中提取出包含存储有由所述读取请求所要求的有效载荷数据的地址 在内的m个地址而作为环回读取的对象,基于提取出的m个地址的顺序,指定来自„!个地址的 数据的读出顺序,并且,将来自各地址的数据的读出次数限定为1次; 起始数据存储部,其在由所述读取请求判定部判定出所述读取请求是环回读取的请求 的情况下,当从由所述地址提取部提取出的m个地址中的被指定为起始读出顺序的起始地 址读出数据时,接收从所述起始地址读出的起始数据,并存储所述起始数据;以及 数据提取部,其在由所述读取请求判定部判定出所述读取请求是环回读取的请求的情 况下,当从由所述地址提取部提取出的m个地址中的被指定为末尾读出顺序的末尾地址读 出数据时,接收从所述末尾地址读出的末尾数据,并且,从所述起始数据存储部接收所述起 始数据,从所述起始数据和所述末尾数据中提取存在对应关系的有效载荷数据和错误订正 数据。
2. 根据权利要求1所述的读取请求处理装置,其特征在于, 所述读取请求处理装置还具有过去数据存储部,该过去数据存储部在由所述读取请求 判定部判定出所述读取请求是环回读取的请求的情况下,按照由所述地址提取部指定出的 读出顺序,在每次从所述m个地址的各地址读出数据时,接收读出的数据,并将接收到的数 据作为过去数据而存储, 所述数据提取部在由所述读取请求判定部判定出所述读取请求是环回读取的请求的 情况下,直至从所述末尾地址读出数据为止,按照由所述地址提取部指定出的读出顺序,在 每次从所述m个地址的各地址读出数据时,接收读出的数据,并且,从所述过去数据存储部 对接收到的接收数据之前一次读出的过去数据进行接收,从所述接收数据和所述过去数据 中,提取存在对应关系的有效载荷数据和错误订正数据。
3. 根据权利要求1所述的读取请求处理装置,其特征在于, 所述读取请求处理装置还具有错误订正处理部,该错误订正处理部使用由所述数据提 取部提取出的错误订正数据,对存在对应关系的有效载荷数据进行错误订正处理,并将错 误订正处理之后的有效载荷数据向所述读取请求的发送源发送。
4. 根据权利要求1所述的读取请求处理装置,其特征在于, 所述地址提取部在由所述读取请求判定部判定出所述读取请求是环回读取的请求的 情况下,对存储有由所述读取请求所要求的有效载荷数据的地址即要求目标地址指定起始 读出顺序,对所述要求目标地址的前1个地址指定末尾读出顺序。
5.根据权利要求1所述的读取请求处理装置,其特征在于, 所述读取请求判定部、所述地址提取部、所述起始数据存储部以及所述数据提取部对 多个读取请求进行流水线处理。
6.根据权利要求5所述的读取请求处理装置,其特征在于, 所述读取请求处理装置还具有数据冲突控制部,该数据冲突控制部以下述方式对从所 述存储器读出的数据的定时进行控制,g卩,在所述数据提取部从所述起始数据存储部接收 所述起始数据,从所述^始数据和所迷末尾数据中提取出存在对应关系的有效载荷数据和 错误订正数据之后,所述数据提取部接收与紧接着环回读取的请求之后的读取请求相对应 地从所述存储器读出的数据。
CN 201280074337 2012-06-28 2012-06-28 读取请求处理装置 CN104471549B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/066494 WO2014002222A1 (ja) 2012-06-28 2012-06-28 リードリクエスト処理装置

Publications (2)

Publication Number Publication Date
CN104471549A true CN104471549A (zh) 2015-03-25
CN104471549B true CN104471549B (zh) 2017-06-16

Family

ID=49782453

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201280074337 CN104471549B (zh) 2012-06-28 2012-06-28 读取请求处理装置

Country Status (5)

Country Link
US (1) US9465691B2 (zh)
JP (1) JP5623677B2 (zh)
CN (1) CN104471549B (zh)
DE (1) DE112012006587T5 (zh)
WO (1) WO2014002222A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9792049B2 (en) * 2014-02-24 2017-10-17 Cypress Semiconductor Corporation Memory subsystem with wrapped-to-continuous read

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574880A (en) * 1994-03-11 1996-11-12 Intel Corporation Mechanism for performing wrap-around reads during split-wordline reads
US6212596B1 (en) * 1991-10-24 2001-04-03 Texas Instruments Incorporated Synchronous memory and data processing system having a programmable burst length
JP2003050748A (ja) * 2001-08-03 2003-02-21 Nec Corp バッファメモリ回路
CN102508635A (zh) * 2011-10-19 2012-06-20 中国科学院声学研究所 一种处理器装置及其循环处理方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5265218A (en) * 1992-05-19 1993-11-23 Sun Microsystems, Inc. Bus architecture for integrated data and video memory
US5572722A (en) * 1992-05-28 1996-11-05 Texas Instruments Incorporated Time skewing arrangement for operating random access memory in synchronism with a data processor
JPH06119255A (ja) 1992-10-02 1994-04-28 Oki Electric Ind Co Ltd データ記憶装置
JPH06282449A (ja) 1993-03-29 1994-10-07 Nec Corp メモリコントローラ
JP3643601B2 (ja) 1996-07-03 2005-04-27 株式会社日立製作所 情報処理装置
JPH1198462A (ja) 1997-09-19 1999-04-09 Hitachi Ltd データ再生装置
JP2004038705A (ja) 2002-07-05 2004-02-05 Toshiba Corp メモリ制御装置およびメモリアクセス方法
US7899957B1 (en) * 2003-12-30 2011-03-01 Altera Corporation Memory controller having a buffer for providing beginning and end data
US7333389B2 (en) * 2004-10-08 2008-02-19 Atmel Corporation Column decoding architecture for flash memories
US7307635B1 (en) * 2005-02-02 2007-12-11 Neomagic Corp. Display rotation using a small line buffer and optimized memory access
JP2008059565A (ja) 2006-08-01 2008-03-13 Nec Electronics 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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212596B1 (en) * 1991-10-24 2001-04-03 Texas Instruments Incorporated Synchronous memory and data processing system having a programmable burst length
US5574880A (en) * 1994-03-11 1996-11-12 Intel Corporation Mechanism for performing wrap-around reads during split-wordline reads
US5806082A (en) * 1994-03-11 1998-09-08 Intel Corporation Wrap-around mechanism for memory split-wordline read
JP2003050748A (ja) * 2001-08-03 2003-02-21 Nec Corp バッファメモリ回路
CN102508635A (zh) * 2011-10-19 2012-06-20 中国科学院声学研究所 一种处理器装置及其循环处理方法

Also Published As

Publication number Publication date Type
WO2014002222A1 (ja) 2014-01-03 application
CN104471549A (zh) 2015-03-25 application
US20150046773A1 (en) 2015-02-12 application
DE112012006587T5 (de) 2015-04-02 application
US9465691B2 (en) 2016-10-11 grant
JPWO2014002222A1 (ja) 2016-05-26 application
JP5623677B2 (ja) 2014-11-12 grant

Similar Documents

Publication Publication Date Title
US5903916A (en) Computer memory subsystem and method for performing opportunistic write data transfers during an access latency period within a read or refresh operation
US20070073973A1 (en) Method and apparatus for managing buffers in a data processing system
US7130933B2 (en) Method, system, and program for handling input/output commands
US20110131346A1 (en) Context Processing for Multiple Active Write Commands in a Media Controller Architecture
US5832308A (en) Apparatus for controlling data transfer between external interfaces through buffer memory using a FIFO, an empty signal, and a full signal
US20020083256A1 (en) System and method for increasing the count of outstanding split transactions
US20050253858A1 (en) Memory control system and method in which prefetch buffers are assigned uniquely to multiple burst streams
US20110219195A1 (en) Pre-fetching of data packets
US20150006766A1 (en) Hardware-Assisted DMA Transfer with Dependency
US8856479B2 (en) Implementing storage adapter performance optimization with hardware operations completion coalescence
US8886881B2 (en) Implementing storage adapter performance optimization with parity update footprint mirroring
US8762609B1 (en) System and method for multiengine operation with super descriptor in SAS/SATA controller wherein portion of super-descriptor is executed without intervention of initiator
US20150113214A1 (en) Final level cache system and corresponding methods
US20100191910A1 (en) Apparatus and circuitry for memory-based collection and verification of data integrity information
US20140325013A1 (en) Techniques for Command Validation for Access to a Storage Device by a Remote Client
US7194607B2 (en) Method and apparatus for command translation and enforcement of ordering of commands
US20080222500A1 (en) Data relay apparatus, data relay method and data relay integrated circuit
US7469309B1 (en) Peer-to-peer data transfer method and apparatus with request limits
US20090268736A1 (en) Early header CRC in data response packets with variable gap count
US6820140B2 (en) Method, system, and program for returning data to read requests received over a bus
US20110296129A1 (en) Data transfer device and method of controlling the same
US20120066444A1 (en) Resolution Enhancement of Video Stream Based on Spatial and Temporal Correlation
US20060114921A1 (en) Data processing apparatus and method for handling transactions
US20150199137A1 (en) Embedded multimedia card and method of operating the same
US20110119557A1 (en) Data Transmission Methods and Universal Serial Bus Host Controllers Utilizing the Same

Legal Events

Date Code Title Description
C06 Publication