CN109726147B - 使用数据保护访问带内存储器的设备和方法 - Google Patents
使用数据保护访问带内存储器的设备和方法 Download PDFInfo
- Publication number
- CN109726147B CN109726147B CN201811176645.5A CN201811176645A CN109726147B CN 109726147 B CN109726147 B CN 109726147B CN 201811176645 A CN201811176645 A CN 201811176645A CN 109726147 B CN109726147 B CN 109726147B
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- main memory
- memory
- current
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 301
- 238000000034 method Methods 0.000 title claims description 20
- 230000004044 response Effects 0.000 claims 8
- 230000003936 working memory Effects 0.000 description 15
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 11
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- 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/1068—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 in sector programmable memories, e.g. flash disk
-
- 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
-
- 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/1064—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 in cache or content addressable memories
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/403—Error protection encoding, e.g. using parity or ECC codes
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
一种计算设备包括主存储器、处理器和高速缓冲存储器。该主存储器存储数据和用于检查该数据的错误奇偶校验位,并发送和接收以参考大小的数据和奇偶校验位。该处理器访问该主存储器,并且该高速缓冲存储器高速缓存该数据。如果该处理器请求对当前数据的写入操作,则将该当前数据被存储到该高速缓冲存储器,并且该高速缓冲存储器将存储的当前数据改变为参考大小,并将改变为参考大小的当前数据输出到主存储器。该当前数据的大小小于参考大小。
Description
相关申请的交叉引用
本申请要求在35 U.S.C.§119下于2017年10月30日在韩国知识产权局提交的韩国专利申请第10-2017-0142670号的优先权,其公开内容通过引用整体并入本文。
技术领域
本文描述的本公开的实施例涉及用于访问存储器的计算设备和方法,更具体地,涉及用于访问用于数据保护的带内存储器的计算设备和方法。
背景技术
计算设备可以访问存储器以进行数据处理。计算设备可以使用奇偶校验位(parity)信息,以便在将数据写入存储器或从存储器读取数据时检测数据中发生的错误。例如,计算设备可以通过对于每个32字节数据使用2字节奇偶校验位信息来检查在写入或读取数据时发生的数据错误,并且如果需要可以直接校正错误数据。
当计算设备访问存储器时发生的带宽增加可能导致计算设备的功耗增加。因此,需要在计算设备访问存储器时有效地使用带宽。
发明内容
本公开的实施例提供了一种设备和方法,用于当处理器访问用于数据保护的带内存储器时通过使用高速缓冲存储器最大化地利用存储器带宽。
本发明实施例要解决的技术问题不限于上述技术问题,并且其他技术问题可从以下实施例中推导出来。
根据示例性实施例,计算设备可以包括主存储器、高速缓冲存储器和处理器。主存储器存储数据和奇偶校验位,用于检查数据的错误,并且发送和接收以参考大小的数据和奇偶校验位。处理器访问主存储器。高速缓冲存储器高速缓存数据。如果处理器请求对当前数据的写入操作,则可以将当前数据存储到第一高速缓冲存储器,并且第一高速缓冲存储器可以将存储的当前数据改变为参考大小,并且可以将改变为参考大小的当前数据输出到主存储器。当前数据的大小可以小于该参考大小。
根据示例性实施例,处理器可以包括高速缓冲存储器。高速缓冲存储器可以包括用于高速缓存数据的第一高速缓冲存储器和用于高速缓存用于检查数据的错误的奇偶校验位的第二高速缓冲存储器中的至少一个。第一高速缓冲存储器可以将参考大小的数据输出到主存储器,并且第二高速缓冲存储器可以将参考大小的奇偶校验位输出到主存储器。可以确定参考大小与用于在主存储器处发送和接收数据以及奇偶校验位的大小相同。
根据示例性实施例,由计算设备执行的用于写入当前数据的方法可以包括确定是否将由将要执行当前数据的写入的第一地址所指示的、主存储器上的区域的数据高速缓存到第一高速缓冲存储器中。如果由第一地址所指示的、主存储器上的区域的数据被高速缓存到第一高速缓冲存储器,则该方法包括将当前数据存储到第一高速缓冲存储器并将当前数据改变为参考大小,并将已改变为参考大小的当前数据从第一高速缓冲存储器输出到主存储器。当前数据的大小可以小于参考大小,并且可以确定参考大小与用于在主存储器处发送和接收数据以及奇偶校验位的大小相同。
根据示例性实施例,计算设备包括存储信息的主存储器、高速缓存信息的高速缓冲存储器、以及处理器。处理器以第一大小为第一通信单元在处理器和高速缓冲存储器之间通信数据,并以大于第一大小的第二大小为第二通信单元在高速缓冲存储器和主存储器之间通信数据。
附图说明
通过参考附图详细描述其示例性实施例,本公开的上述和其他目的和特征将变得显而易见。
图1示出了根据实施例的计算设备的框图。
图2示出了根据实施例的计算设备的框图。
图3A示出了根据实施例的在接收当前数据之前的高速缓冲存储器。
图3B示出了根据实施例的在存储接收到的当前数据之后的高速缓冲存储器。
图3C示出了根据实施例的高速缓冲存储器,从该高速缓冲存储器输出包括当前数据的参考大小的数据。
图3D示出了根据实施例的输出所请求的读取数据的高速缓冲存储器。
图4示出了根据实施例的计算设备的示例。
图5示出了根据实施例的在计算设备处对当前数据执行写入操作的方法的流程图。
图6示出了根据实施例的在计算设备处对生成的奇偶校验位执行写入操作的方法的流程图。
图7示出了根据实施例的在计算设备处执行读取操作的方法的流程图。
图8是示出根据实施例的电子系统的示例性配置的框图。
具体实施方式
下面,将详细和清楚地描述本公开的实施例,使得本领域技术人员(以下称为“普通技术人员”)容易地实施本公开。
图1示出根据实施例的计算设备的框图。
计算设备100可以包括处理器120和主存储器160。根据实施例的计算设备100可以是计算机或移动设备。计算设备100可以将数据存储或记录到主存储器160,或者可以从主存储器160读取数据。
计算设备100可以使用奇偶校验位信息来检查数据的错误。根据实施例的计算设备100可以针对特定大小的每个数据生成特定大小的奇偶校验位信息。例如,计算设备100可以对每个32字节数据使用2字节奇偶校验位信息。例如,计算设备100可以针对每个1字节数据使用1比特奇偶校验位信息。下面,为了便于描述,假设计算设备100对每个32字节数据使用2字节奇偶校验位信息用于数据保护。
处理器120可以访问主存储器160。处理器120可以控制计算设备100的总体操作,并且可以执行逻辑操作。根据实施例的处理器120可以是片上系统(system-on-chip,SoC)。根据实施例的处理器120可以是专用集成电路(application specific integratedcircuit,ASIC)、嵌入式处理器、微处理器、硬件控制逻辑、硬件有限状态机(hardwarefinite state machine,FSM)、数字信号处理器(digital signal processor,DSP)或其组合。
主存储器160可以存储数据和奇偶校验位信息。主存储器160可以被用作计算设备100的工作存储器。主存储器160可以包括易失性存储器(诸如动态随机存取存储器(dynamic random access memory,DRAM))、或非易失性存储器(诸如磁性RAM(magneticRAM,MRAM)、相变RAM(phase-change RAM,PRAM)、电阻式RAM(resistive RAM,RRAM)、铁电RAM(ferroelectric RAM,FRAM)等)。然而,本公开可以不限于此。例如,主存储器160可以包括用于存储数据的任何类型的存储器设备。
主存储器160可以存储用于数据和检查数据的错误的奇偶校验位。主存储器160可以包括存储数据的数据区域162和存储奇偶校验位的奇偶校验位区域164。根据实施例的主存储器160可以使用相同的存储器总线来用于发送和接收数据和奇偶校验位。例如,主存储器160可以通过一个通道向外部发送和从外部接收数据和奇偶校验位。
主存储器160可以在向外部发送和从外部接收数据和奇偶校验位时使用特定格式。例如,输入到主存储器160或从主存储器160输出的数据和奇偶校验位的基本大小单元可以对应于32字节或64字节的大小。下面,参考大小可以表示用于主存储器160发送和接收数据和奇偶校验位的基本大小单元。与主存储器160一样,将数据和奇偶校验位存储到相同存储器并通过使用相同的存储器总线发送和接收数据和奇偶校验位的存储器可以被称为“带内存储器”。
下面,为了便于描述,假设主存储器160基于32字节的参考大小向外部发送和从外部接收数据和奇偶校验位。例如,主存储器160可以具有32字节的存储器带宽。
下面,作为处理器120当前写入或读取的数据的“当前数据”可以表示数据(例如,4字节),其大小小于作为主存储器160中使用的参考大小的32字节。
计算设备100可以生成用于检查数据错误的奇偶校验位。主存储器160可以接收数据和奇偶校验位,并且可以基于接收到的奇偶校验位来检查接收到的数据中是否存在错误。计算设备100可以从主存储器160读取数据和奇偶校验位,并且可以基于奇偶校验位检查读取的数据中是否存在错误。可以在纠错码(error-correction coding,ECC)引擎(未示出)中执行为要写入主存储器160的数据生成奇偶校验位或者基于奇偶校验位检查从主存储器160读取的数据的错误的操作。
根据实施例的处理器120可以将要写入主存储器160的32字节数据发送到主存储器160。根据实施例的计算设备100可以生成用于32字节数据的2字节奇偶校验位,并且可以将2字节奇偶校验位发送到主存储器160。主存储器160可以基于接收到的数据和接收到的奇偶校验位来检查接收到的数据中是否存在错误。
根据实施例的处理器120可以将要写入主存储器160的4字节大小的当前数据发送到主存储器160。基于主存储器160上的为执行写入请求所必需的地址信息,根据实施例的计算设备100可以通过使用32字节带宽分别读取存储在对应地址处的32字节数据和与32字节数据相对应的2字节奇偶校验位。处理器120可以基于当前数据校正从主存储器160读取的32字节数据。计算设备100可以为校正的32字节数据生成2字节的奇偶校验位,并且可以基于所生成的2字节奇偶校验位来校正读取的2字节奇偶校验位。计算设备100可以通过使用32字节带宽分别将校正的32字节数据和校正的2字节奇偶校验位写入主存储器160。为了写入4字节数据,根据实施例的计算设备100因为读取32字节数据、读取2字节奇偶校验位、写入校正的32字节数据以及写入生成的2字节奇偶校验位而可以使用32字节带宽四次奇偶校验位奇偶校验位。
图2示出根据实施例的计算设备的框图。
下面,公开了一种实施例,在该实施例中处理器220在对当前数据执行写入或读取操作时通过使用高速缓冲存储器有效地使用带宽。
图2的计算设备200示出了图1的计算设备100的详细实施例。尽管在下面被省略,但是针对图1的计算设备100给出的以上描述可以适用于图2的计算设备200。图2的处理器220和主存储器260可以分别对应于图1的处理器120和主存储器160。
计算设备200可以包括处理器220、高速缓冲存储器240和主存储器260。
高速缓冲存储器240可以高速缓存数据或奇偶校验位。根据实施例的高速缓冲存储器240可以包括用于高速缓存数据的数据高速缓冲存储器242和用于高速缓存奇偶校验位的奇偶校验位高速缓冲存储器244中的至少一个。根据实施例的数据高速缓冲存储器242可以将存储到主存储器260上的数据区域262的数据高速缓存。根据实施例的奇偶校验位高速缓冲存储器244可以将存储到在主存储器260上的奇偶校验位区域264的奇偶校验位高速缓存。
高速缓冲存储器240可以存储从处理器220接收的数据或奇偶校验位。根据实施例,高速缓存可以表示将主存储器260上的数据和奇偶校验位复制和移动到高速缓冲存储器240的操作,以及存储可以表示将从处理器220接收的当前数据写入高速缓冲存储器240的高速缓存空间的操作。
数据高速缓冲存储器242和奇偶校验位高速缓冲存储器244中的每一个可以包括标签信息和多个高速缓存行。标签信息可以指示关于数据被高速缓存的主存储器260的区域的信息。例如,标签信息可以指示主存储器260上的任何区域的数据是否被高速缓存到高速缓冲存储器240。多个高速缓存行中的每一个是用于高速缓存或存储数据或奇偶校验位的空间。根据实施例的数据高速缓冲存储器242和奇偶校验位高速缓冲存储器244中的每一个可以以高速缓存行为单位从主存储器260高速缓存数据或奇偶校验位。
根据实施例的数据高速缓冲存储器242和奇偶校验位高速缓冲存储器244中的每一个可以以32字节为单位高速缓存主存储器260的部分区域的数据(例如,在高速缓存行的大小是32字节的情况下)。根据实施例的数据高速缓冲存储器242和奇偶校验位高速缓冲存储器244中的每一个可以是非易失性存储器。例如,数据高速缓冲存储器242和奇偶校验位高速缓冲存储器244中的每一个可以包括MRAM或静态RAM(SRAM)。
根据实施例的数据高速缓冲存储器242和奇偶校验位高速缓冲存储器244中的每一个可以将以主存储器260使用的参考大小的数据或奇偶校验位输出到主存储器260。例如,在写入操作的情况下,数据高速缓冲存储器242可以存储从处理器220接收的当前数据,并且可以在存储的当前数据被改变为具有参考大小之后将存储的当前数据输出到主存储器260。改变为参考大小的当前数据可以包括存储到数据高速缓冲存储器242的任何其他数据。
高速缓冲存储器240在图2中示出为与处理器22以分开。然而,高速缓冲存储器240可以被包括在处理器220中。例如,高速缓冲存储器240可以是1级(L1)高速缓冲存储器或2级(L2)高速缓冲存储器。
首先,根据实施例,将描述处理器220通过使用高速缓冲存储器240将4字节的当前数据写入主存储器260的操作。
处理器220可以请求从主存储器260的对当前数据的写入操作。根据实施例的处理器220可以出于将当前数据写入主存储器260的目的在访问主存储器260之前访问高速缓冲存储器240。
可以将当前数据存储到数据高速缓冲存储器242的空间,其中高速缓存由将要执行当前数据的写入的地址所指示的、主存储器260上的区域的数据。根据实施例的计算设备200可以确定由将要执行当前数据的写入的地址所指示的、主存储器260上的区域的数据是否被高速缓存到数据高速缓冲存储器242。
可以将由将要执行当前数据或当前奇偶校验位的写入的地址所指示的区域的数据高速缓存到数据高速缓冲存储器242或奇偶校验位高速缓冲存储器244的情况确定为发生命中(hit)的情况。如果发生命中,则将当前数据存储到数据高速缓冲存储器242。存储到数据高速缓冲存储器242的当前数据可以稍后与任何其他数据一起以32字节大小输出到主存储器260。根据实施例,将参照图3A至3C描述将当前数据存储和输出到数据高速缓冲存储器242的过程。
如果数据高速缓冲存储器242中不存在将要执行当前数据的写入的地址所指示的区域的数据,则可以将当前数据存储到主存储器260。然而,根据实施例,放置在主存储器260上的对应地址(即将执行写入的地址)的数据可以被新高速缓存到数据高速缓冲存储器242的空高速缓存行。例如,主存储器260上由将要执行当前数据的写入的地址所指示的区域的数据可以以高速缓存行为单位被高速缓存到数据高速缓冲存储器242。
可以将由将要执行当前数据或当前奇偶校验位的写入的地址所指示的区域的数据或奇偶校验位未被高速缓存到数据高速缓冲存储器242或奇偶校验位高速缓冲存储器244的情况确定为发生未命中的情况。例如,在数据高速缓冲存储器242或奇偶校验位高速缓冲存储器244被初始化的情况下或者在由将要执行写入的地址所指示的、主存储器260的区域的数据或奇偶校验位未被高速缓存的情况下,可能发生未命中。
根据实施例,将描述处理器220通过使用高速缓冲存储器240相对于主存储器260执行4字节的当前数据的读取操作的操作。
处理器220可以请求从主存储器260的对当前数据的读取操作。
即使在读取操作的情况下,处理器220也可以在访问主存储器260之前访问高速缓冲存储器240。如果读取请求的当前数据存在于数据高速缓冲存储器242中,则计算设备200可以从数据高速缓冲存储器242读取请求读取的当前数据。由于是从高速缓冲存储器240而不是从主存储器260输出读取请求的当前数据,因此计算设备200不需要读取奇偶校验位信息。当在数据高速缓冲存储器242中发生命中时读取操作所需的带宽对应于4字节。
如果高速缓冲存储器240中不存在读取请求的当前数据,则处理器220可以访问主存储器260以便读取数据。为了读取要读取的数据的奇偶校验位信息,处理器220可以在访问主存储器260之前访问奇偶校验位高速缓冲存储器244。如果在奇偶校验位高速缓冲存储器244中存在所请求的奇偶校验位,则不需要从奇偶校验位信息读取奇偶校验位信息。也就是说,即使在数据高速缓冲存储器242中发生未命中的情况下,如果在奇偶校验位高速缓冲存储器244中发生命中,则32字节数据的读取和2字节奇偶校验位的读取也被执行。出于这个原因,与4字节的当前数据相关联的读取操作所需的带宽对应于34字节。
图3A示出根据实施例的在接收当前数据之前的高速缓冲存储器。
图3A的数据高速缓冲存储器242示出了在接收当前数据之前的状态。根据实施例的数据高速缓冲存储器242的大小可以是8K字节。根据实施例的数据高速缓冲存储器242可以包括指示主存储器260的任何区域的数据是否被高速缓存的标签信息320,以及对应于用于高速缓存或存储数据的空间的多个高速缓存行(例如,高速缓存行#0 341到高速缓存行#250 345)。多个高速缓存行中的每一个可以具有32字节的大小。也就是说,每个高速缓存行可以具有与用于在主存储器260处向外部发送和从外部接收数据或奇偶校验位的参考大小相同的大小。可以管理标签信息320以对应于每个高速缓存行。例如,标签信息322指的是指示高速缓存行#1 342是否高速缓存主存储器260的任何区域的数据的信息。
根据实施例的数据高速缓冲存储器242的每个高速缓存行可以高速缓存主存储器260的一个区域的数据。在图3A中,标记为“已分配”的高速缓存行(例如,高速缓存行#0341)指的是存在高速缓存数据的高速缓存行,并且标记为“空”的高速缓存行(例如,高速缓存行#2 343和高速缓存行#249 344)表示空高速缓存行。
高速缓存行#1 342可以是由主存储器260的标签信息320所指示的、主存储器260的区域322的数据一起被高速缓存的空间。“EFGH…OPQR”的数据可以被高速缓存到高速缓存行#1 342。高速缓存行#1 342高速缓存的主存储器260的区域被假定包括由将要执行当前数据的写入操作的地址所指示的、主存储器260上的区域的空间。
图3B示出了根据实施例的存储当前数据的状态的高速缓冲存储器。图3A的数据高速缓冲存储器242可以指示紧接在图3A的数据高速缓冲存储器242存储接收到的当前数据之后的状态。
处理器220可以将要存储当前数据的地址的信息与要写入的4字节当前数据“ABCD”一起传送到数据高速缓冲存储器242。当前数据“ABCD”可以被存储到高速缓存由写入当前数据的地址所指示的、主存储器260上的区域的数据所在的空间。
数据高速缓冲存储器242可以通过使用标签信息320来确定是否高速缓存由将要执行写入的地址指示的、主存储器260上的区域的数据。根据实施例,可以确定在数据高速缓冲存储器242的高速缓存行#1 342中存在与在主存储器260上将要执行写入的地址相对应的数据。也就是说,由于由将要执行写入的地址所指示的、主存储器260的区域的数据被高速缓存到高速缓存行#1 342,因此可以确定发生命中。
当前数据“ABCD”可以被存储到高速缓存行#1 342。根据实施例,从存储到高速缓存行#1 342的32字节数据当中的存储在与将要执行写入的地址相对应的位置处的现有数据“EFGH”,可以用“ABCD”代替。要写入的4字节当前数据“ABCD”可以在被传送到主存储器260之前临时存储到数据高速缓冲存储器242。
图3C示出了根据实施例的高速缓冲存储器,从该高速缓冲存储器输出包括当前数据的参考大小的数据。
存储到数据高速缓冲存储器242的当前数据“ABCD”可以被改变为主存储器260中使用的参考大小(例如,32字节)的数据。改变为参考大小的当前数据可以包括存储到数据高速缓冲存储器242的当前数据“ABCD”和其他数据(例如,“OPQR”)。改变为参考大小的当前数据可以被传送到主存储器260。也就是说,4字节当前数据“ABCD”可以与其他数据一起以32字节大小从数据高速缓冲存储器242输出。根据实施例,其他数据可以是在将当前数据被存储到数据高速缓冲存储器242之前存储到数据高速缓冲存储器242的数据,或在当前数据被存储到数据高速缓冲存储器242之后输入并存储到数据高速缓冲存储器242的数据。
根据实施例的数据高速缓冲存储器242可以在不再存在存储空间时将高速缓存行的数据输出到主存储器260。例如,在将当前数据输入到数据高速缓冲存储器242之后,如果输入多条其他数据或者高速缓存来自主存储器260的多条数据,则高速缓存行#2 343和高速缓存行#249 344的状态从“空”改变为“已分配”。
根据实施例的数据高速缓冲存储器242在执行清理(clean)或刷新(flush)操作时,可以将高速缓存行#1 342的数据输出到主存储器260。从数据高速缓冲存储器242输出的高速缓存行#1 342的数据可以被存储到主存储器260的数据区域262。也就是说,当前数据可以被临时存储到高速缓冲存储器240并且可以在之后与其他数据一起以32字节的大小输出。由于输出的32字节数据通过使用存储器总线的整个32字节带宽被发送到主存储器260,因此在带宽方面可以是有效率的。
根据实施例,如果从数据高速缓冲存储器242输出高速缓存行#1 342的数据,则可以生成用于输出32字节数据的2字节奇偶校验位。由此生成的2字节奇偶校验位也可以在被发送到主存储器260之前首先被发送到奇偶校验位高速缓冲存储器244。
通过使用奇偶校验位高速缓冲存储器244将奇偶校验位写入主存储器260的方式与通过使用数据高速缓冲存储器242将数据写入主存储器260的上述方式相同,并且因此,这里将不再重复其详细描述。根据实施例的奇偶校验位高速缓冲存储器244的大小可以是8K字节。奇偶校验位高速缓冲存储器244可以包括用于存储奇偶校验位信息的多个高速缓存行,并且每个高速缓存行的大小可以是32字节。也就是说,奇偶校验位高速缓冲存储器244可以在输出当前奇偶校验位之前将当前奇偶校验位改变为与主存储器260中使用的参考大小(例如,32字节)相同的大小。
参照图3C描述实施例。当数据高速缓冲存储器242执行清除操作时,输出参考大小的数据。然而,仅当数据高速缓冲存储器242已满时,才可以不输出包括在高速缓存行#1342中的当前数据。例如,如果在高速缓存行#1 342中发生命中并且高速缓存行#1 342完全填充有输入到高速缓存行#1 342的当前数据,则即使在数据高速缓冲存储器242中存在空白空间,也可以将高速缓存行#1 342的数据输出到主存储器260。可替换地,如果在高速缓存行#1 342中发生命中并且在输入当前数据之后的下一次迭代中高速缓存行#1 342完全填充有输入到高速缓存行#1 342的其他数据,即使数据高速缓冲存储器242中存在空白空间,也可以将高速缓存行#1 342的数据输出到主存储器260。
并且,根据实施例,当前数据可以被存储到数据高速缓冲存储器242,并且同时,数据高速缓冲存储器242可以仅改变当前数据的格式,并且可以将改变后的格式的当前数据输出到主存储器260。并且,数据高速缓冲存储器242的存储空间可以与奇偶校验位高速缓冲存储器244的存储空间不同,并且可以不同地设计高速缓存行的数量和每个高速缓存行的大小。
图3D示出了根据实施例的输出所请求的读取数据的高速缓冲存储器。
根据实施例的数据高速缓冲存储器242可以从处理器220接收4字节读取数据“ABCD”。如果读取数据“ABCD”存在于数据高速缓冲存储器242中,则4字节数据“ABCD”可以从高速缓冲存储器240输出。例如,如果将由将要执行数据的读取的地址所指示的、主存储器260上的区域的数据高速缓存到数据高速缓冲存储器242的高速缓存行#1 342,则可以从高速缓存行342输出所请求的读取数据。
图4示出根据实施例的计算设备的示例。
图4的计算设备400示出了图2的计算设备200的详细实施例。尽管在下面省略,但是关于图2的计算设备200给出的以上描述可以被应用于图4的计算设备400。图4的处理器420和主存储器460可以分别对应于图2的处理器220和主存储器260。图4的数据高速缓冲存储器440和奇偶校验位高速缓冲存储器442分别对应于图2的数据高速缓冲存储器242和奇偶校验位高速缓冲存储器244。数据高速缓冲存储器440和奇偶校验位高速缓冲存储器442在图4中示出为彼此分开,但是数据高速缓冲存储器440和奇偶校验位高速缓冲存储器442也可以被放置在同一高速缓存层上。
根据实施例的主存储器460可以包括用于存储数据的区域462和用于存储奇偶校验位的区域464。可以将多条数据D0至Dn存储到区域462以存储数据。D0至Dn中的每一个可以表示32字节数据。可以将奇偶校验位P0到P15到奇偶校验位Pn到Pn+15存储到区域464以存储奇偶校验位。奇偶校验位P0到P15到奇偶校验位Pn到Pn+15中的每一个可以表示32字节奇偶校验位,并且32字节奇偶校验位可以包括16个奇偶校验位单元,每个奇偶校验位单元的大小是2字节。
根据实施例的处理器420可以与数据高速缓冲存储器440通信以管理数据。例如,处理器420可以将4字节当前数据发送到数据高速缓冲存储器440,以便执行当前数据的写入操作。并且,处理器420可以从数据高速缓冲存储器440接收当前数据,以便执行当前数据的读取操作。
根据实施例的数据高速缓冲存储器440可以以高速缓存行为单位高速缓存存储到主存储器460的数据区域462的数据。数据高速缓冲存储器440的多个高速缓存行中的每一个可以具有与主存储器460中使用的参考大小(例如,32字节)相同的大小。数据高速缓冲存储器440可以包括指示是否高速缓存主存储器460上的任何区域的数据的标签信息,并且可以包括每个高速缓存行的标签信息。
在写入操作的情况下,数据高速缓冲存储器440可以将包括从处理器420接收的4字节当前数据的32字节数据和存储到数据高速缓冲存储器440的其他数据输出到ECC引擎450。该其他数据可以表示在存储接收到的当前数据之前或之后被存储到相同高速缓存行的数据。根据实施例的数据高速缓冲存储器440可以在执行清理或刷新操作时将包括在高速缓存行中的当前数据发送到ECC引擎450。在读取操作的情况下,如果数据高速缓冲存储器440中存在请求的数据,则数据高速缓冲存储器440可以将所请求的4字节当前数据输出到处理器420。
根据实施例的ECC引擎450可以生成奇偶校验位或者可以基于接收到的奇偶校验位来检查数据的错误。在写入操作的情况下,ECC引擎450可以为从数据高速缓冲存储器440接收的32字节数据(包括4字节当前数据)生成2字节奇偶校验位。在读取操作的情况下,如果在数据高速缓冲存储器440中存在读取请求的4字节当前数据,则可以从数据高速缓冲存储器440而不是主存储器460输出所请求的数据。因此,ECC引擎450可以不执行对读取请求的当前数据的错误检查操作。然而,在从主存储器460输出所请求的数据的情况下(例如,在数据高速缓冲存储器440中发生未命中的情况下),ECC引擎450可以请求用于检查读取数据的错误的奇偶校验位信息。在奇偶校验位高速缓冲存储器442中存在所请求的奇偶校验位的情况下,ECC引擎450可以从奇偶校验位高速缓冲存储器442读取2字节奇偶校验位。然而,在奇偶校验位高速缓冲存储器442中不存在所请求的奇偶校验位的情况下(例如,在奇偶校验位高速缓冲存储器442中发生未命中的情况下),ECC引擎450可以通过使用32字节带宽从主存储器460读取所请求的奇偶校验位。
根据实施例的奇偶校验位高速缓冲存储器442可以以高速缓存行为单位高速缓存存储到主存储器460的奇偶校验位区域464的奇偶校验位。奇偶校验位高速缓冲存储器442和数据高速缓冲存储器440可以以相同的方式操作,除了奇偶校验位高速缓冲存储器442和数据高速缓冲存储器440分别管理奇偶校验位和多条数据以外。例如,在写入操作的情况下,奇偶校验位高速缓冲存储器442可以接收并存储在ECC引擎450中生成的2字节奇偶校验位,并将包括所存储的2字节奇偶校验位和存储到奇偶校验位高速缓冲存储器442的任何其他奇偶校验位的32字节奇偶校验位输出到主存储器460。另一奇偶校验位可以表示在存储当前接收到的2字节奇偶校验位之前或之后存储到相同高速缓存行的奇偶校验位。根据实施例的奇偶校验位高速缓冲存储器442可以在执行清理或刷新操作时将包括当前奇偶校验位的高速缓存行的奇偶校验位信息输出到主存储器460。在读取操作的情况下,如果在奇偶校验位高速缓冲存储器442中存在从ECC引擎450请求的奇偶校验位,则奇偶校验位高速缓冲存储器442可以将所请求的2字节奇偶校验位输出到ECC引擎450。
图5示出了根据实施例的在计算设备处对当前数据执行写入操作的方法的流程图。
在操作S500中,计算设备可以请求对当前数据的写入操作。
在操作S510中,计算设备可以确定数据高速缓冲存储器中是否存在由将要执行当前数据的写入的地址所指示的、主存储器的区域的数据(例如,是否发生命中)。例如,可以参考数据高速缓冲存储器的标签信息来确定是否将由将要执行当前数据的写入的地址所指示的、主存储器的区域的数据高速缓存到数据高速缓冲存储器。计算设备可以基于标签信息确定将存储当前数据的高速缓存行。如果数据高速缓冲存储器中存在由将要执行当前数据的写入的地址所指示的、主存储器的区域的数据,则在操作S540中,将当前数据存储到数据高速缓冲存储器。如果数据高速缓冲存储器中不存在由将要执行当前数据的写入的地址所指示的、主存储器的区域的数据,则可以将当前数据写入主存储器(S520),并且可以生成对于当前数据的奇偶校验位,以及可以将所生成的奇偶校验位写入主存储器(S530)。
在操作S520中,计算设备可以将当前数据写入主存储器。根据实施例,由将要执行当前数据的写入的地址所指示的、主存储器的区域的数据可以被新高速缓存到数据高速缓冲存储器的空高速缓存行。
在操作S530中,计算设备可以将所生成的对于当前数据的奇偶校验位写入主存储器。还可以通过使用奇偶校验位高速缓冲存储器管理奇偶校验位来执行将所生成的奇偶校验位写入主存储器的方式。将参照图6描述使用奇偶校验位高速缓冲存储器将所生成的奇偶校验位写入主存储器的方式。
在操作S540中,计算设备可以将当前数据存储到数据高速缓冲存储器。计算设备可以基于标签信息确定从数据高速缓冲存储器的多个高速缓存行当中要存储当前数据的高速缓存行,并且可以将当前数据存储到所确定的高速缓存行。
在操作S550中,计算设备可以确定是否清理或刷新数据高速缓冲存储器。如果确定不需要清理或刷新数据高速缓冲存储器,则接收到的当前数据可以不被输出到主存储器。如果对数据高速缓冲存储器执行清理或刷新操作,则在操作S560和操作S570中,可以将当前数据输出到主存储器,并且可以生成奇偶校验位。
在操作S560中,计算设备可以将包括当前数据的高速缓存行的数据写入主存储器。根据实施例,数据高速缓冲存储器的高速缓存行的多条数据可以顺序地或并行地被输出到主存储器。在操作S560中,可以在当前数据被输出之前将当前数据改变为参考大小。由于输出到主存储器的每个高速缓存行的数据的大小与主存储器中使用的参考大小(即32字节)相同,因此可以最大限度地利用带宽。
在操作S570中,计算设备可以生成用于从数据高速缓冲存储器输出的参考大小的数据的奇偶校验位,并且可以将所生成的奇偶校验位写入主存储器。还可以通过使用奇偶校验位高速缓冲存储器管理奇偶校验位来执行将所生成的奇偶校验位写入主存储器的方式。将参照图6描述使用奇偶校验位高速缓冲存储器将所生成的奇偶校验位写入主存储器的方式。
图6示出了根据实施例的在计算设备处对生成的奇偶校验位执行写入操作的方法的流程图。
操作S610至操作S650是根据图5的操作S530或操作S570的实施例的详细流程图。然而,操作S530或操作S570不限于图6中所示的流程图。
在操作S600中,计算设备可以请求对于所生成的奇偶校验位的写入操作。
在操作S610中,计算设备可以确定奇偶校验位高速缓冲存储器中是否存在由将要执行所生成的奇偶校验位的写入的地址所指示的、主存储器的区域的奇偶校验位(例如,是否发生命中)。例如,可以参考奇偶校验位高速缓冲存储器的标签信息来确定由将要执行所生成的奇偶校验位的写入的地址所指示的、主存储器的区域的奇偶校验位是否被高速缓存到奇偶校验位高速缓冲存储器。如果奇偶校验位高速缓冲存储器中存在由将要执行所生成的奇偶校验位的写入的地址所指示的、主存储器的区域的奇偶校验位奇偶校验位,则在操作S620中,将所生成的奇偶校验位存储到奇偶校验位高速缓冲存储器。如果奇偶校验位高速缓冲存储器中不存在由所生成的奇偶校验位的地址所指示的主存储器的区域的奇偶校验位,则在操作S650中,将所生成的奇偶校验位写入主存储器。
在操作S620中,计算设备可以将生成的奇偶校验位存储到奇偶校验位高速缓冲存储器。计算设备可以基于标签信息确定从奇偶校验位高速缓冲存储器的多个高速缓存行当中要存储所生成的奇偶校验位的高速缓存行,并且可以将所生成的奇偶校验位存储到所确定的高速缓存行。
在操作S630中,计算设备可以确定是否要清理或刷新奇偶校验位高速缓冲存储器。如果确定不需要清理或刷新奇偶校验位高速缓冲存储器,则由此接收到的所生成的奇偶校验位可以不被输出到主存储器。当对奇偶校验位高速缓冲存储器执行清除或刷新操作时,根据实施例的计算设备前进到操作S640,以将所生成的奇偶校验位输出到主存储器。
在操作S640中,计算设备可以将包括当前奇偶校验位的高速缓存行的奇偶校验位信息写入主存储器。根据实施例,奇偶校验位高速缓冲存储器的高速缓存行的奇偶校验位可以顺序地或并行地被输出到主存储器。在操作S640中,可以在所生成的奇偶校验位被输出之前将所生成的奇偶校验位改变为参考大小。在这种情况下,由于从每个高速缓存行输出的奇偶校验位的大小与在主存储器中使用的参考大小(即32字节)相同,因此可以最大限度地利用带宽。
在操作S650中,计算设备可以将所生成的奇偶校验位写入主存储器。根据实施例,由将要执行所生成的奇偶校验位的写入的地址所指示的、主存储器的区域的奇偶校验位可以被新高速缓存到奇偶校验位高速缓冲存储器的空高速缓存行。
图7示出了根据实施例的在计算设备处执行读取操作的方法的流程图。
在操作S700中,计算设备可以请求对读取数据的读取操作。
在操作S710中,计算设备可以确定数据高速缓冲存储器中是否存在读取数据(例如,是否发生命中)。如果数据高速缓冲存储器中存在读取数据,则在操作S720中,可以从数据高速缓冲存储器输出读取数据。从数据高速缓冲存储器输出的数据的大小为4字节。由于从数据高速缓冲存储器而不是主存储器输出读取数据,因此不需要用于检查读取数据的奇偶校验位信息。如果数据高速缓冲存储器中不存在读取数据,则在操作S730中,计算设备可以访问主存储器。
在操作S730中,计算设备可以访问主存储器以读取该读取数据。为了从主存储器输出所请求的数据,需要32字节带宽。并且,计算设备可以请求奇偶校验位的读取操作,以检查来自主存储器的读取数据的错误。
在操作S740中,计算设备可以确定奇偶校验位高速缓冲存储器中是否存在所请求的奇偶校验位奇偶校验位(例如,是否发生命中)。如果奇偶校验位高速缓冲存储器中存在所请求的奇偶校验位奇偶校验位,则在操作S750,可以从奇偶校验位高速缓冲存储器输出所请求的奇偶校验位。从奇偶校验位高速缓冲存储器输出的奇偶校验位的大小为2字节。如果奇偶校验位高速缓冲存储器中不存在所请求的奇偶校验位,则在操作S760中,计算设备可以访问主存储器。
在操作S760中,计算设备可以从主存储器读取所请求的奇偶校验位。为了从主存储器输出所请求的奇偶校验位,需要32字节带宽。
图8是示出根据实施例的包括计算设备的电子系统的示例性配置的框图。
电子系统1000可以包括主处理器1101、工作存储器1200、存储设备1300、通信块1400、用户接口1500和总线1600。例如,电子系统1000可以是以下电子设备之一:诸如台式计算机、膝上型计算机、平板计算机、智能电话、可穿戴设备、视频游戏机、工作站、服务器和电动车辆。根据实施例的电子系统1000可以包括上面参照图2至图4描述的计算设备中的任何一个。例如,电子系统1000可以包括图2的计算设备200,但不限于此。
主处理器1101可以控制电子系统1000的总体操作。主处理器1101可以处理各种种类的算术运算和/或逻辑运算。为此,主处理器1101可以包括专用逻辑电路(例如,现场可编程门阵列(field programmable gate array,FPGA)或专用集成芯片(applicationspecific integrated chip,ASIC))。例如,主处理器1101可以包括一个或多个处理器核,并且可以用通用处理器、专用处理器或应用处理器来实施。
工作存储器1200可以存储要在电子系统1000的操作中使用的数据。例如,工作存储器1200可以临时存储由主处理器1101处理或将要处理的数据。工作存储器1200可以包括易失性存储器(诸如动态随机存取存储器(DRAM)、同步DRAM(synchronous DRAM,SDRAM)等)和/或非易失性存储器(诸如相变RAM(PRAM)、磁阻式RAM(magneto-resistive RAM,MRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)等)。
根据实施例的工作存储器1200可以用图2的主存储器260来实施以用于数据保护。例如,工作存储器1200可以是带内存储器,在其中用于检查数据错误的数据和奇偶校验位信息被存储到一个存储器。工作存储器1200可以以参考大小向外部发送数据和奇偶校验位以及从外部接收数据和奇偶校验位。例如,工作存储器1200可以以32字节为单位向总线1600发送和从其接收数据和奇偶校验位。
存储设备1300可以包括至少一个存储器设备和控制器。无论电力供应如何,存储设备1300的存储器设备都可以保留数据。例如,存储设备1300可以包括非易失性存储器设备,诸如闪速存储器、PRAM、MRAM、ReRAM或FRAM。例如,存储设备1300可以包括诸如固态驱动器(solid state drive,SSD)、卡存储器或嵌入式存储器的存储介质。
通信块1400可以与电子系统1000的外部设备/系统通信。例如,通信块1400可以支持各种无线通信协议中的至少一种(诸如长期演进(long term evolution,LTE)、微波存取全球互通(worldwide interoperability for microwave access,WiMax)、全球移动通信系统(global system for mobile communication,GSM)、码分多址(code divisionmultiple access,CDMA)、蓝牙、近场通信(near field communication,NFC)、无线保真(wireless fidelity,Wi-Fi)、射频识别(radio frequency identification,RFID))、和/或各种有线通信协议中的至少一种(诸如传输控制协议/因特网协议(transfer controlprotocol/Internet protocol,TCP/IP)、通用串行总线(universal serial bus,USB)和火线)。
用户接口1500可以在用户和电子系统1000之间执行通信调解(mediation)。例如,用户接口1500可以包括输入接口,诸如键盘、鼠标、小键盘、按钮、触摸板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器和振动传感器。例如,用户接口1500可以包括输出接口,诸如液晶显示(liquid crystal display,LCD)设备、发光二极管(light emittingdiode,LED)显示设备、有机LED(organic LED,OLED)显示设备、有源矩阵OLED(activematrix OLED,AMOLED)显示设备、扬声器和马达。
总线1600可以提供电子系统1000的组件之间的通信路径。电子系统1000的组件可以基于总线1600的总线格式彼此交换数据。例如,总线格式可以包括各种接口协议中的一个或多个,诸如USB、小型计算机系统接口(small computer system interface,SCSI)、外围组件快速互连(peripheral component interconnect express,PCIe)、移动PCIe(mobile PCIe,M-PCIe)、高级技术附件(advanced technology attachment,ATA)、并行ATA(parallel ATA,PATA)、串行ATA(serial ATA,SATA)、串行连接SCSI(serial attachedSCSI,SAS)、集成驱动电子设备(integrated drive electronic,IDE)、增强型IDE(enhanced IDE,EIDE)、非易失性存储器快速(nonvolatile memory express,NVMe)和通用闪存(universal flash storage,UFS)。
主处理器1101可以将数据写入工作存储器1200,或者可以从工作存储器1200读取数据。如上面参照图2至图7所述,主处理器1101可以在写入和读取操作中使用高速缓冲存储器1150。根据实施例的高速缓冲存储器1150可以包括数据高速缓冲存储器,其以在工作存储器1200中使用的参考大小输出数据。根据实施例的高速缓冲存储器1150可以包括奇偶校验位高速缓冲存储器,其以在工作存储器1200中使用的参考大小输出奇偶校验位。因此,由于主处理器1101即使在对其大小小于工作存储器1200中使用的参考大小的数据执行写入操作时也最大限度地利用存储器带宽来输入数据和奇偶校验位,所以可以最大限度地防止带宽浪费。高速缓冲存储器1150被示出为包括在主处理器1101中。然而,根据实施例,高速缓冲存储器1150可以被插入在总线1600和工作存储器1200之间。
同时,上述方法可以在计算机可读记录介质中实施为计算机可以读出的程序或代码。计算机可读记录介质可以包括存储数据的所有种类的存储设备。计算机可读记录介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘、光学数据存储设备和载波(诸如通过互联网的数据传输)。并且,在计算机可读记录介质中,可以以分布式方式存储和执行计算机可以读出的程序或代码。
尽管已经参照本公开示例性实施例描述了本公开,但是对于本领域普通技术人员来说显而易见的是,在不脱离权利要求书所阐述的本公开的精神和范围的情况下,可以对其进行各种改变和修改。
Claims (16)
1.一种计算设备,包括:
主存储器,其存储数据和用于检查数据错误的奇偶校验位,并以参考大小发送和接收数据和奇偶校验位;
处理器,其访问所述主存储器;以及
第一高速缓冲存储器,其存储所述主存储器中存储的数据;以及
第二高速缓冲存储器,其存储所述主存储器中存储的奇偶校验位,其中:
响应于所述处理器请求对当前数据的写入操作,所述当前数据被存储到第一高速缓冲存储器,并且第一高速缓冲存储器将所述当前数据的大小改变为所述参考大小,并使用所述参考大小将包括所述当前数据和其他数据的第一数据输出到所述主存储器,
针对第一数据生成的当前奇偶校验位被存储在第二高速缓冲存储器中,并且第二高速缓冲存储器使用所述参考大小将包括所述当前奇偶校验位和其他奇偶校验位的第一奇偶校验位输出到所述主存储器,以及
所述当前数据的大小小于所述参考大小。
2.如权利要求1所述的计算设备,其中,所述当前数据被存储到与要写入所述当前数据的主存储器的地址相对应的第一高速缓冲存储器的空间。
3.如权利要求1所述的计算设备,其中:
第一高速缓冲存储器包括指示所述主存储器的区域的标签信息,以及用于高速缓存数据的多个高速缓存行,并且
多个高速缓存行当中要存储所述当前数据的高速缓存行是基于所述标签信息确定的。
4.如权利要求3所述的计算设备,其中:
所述多个高速缓存行中的每一个高速缓存行的大小为所述参考大小,
存储所述当前数据的高速缓存行的数据被输出到所述主存储器,并且
存储所述当前数据的高速缓存行的数据包括在存储所述当前数据之前和之后输入的数据。
5.如权利要求1所述的计算设备,其中,响应于执行第一高速缓冲存储器的清理或刷新操作,使用所述参考大小将所述当前数据和其他数据输出到所述主存储器。
6.如权利要求1所述的计算设备,其中:
响应于确定与要写入对于第一数据生成的当前奇偶校验位的主存储器的地址相对应的先前奇偶校验位被存储在第二高速缓冲存储器中,对于所述第一数据生成的当前奇偶校验位被存储在第二高速缓冲存储器中,并且第二高速缓冲存储器将对于所述第一数据生成的奇偶校验位的大小改变为所述参考大小,并使用所述参考大小将所述当前奇偶校验位和所述其他奇偶校验位输出到所述主存储器。
7.如权利要求1所述的计算设备,其中,响应于所述处理器请求对读取数据的读取操作,从第一高速缓冲存储器输出所述读取数据。
8.如权利要求7所述的计算设备,其中:
用于检查所述读取数据的错误的奇偶校验位是从第二高速缓冲存储器输出的。
9.一种处理器,包括:
高速缓冲存储器,所述高速缓冲存储器包括存储主存储器中存储的数据的第一高速缓冲存储器,或存储主存储器中存储的用于检查数据的错误的奇偶校验位的第二高速缓冲存储器,其中:
响应于所述处理器请求对当前数据的写入操作,所述当前数据被存储到第一高速缓冲存储器,并且第一高速缓冲存储器将所述当前数据的大小改变为参考大小并使用所述参考大小将包括所述当前数据和其他数据的第一数据输出到所述主存储器,
针对第一数据生成的当前奇偶校验位被存储在第二高速缓冲存储器中,并且第二高速缓冲存储器使用所述参考大小将包括所述当前奇偶校验位和其他奇偶校验位的第一奇偶校验位输出到所述主存储器,并且
所述当前数据的大小小于所述参考大小,以及所述参考大小是用于在所述主存储器处发送和接收数据和奇偶校验位的大小。
10.如权利要求9所述的处理器,其中,所述当前数据被存储到与要写入所述当前数据的主存储器的地址相对应的第一高速缓冲存储器的空间。
11.如权利要求9所述的处理器,其中:
第一高速缓冲存储器包括指示所述主存储器的区域的标签信息,以及用于存储数据的多个高速缓存行,
第一高速缓冲存储器基于所述标签信息确定多个高速缓存行当中要存储所述当前数据的高速缓存行,并将所述高速缓存行的数据输出到所述主存储器,并且
所述多个高速缓存行中的每一个高速缓存行的大小是所述参考大小。
12.如权利要求9所述的处理器,其中:
第二高速缓冲存储器包括指示所述主存储器的区域的标签信息,以及用于存储奇偶校验位的多个高速缓存行,
第二高速缓冲存储器基于所述标签信息确定在多个高速缓存行当中要存储针对所述当前数据生成的奇偶校验位的高速缓存行,并使用所述参考大小将所述高速缓存行的奇偶校验位输出到所述主存储器,并且
所述多个高速缓存行中的每一个高速缓存行的大小是所述参考大小。
13.如权利要求9所述的处理器,其中,当执行清理或刷新操作时,第一高速缓冲存储器和第二高速缓冲存储器分别将所述参考大小的数据和所述参考大小的奇偶校验位输出到所述主存储器。
14.一种由计算设备执行的用于将当前数据写入主存储器的方法,所述方法包括:
确定与要写入所述当前数据的主存储器的地址相对应的先前数据是否被存储到第一高速缓冲存储器;
响应于确定所述先前数据被存储到第一高速缓冲存储器,将所述当前数据存储到第一高速缓冲存储器;
将所述当前数据的大小改变为参考大小,并使用所述参考大小将包括所述当前数据和其他数据的第一数据从第一高速缓冲存储器输出到所述主存储器;
针对第一数据生成当前奇偶校验位;
将所述当前奇偶校验位存储在第二高速缓冲存储器中;
第二高速缓冲存储器使用所述参考大小将包括所述当前奇偶校验位和其他奇偶校验位的第一奇偶校验位输出到所述主存储器,其中
所述当前数据的大小小于所述参考大小,并且所述参考大小是用于在所述主存储器处发送和接收数据和奇偶校验位的大小。
15.如权利要求14所述的方法,其中,将所述当前数据的大小改变为所述参考大小并使用所述参考大小将包括所述当前数据和其他数据的第一数据从第一高速缓冲存储器输出到所述主存储器包括:
确定是否执行第一高速缓冲存储器的清理或刷新操作;以及
响应于确定执行第一高速缓冲存储器的清理或刷新操作,将存储所述当前数据的高速缓存行的数据写入所述主存储器。
16.如权利要求15所述的方法,其中,将所述第一奇偶校验位输出到所述主存储器包括:
确定与要写入对于所述第一数据的当前奇偶校验位的主存储器的第二地址相对应的先前奇偶校验位是否被存储在第二高速缓冲存储器中;
响应于确定所述先前奇偶校验位被存储在第二高速缓冲存储器中,将所述当前奇偶校验位存储到第二高速缓冲存储器;以及
将所述当前奇偶校验位的大小改变为所述参考大小,并使用所述参考大小将所述第一奇偶校验位输出到所述主存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170142670A KR102490104B1 (ko) | 2017-10-30 | 2017-10-30 | 데이터 보호를 사용하는 인-밴드 메모리에 액세스하기 위한 장치 및 방법 |
KR10-2017-0142670 | 2017-10-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109726147A CN109726147A (zh) | 2019-05-07 |
CN109726147B true CN109726147B (zh) | 2024-06-18 |
Family
ID=66138012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811176645.5A Active CN109726147B (zh) | 2017-10-30 | 2018-10-10 | 使用数据保护访问带内存储器的设备和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10783033B2 (zh) |
JP (1) | JP7430482B2 (zh) |
KR (1) | KR102490104B1 (zh) |
CN (1) | CN109726147B (zh) |
DE (1) | DE102018121994A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11055176B1 (en) | 2020-04-24 | 2021-07-06 | Western Digital Technologies, Inc. | Storage devices hiding parity swapping behavior |
US11194494B2 (en) * | 2020-04-24 | 2021-12-07 | Western Digital Technologies, Inc. | Storage devices hiding parity swapping behavior |
TWI755739B (zh) | 2020-05-26 | 2022-02-21 | 慧榮科技股份有限公司 | 記憶體控制器與資料處理方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008158779A (ja) * | 2006-12-22 | 2008-07-10 | Toshiba Corp | 情報処理装置、ecc制御装置およびecc制御方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5341487A (en) | 1991-12-20 | 1994-08-23 | International Business Machines Corp. | Personal computer having memory system with write-through cache and pipelined snoop cycles |
US5572660A (en) | 1993-10-27 | 1996-11-05 | Dell Usa, L.P. | System and method for selective write-back caching within a disk array subsystem |
US6295582B1 (en) | 1999-01-15 | 2001-09-25 | Hewlett Packard Company | System and method for managing data in an asynchronous I/O cache memory to maintain a predetermined amount of storage space that is readily available |
US6496905B1 (en) | 1999-10-01 | 2002-12-17 | Hitachi, Ltd. | Write buffer with burst capability |
US6804799B2 (en) | 2001-06-26 | 2004-10-12 | Advanced Micro Devices, Inc. | Using type bits to track storage of ECC and predecode bits in a level two cache |
JP4933211B2 (ja) | 2006-10-10 | 2012-05-16 | 株式会社日立製作所 | ストレージ装置、制御装置及び制御方法 |
US8549222B1 (en) | 2008-02-12 | 2013-10-01 | Netapp, Inc. | Cache-based storage system architecture |
TW201015321A (en) | 2008-09-25 | 2010-04-16 | Panasonic Corp | Buffer memory device, memory system and data trnsfer method |
KR100998929B1 (ko) * | 2009-01-23 | 2010-12-09 | 한국과학기술원 | 캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법 |
JP5482197B2 (ja) * | 2009-12-25 | 2014-04-23 | 富士通株式会社 | 演算処理装置、情報処理装置及びキャッシュメモリ制御方法 |
JP5493954B2 (ja) * | 2010-02-10 | 2014-05-14 | 富士通株式会社 | キャッシュシステム |
US9189329B1 (en) | 2011-10-13 | 2015-11-17 | Marvell International Ltd. | Generating error correcting code (ECC) data using an ECC corresponding to an identified ECC protection level |
KR101888074B1 (ko) * | 2012-01-09 | 2018-08-13 | 삼성전자주식회사 | 저장 장치 및 불휘발성 메모리 장치, 그리고 그것의 동작 방법 |
WO2013132806A1 (ja) | 2012-03-06 | 2013-09-12 | 日本電気株式会社 | 不揮発性論理集積回路と不揮発性レジスタの誤りビットの訂正方法 |
KR102025340B1 (ko) * | 2012-11-27 | 2019-09-25 | 삼성전자 주식회사 | 불휘발성 메모리를 포함하는 반도체 메모리 장치, 이를 포함하는 캐쉬 메모리 및 컴퓨터 시스템 |
US9092336B2 (en) | 2013-03-15 | 2015-07-28 | Intelligent Intellectual Property Holdings 2 Llc | Write admittance policy for a memory cache |
US9110809B2 (en) | 2013-07-03 | 2015-08-18 | Nvidia Corporation | Reducing memory traffic in DRAM ECC mode |
US20150026407A1 (en) * | 2013-07-19 | 2015-01-22 | Advanced Micro Devices, Inc. | Size adjusting caches based on processor power mode |
KR102067040B1 (ko) * | 2014-04-23 | 2020-01-16 | 한국전자통신연구원 | 고장 방지 기능을 갖는 캐시 제어 장치 및 동작 방법 |
JP6115740B1 (ja) | 2015-12-17 | 2017-04-19 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
US10115444B1 (en) * | 2017-08-09 | 2018-10-30 | Qualcomm Incorporated | Data bit inversion tracking in cache memory to reduce data bits written for write operations |
-
2017
- 2017-10-30 KR KR1020170142670A patent/KR102490104B1/ko active IP Right Grant
-
2018
- 2018-05-16 US US15/981,429 patent/US10783033B2/en active Active
- 2018-09-10 DE DE102018121994.6A patent/DE102018121994A1/de active Pending
- 2018-10-10 CN CN201811176645.5A patent/CN109726147B/zh active Active
- 2018-10-15 JP JP2018194291A patent/JP7430482B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008158779A (ja) * | 2006-12-22 | 2008-07-10 | Toshiba Corp | 情報処理装置、ecc制御装置およびecc制御方法 |
Also Published As
Publication number | Publication date |
---|---|
KR102490104B1 (ko) | 2023-01-19 |
CN109726147A (zh) | 2019-05-07 |
DE102018121994A1 (de) | 2019-05-02 |
KR20190048121A (ko) | 2019-05-09 |
JP2019083005A (ja) | 2019-05-30 |
JP7430482B2 (ja) | 2024-02-13 |
US20190129793A1 (en) | 2019-05-02 |
US10783033B2 (en) | 2020-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108804023B (zh) | 数据存储装置及其操作方法 | |
CN110032332B (zh) | 存储设备和包括存储设备的电子设备 | |
EP3436953B1 (en) | Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device | |
US11269765B2 (en) | Operating method of controller and memory system | |
US20200264973A1 (en) | Method and apparatus for managing map data in memory system | |
CN109726147B (zh) | 使用数据保护访问带内存储器的设备和方法 | |
KR20200132047A (ko) | 메모리 시스템에서 맵 데이터를 전송하는 방법 및 장치 | |
KR20200100956A (ko) | 메모리 시스템의 맵 데이터 관리 방법 및 장치 | |
US10635347B2 (en) | Memory system and operating method thereof | |
KR20180092715A (ko) | 동작들의 횟수에 기초하여 복제된 데이터를 관리하는 스토리지 장치 | |
US10684953B2 (en) | Data storage apparatus capable of varying map cache buffer size | |
US20150106573A1 (en) | Data processing system | |
US20190243775A1 (en) | Data storage device and operating method thereof | |
CN110874328B (zh) | 控制器及其操作方法 | |
KR20190106005A (ko) | 메모리 시스템, 그것의 동작 방법 및 전자 장치 | |
US20200073805A1 (en) | Controller and operation method thereof | |
KR20210011176A (ko) | 메모리 시스템의 액세스 동작 방법 및 장치 | |
KR102623061B1 (ko) | 데이터베이스에서 이터레이터 연산을 수행하기 위한 장치 | |
US20240045806A1 (en) | Storage device, electronic device including the same, and operating method thereof | |
US11941246B2 (en) | Memory system, data processing system including the same, and operating method thereof | |
US11657000B2 (en) | Controller and memory system including the same | |
US20210026782A1 (en) | Data storage apparatus, operating method thereof, and controller therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |