CN108897701B - cache存储装置 - Google Patents
cache存储装置 Download PDFInfo
- Publication number
- CN108897701B CN108897701B CN201810634621.3A CN201810634621A CN108897701B CN 108897701 B CN108897701 B CN 108897701B CN 201810634621 A CN201810634621 A CN 201810634621A CN 108897701 B CN108897701 B CN 108897701B
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- instruction
- buffer
- physical memory
- 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
Images
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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及一种cache存储装置。cache存储装置包括:多个内核、一个cache存储器以及物理内存;各内核分别与cache存储器连接;cache存储器与物理内存以组相联映射关系相连。本方案中,多个内核通过同一个cache存储器连接与物理内存连接,多个内核形成统一的高速缓冲存储器,无需区分本内核的cache存储器和其他内核cache存储器,无需设计一致性协议保证cache存储器之间的同步性,减少数据一致性相关的信息访问与同步的通信,从而减少通信阻塞,提高cache存储器的工作效率。
Description
技术领域
本申请涉及集成电路技术领域,特别是涉及一种cache存储架构。
背景技术
为了解决中央处理器操作速度与大容量的物理主内存读写速度不匹配的问题,通常在中央处理器以及大容量物理主内存间设置高速缓存存储器(cache)。
cache存储器一般由三部分组成内容缓存器(高速缓存中用作指令内容或数据内容存储的随机访问器件)、标签缓存器(高速缓存中用作指令标签或数据标签存储的随机访问器件)以及管理电路。内容缓存器缓存物理内存的指令或数据内容,可以分为数据内容缓存器和指令内容缓存器;标签缓存器记录了对应内容缓存器的主内存地址及其他状态信息,可以分为数据标签缓存器以及指令标签缓存器;管理电路用于接收内核的地址请求,管理内容缓存器、标签缓存器与物理内存进行通信等。cache存储器的管理一般以缓存行(cache line)为最小单位,当cache接收到处理器的地址请求后,访问对应的标签缓存器判断 cache line是否在cache中,如果命中(地址请求的数据内容在cache中)则从内容缓存器里取出对应的物理内存的数据;如果丢失(地址请求的数据内容不在 cache中)则从大容量物理主内存中取回数据并放置到内容缓存器中,改写对应的标签缓存器记录下当前内容缓存器的缓存状态。
传统的多内核处理器的存储层次结构中,每个内核通过自身的cache存储器单独读写物理内存,为了避免发生数据冲突往往需要引入一致性协议以保证多个cache存储器间的数据的同步性,但是,引入一致性协议的同时会造成cache 存储器之间复杂的信息访问与同步,在数据读写过程中数据地址冲突时,cache 存储器间的cache line的来回搬运会造成通信阻塞,导致cache存储器的工作效率降低,难以匹配处理器的操作速度。
发明内容
基于此,有必要针对上述由于cache存储器之间一致性相关的信息访问与同步,在数据读写过程中数据地址冲突时造成cache存储器间的cache line的来回搬运的阻塞,导致cache存储器的工作效率降低的技术问题,提供一种cache存储架构。
一种cache存储架构,包括:多个内核、一个cache存储器以及物理内存;各所述内核分别与所述cache存储器连接;所述cache存储器与所述物理内存以组相联映射关系相连。
在其中一个实施例中,cache存储架构还包括与所述内核数量相等的指令读请求接收模块,各所述内核通过各自对应的指令读请求接收模块与所述cache 存储器连接;其中,每个所述指令读请求接收模块分别用于:
接收所连接的内核发送的指令读请求,并获取所述指令读请求中的第一物理内存地址;
根据所述第一物理内存地址获取指令标签缓存器的缓存地址以及指令内容缓存器的缓存地址;
根据所述指令标签缓存器的缓存地址以及所述指令内容缓存器的缓存地址并行读取所述指令标签缓存器中的数据信息以及所述指令内容缓存器中的指令数据,其中,所述指令标签缓存器中的数据信息包括对应指令内容缓存器的物理内存地址以及状态信息;
在所述指令标签缓存器中对应指令内容缓存器的物理内存地址与所述第一物理内存地址一致,且所述指令标签缓存器中的状态信息为第一状态时,将所述指令内容缓存器中的指令数据返回至所连接的内核中。
在其中一个实施例中,每个所述指令读请求接收模块还分别用于:
在所述指令标签缓存器中对应指令内容缓存器的物理内存地址与所述第一物理内存地址不一致,或所述指令标签缓存器中的状态信息为第二状态时,从物理内存内读取对应的指令数据保存到所述指令内容缓存器中,并更新所述指令标签缓存器中的数据信息;
将所述指令内容缓存器中的指令数据返回至所连接的内核中。
在其中一个实施例中,每个所述指令读请求接收模块还分别用于:
在所述内核无指令跳转时,累加指令读请求中的物理内存地址获得第二物理内存地址;
将所述第二物理内存地址作为第一物理内存地址,执行根据所述第一物理内存地址获取指令标签缓存器的缓存地址以及指令内容缓存器的缓存地址,并并行读取所述指令标签缓存器中的数据信息以及所述指令内容缓存器中的指令数据。
在其中一个实施例中,cache存储架构还包括与所述内核数量相等的数据读请求接收模块,各所述内核通过各自对应的数据读请求接收模块与所述cache 存储器连接;其中,每个所述数据读请求接收模块分别用于:
接收所连接的内核发送的数据读请求,并获取所述数据读请求中的第三物理内存地址;
根据所述第三物理内存地址获取数据标签缓存器的缓存地址以及数据内容缓存器的缓存地址;
根据所述数据标签缓存器的缓存地址以及所述数据内容缓存器的缓存地址并行读取所述数据标签缓存器中的数据信息以及所述数据内容缓存器中的数据信息,其中,所述数据标签缓存器中的数据信息包括对应数据内容缓存器的物理内存地址以及状态信息;
在所述数据标签缓存器中对应数据内容缓存器的物理内存地址与第三物理内存地址一致,且所述数据标签缓存器中的状态信息为第一状态时,将所述数据内容缓存器中的数据信息返回至所连接的内核中。
在其中一个实施例中,每个所述数据读请求接收模块还分别用于:
在所述数据标签缓存器中对应数据内容缓存器的地址信息与第三物理内存地址不一致,或所述数据标签缓存器中的状态信息为第二状态时,从物理主内存内读取对应的数据信息保存到所述数据内容缓存器中,并更新所述数据标签缓存器中的数据信息;
将所述数据内容缓存器中的数据信息返回至所连接的内核中。
在其中一个实施例中,cache存储架构还包括于所述内核数量相等的数据写请求接收模块,各所述内核通过各自对应的数据写请求接收模块与所述cache 存储器连接;其中,每个所述数据写请求接收模块分别用于:
接收所连接的内核发送的数据写请求,并获取所述数据写请求中的第四物理内存地址;
根据所述第四物理内存地址获取数据标签缓存器的缓存地址;
根据所述数据标签缓存器的缓存地址读取所述数据标签缓存器中的数据信息,其中,所述数据标签缓存器中的数据信息包括对应数据内容缓存器的物理内存地址以及状态信息;
在所述数据标签缓存器中对应数据内容缓存器的物理内存地址与所述第四物理内存地址一致,且所述数据标签缓存器中的状态信息为第一状态时,根据所述数据标签缓存器中对应数据内容缓存器的物理内存地址将待写数据保存至对应数据内容缓存器中,并更新所述数据标签缓存器的状态信息。
在其中一个实施例中,每个所述数据写请求接收模块还分别用于:
在所述数据标签缓存器中对应数据内容缓存器的物理内存地址与所述第四物理内存地址不一致,或所述数据标签缓存器中的状态信息为第二状态时,将所述数据标签缓存器中对应数据内容缓存器中的数据信息同步至物理内存中;
将所述待写数据保存至所述数据标签缓存器的对应数据内容缓存器中。
在其中一个实施例中,cache存储架构,还包括内存访问接口;所述cache 存储器通过所述内存访问接口与所述物理内存连接。
在其中一个实施例中,所述指令标签缓存器、所述指令内容缓存器、所述数据标签缓存器或所述数据内容缓存器的数量不大于所述内核的指令及数据请求的总线数目之和。
上述cache存储架构,多个内核通过同一个cache存储器连接与大容量物理主内存连接,多个内核之间形成统一的高速缓冲存储器,无需区分本内核的cache 存储器和其他内核cache存储器,无需设计一致性协议保证cache存储器之间的同步性性,有效减少数据一致性相关的信息访问与同步的通信,从而减少通信阻塞,提高cache存储器的工作效率。
附图说明
图1为本发明一个实施中cache存储架构的结构示意图;
图2为本发明另一个实施中cache存储架构的结构示意图;
图3为本发明另一个实施中cache存储架构的结构示意图;
图4为本发明一个实施例中指令读请求接收模块进行指令读请求处理的流程图;
图5为本发明另一个实施中cache存储架构的结构示意图;
图6为本发明一个实施例中数据读请求接收模块进行数据读请求处理的流程图;
图7为本发明另一个实施中cache存储架构的结构示意图;
图8为本发明一个实施例中数据写请求接收模块进行数据读请求处理的流程图;
图9为本发明另一个实施中cache存储架构的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参见图1,图1为本发明一个实施中cache存储架构的结构示意图;本实施例中,cache存储架构包括:多个内核、一个cache存储器以及物理内存;各内核分别与cache存储器连接;cache存储器与物理内存以组相联映射关系相连。
本实施例中,cache存储器一般由三部分组成内容缓存器、标签缓存器以及管理电路。内容缓存器包括指令内容缓存器以及数据内容缓存器,标签缓存器包括指令标签缓存器以及数据标签缓存器。物理主内存可以由一个物理主内存组成,也可以由多个物理主内存组成。多个内核通过一个cache存储器连接与大容量物理主内存连接,形成统一的高速缓冲存储器,无需区分本内核的cache 存储器和其他内核cache存储器,无需设计一致性协议保证cache存储器之间的同步性性,有效减少数据一致性相关的信息访问与同步的通信,从而减少通信阻塞,提高cache存储器的工作效率,同时,由于cache存储架构形成统一的高速缓冲存储器,只需要一套标签缓存器、内容缓存器以及管理电路即可完成对多内核系统的支持,无需设计复杂的一致性协议,减少额外硬件开销以及设计成本。
在其中一个实施例中,指令标签缓存器、指令内容缓存器、数据标签缓存器或数据内容缓存器的数量不大于所述内核的指令及数据请求的总线数目之和。
本实施中,在内核带宽要求较低时,指令标签缓存器、指令内容缓存器、数据标签缓存器或数据内容缓存器的数量小于或等于内核的指令请求总线数量以及数据请求总线数量的总和,实现降低成本。
参见图2,图2为本发明另一个实施中cache存储架构的结构示意图;本实施例中,cache存储架构还包括内存访问接口;cache存储器通过内存访问接口与大容量物理主内存连接。
本实施例中,由于多个内核通过一个cache存储器连接与大容量物理主内存连接,形成统一的高速缓冲存储器,cache存储架构只需要一个内存访问接口,有效减少硬件开销,节省成本。
参见图3,图3为本发明另一个实施中cache存储架构的结构示意图;本实施例中,cache存储架构还包括与内核数量相等的指令读请求接收模块,各内核通过各自对应的指令读请求接收模块与cache存储器连接;其中,每个指令读请求接收模块分别用于:接收所连接的内核发送的指令读请求,并获取指令读请求中的第一物理内存地址;根据第一物理内存地址获取指令标签缓存器的缓存地址以及指令内容缓存器的缓存地址;根据指令标签缓存器的缓存地址以及指令内容缓存器的缓存地址并行读取指令标签缓存器中的数据信息以及指令内容缓存器中的指令数据,其中,指令标签缓存器中的数据信息包括对应指令内容缓存器的物理内存地址以及状态信息;在指令标签缓存器中对应指令内容缓存器的物理内存地址与第一物理内存地址一致,且指令标签缓存器中的状态信息为第一状态时,将指令内容缓存器中的指令数据返回至所连接的内核中。
本实施中,状态信息的第一状态可以指有效状态,即内容缓存器内容缓存器的数据可用;对每一个内核设置一个指令读请求接收模块,内核通过指令读请求接收模块与cache存储器连接,指令读请求接收模块针对内核常用的指令读请求进行处理。在处理指令读请求时,指令读请求接收模块接收到内核发送的第一物理内存地址,可以由第一物理内存地址根据cache组相联结构解析出指令标签缓存器的地址信息以及指令内容缓存器的缓存地址信息,然后同时访问指令标签缓存器以及指令内容缓存器,根据指令标签缓存器中的数据信息决定内容缓存器中的指令数据是否可用,其中若指令标签缓存器中记录的对应指令内容缓存器的物理内存地址与内核发送的第一物理内存地址相同,且指令标签缓存器中记录的状态信息为第一状态,则指令内容缓存器中的指令数据可用,将访问指令内容缓存器获得的指令数据返回至内核中,有效减少串行地先读取指令标签缓存器,再根据指令标签缓存器中的状态信息读取内容缓存器中的指令数据的时间。
进一步的,在其中一个实施例中,每个指令读请求接收模块还分别用于:在指令标签缓存器中对应指令内容缓存器的物理内存地址与第一物理内存地址不一致,或指令标签缓存器中的状态信息为第二状态时,从物理内存内读取对应的指令数据保存到指令内容缓存器中,并更新指令标签缓存器中的数据信息;将指令内容缓存器中的指令数据返回至所连接的内核中。
本实施例中,状态信息的第二状态可以指无效状态,即内容缓存器的数据不可用;若指令标签缓存器中记录的对应指令内容缓存器的物理内存地址与内核发送的第一物理内存地址不同,或者标签缓存器中记录的状态信息为第二状态,即指令读请求接收模块访问指令标签缓存器中的结果为指令内容缓存器中的指令数据不可用时,cache存储器从第一物理内存地址中读取对应的指令数据保存到指令内容缓存器中,并更新指令标签缓存器的数据信息,然后将指令内容缓存器中更新后的指令数据返回至内核中。通过同步cache存储器与物理内存的指令数据,以便后续本内核或者其他内核读取该缓存。
在其中一个实施例中,每个指令读请求接收模块还分别用于:在内核无指令跳转时,累加指令读请求中的物理内存地址获得第二物理内存地址;将第二物理内存地址作为第一物理内存地址,执行根据第一物理内存地址获取指令标签缓存器的缓存地址以及指令内容缓存器的缓存地址,并并行读取指令标签缓存器中的数据信息以及指令内容缓存器中的指令数据。
本实施例中,根据指令顺序执行的特点,在内核因为无指令跳转而无新的主内存地址请求时,累加之前从内核得到的物理内存地址,根据累加得到的新的物理内存地址解析出新的指令标签缓存器的缓存地址以及指令内容缓存器的缓存地址,继续并行读取缓存地址对应指令标签缓存器中的数据信息以及指令内容缓存器中的指令数据,有效减小标签缓存器的访问压力。针对本实施例,由于指令标签缓存器只在内核发生指令跳转时才会被指令读请求接收模块读取,所以带宽使用率较低,即使多内核同时发生指令请求,用单个指令标签缓存器也可以满足使用需求,节省设计成本。
参见图4,图4为本发明一个实施例中指令读请求接收模块进行指令读请求处理的流程图;指令读请求处理包括以下步骤:
步骤S410:接收所连接的内核发送的指令读请求,并获取指令读请求中的第一物理内存地址。
步骤S420:根据第一物理内存地址获取指令标签缓存器的缓存地址以及指令内容缓存器的缓存地址。
步骤S430:根据指令标签缓存器的缓存地址以及指令内容缓存器的缓存地址并行读取指令标签缓存器中的数据信息以及指令内容缓存器中的指令数据,其中,指令标签缓存器中的数据信息包括对应指令内容缓存器的物理内存地址以及状态信息。
步骤S440:根据指令标签缓存器中的数据信息以及第一物理内存地址,判断指令内容缓存器中的指令数据是否可用;若指令标签缓存器中对应指令内容缓存器的物理内存地址与第一物理内存地址一致,且指令标签缓存器中的状态信息为第一状态,则指令内容缓存器中的指令数据可用,跳转至步骤S460;若指令标签缓存器中对应指令内容缓存器的物理内存地址与第一物理内存地址不一致,或指令标签缓存器中的状态信息为第二状态,则指令内容缓存器中的指令数据不可用,跳转至步骤S450。
步骤S450:从物理内存内读取对应的指令数据保存到指令内容缓存器中,并更新指令标签缓存器的数据信息。
步骤S460:将指令内容缓存器的指令数据返回至所连接的内核中。
步骤S470:判断内核是否发生指令跳转,若地址请求无跳转,累加指令读请求中的物理内存地址获得第二物理内存地址,将第二物理内存地址作为第一物理内存地址,跳转至步骤S420;若地址请求有跳转,跳转至步骤S410。
本实施例是内核的指令读请求处理的处理过程,对于多内核指令读请求并发的支持,只需要增加cache存储器中指令内容缓存器、指令标签缓存器的带宽即可满足使用要求,有效减少寻址过程中地址冲突后cache line的搬运阻塞,进一步的,由于指令标签缓存器只在内核发生指令跳转或内核顺序执行到下一个 cache line时才会被读取,所以带宽使用率较低,即使多内核同时发生指令请求,用单个指令标签缓存器也可以满足使用需求,可通过使用单指令标签缓存器以支持多个内核指令请求,大大节省成本。
参见图5,图5为本发明另一个实施中cache存储架构的结构示意图;本实施例中,在其中一个实施例中,cache存储架构还包括与内核数量相等的数据读请求接收模块,各内核通过各自对应的数据读请求接收模块与cache存储器连接;其中,每个数据读请求接收模块分别用于:接收所连接的内核发送的数据读请求,并获取数据读请求中的第三物理内存地址;根据第三物理内存地址获取数据标签缓存器的缓存地址以及数据内容缓存器的缓存地址;根据数据标签缓存器的缓存地址以及数据内容缓存器的缓存地址并行读取数据标签缓存器中的数据信息以及数据内容缓存器中的数据信息,其中,数据标签缓存器中的数据信息包括对应数据内容缓存器的物理内存地址以及状态信息;在数据标签缓存器中对应数据内容缓存器的物理内存地址与第三物理内存地址一致,且数据标签缓存器中的状态信息为第一状态时,将数据内容缓存器中的数据信息返回至所连接的内核中。
本实施中,状态信息的第一状态可以指有效状态,即内容缓存器的数据可用;对每一个内核设置一个数据读请求接收模块,内核通过数据读请求接收模块与cache存储器连接,数据读请求接收模块针对内核常用的数据读请求进行处理。在处理数据读请求时,数据读请求接收模块接收到内核发送的第三物理内存地址,可以由第三物理内存地址根据cache组相联结构解析出包括数据标签缓存器的地址信息以及数据内容缓存器的缓存地址信息,然后同时访问数据标签缓存器以及数据内容缓存器,根据数据标签缓存器中的数据信息决定内容缓存器中的数据信息是否可用;若数据标签缓存器中记录的对应数据内容缓存器的物理内存地址与内核发送的第三物理内存地址相同,且数据标签缓存器中记录的状态信息为第一状态,则数据内容缓存器中的数据信息可用,将访问数据内容缓存器获得的数据信息返回至内核中,有效减少串行地先读取数据标签缓存器,再根据数据标签缓存器中的状态信息读取数据内容缓存器中的数据信息的时间。
在其中一个实施例中,每个数据读请求接收模块还分别用于:在数据标签缓存器中对应数据内容缓存器的地址信息与第三物理内存地址不一致,或数据标签缓存器中的状态信息为第二状态时,从物理主内存内读取对应的数据信息保存到数据内容缓存器中,并更新数据标签缓存器中的数据信息;将数据内容缓存器中的数据信息返回至所连接的内核中。
本实施例中,状态信息的第二状态可以指无效状态,即内容缓存器的数据不可用;当数据标签缓存器中记录的对应数据内容缓存器的地址信息与内核发送的第三物理内存地址不一样,或者数据标签缓存器中记录的状态信息为第二状态,数据读请求接收模块访问数据标签缓存器中的结果为数据内容缓存器中的数据信息不可用,cache存储器通过内存访问接口从第三物理内存地址中读取对应的数据信息保存到数据内容缓存器中,并更新数据标签缓存器的数据信息,将数据内容缓存器中更新后的数据信息返回至内核中。通过同步cache存储器与物理内存的数据,以便后续本内核或者其他内核读取该缓存。
参见图6,图6为本发明一个实施例中数据读请求接收模块进行数据读请求处理的流程图;数据读请求处理包括以下步骤:
步骤S610:接收所连接的内核发送的数据读请求,并获取数据读请求中的第三物理内存地址。
步骤S620:根据第三物理内存地址获取数据标签缓存器的缓存地址以及数据内容缓存器的缓存地址。
步骤S630:根据数据标签缓存器的缓存地址以及数据内容缓存器的缓存地址并行读取数据标签缓存器中的数据信息以及数据内容缓存器中的数据信息,其中,数据标签缓存器中的数据信息包括对应数据内容缓存器的物理内存地址以及状态信息。
步骤S640:根据数据标签缓存器中的数据信息以及第三物理内存地址,判断数据内容缓存器中的数据信息是否可用;若数据标签缓存器中对应数据内容缓存器的物理内存地址与第三物理内存地址一致,且数据标签缓存器中的状态信息为第一状态,则数据内容缓存器中的数据信息可用,跳转至步骤S660;若数据标签缓存器中对应数据内容缓存器的地址信息与第三物理内存地址不一致,或数据标签缓存器中的状态信息为第二状态,则数据内容缓存器中的数据信息不可用,跳转至步骤S650。
步骤S650:从物理内存内读取对应的数据信息并将数据信息保存到数据内容缓存器中,并更新数据标签缓存器的数据信息。
步骤S660:将数据内容缓存器中的指令数据返回至所连接的内核中。
本实施例是内核的数据读请求处理的处理过程,当数据标签缓存器中记录的对应数据内容缓存器的地址信息与内核发送的物理内存地址不一致,或者数据标签缓存器中的状态信息为第二状态,数据内容缓存器中的数据信息不可用,直接从物理内存中读取模块,无需进行其他cache存储器的读取、改写等操作,从而减少通信阻塞,提高cache存储器的工作效率。在大多数情况下,内核数据读写请求并不频繁,在设置数据标签缓存器和数据内容缓存器的个数可以比内核数量的情况下,数据读写延迟增加有限,可以通过设置数量比内核数量少的数据标签缓存器和数据内容缓存器,在不影响cache存储效率的的同时进一步节省成本。
参见图7,图7为本发明另一个实施中cache存储架构的结构示意图;本实施例中,cache存储架构还包括与内核数量相等的数据写请求接收模块,各内核通过各自对应的数据写请求接收模块与cache存储器连接;其中,每个数据写请求接收模块分别用于:接收所连接的内核发送的数据写请求,并获取数据写请求中的第四物理内存地址;根据第四物理内存地址获取数据标签缓存器的缓存地址;根据数据标签缓存器的缓存地址读取数据标签缓存器中的数据信息,其中,数据标签缓存器中的数据信息包括对应数据内容缓存器的物理内存地址以及状态信息;在数据标签缓存器中对应数据内容缓存器的物理内存地址与第四物理内存地址一致,且数据标签缓存器中的状态信息为第一状态时,根据数据标签缓存器中对应数据内容缓存器的物理内存地址将待写数据保存至对应数据内容缓存器中,并更新数据标签缓存器的状态信息。
本实施例中,对每一个内核设置一个数据写请求接收模块,内核通过数据写请求接收模块与cache存储器连接,数据写请求接收模块针对内核常用的数据写请求进行处理。
在处理数据写请求时,数据读请求接收模块接收到内核发送的第四物理内存地址,可以由第四物理内存地址根据cache组相联结构解析出包括数据标签缓存器的地址信息以及数据内容缓存器的缓存地址信息,然后访问数据标签缓存器,根据数据标签缓存器中的数据信息决定是否能将待写入数据写入至数据内容缓存器中;若数据标签缓存器中记录的对应数据内容缓存器的物理内存地址与内核发送的第四物理内存地址相同,且数据标签缓存器中记录的状态信息为第一状态,则待写入数据可以写入至数据内容缓存器。
进一步的,数据写请求接收模块在接收到内核的发送的数据写请求后,可以保存至cache存储器中,并返回保存结果至内核中,使得内核可以继续向后运行,数据写请求的后续处理由数据写请求接收模块完成。
在其中一个实施例中,每个数据写请求接收模块还分别用于:在数据标签缓存器中对应数据内容缓存器的物理内存地址与第四物理内存地址不一致,或数据标签缓存器中的状态信息为第二状态时,将数据标签缓存器中对应数据内容缓存器中的数据信息同步至物理内存中;将待写数据保存至数据标签缓存器的对应数据内容缓存器中。
本实施例中,数据标签缓存器中的状态信息为不可写入状态可以是指cache 存储器中数据标签缓存器所对应数据内容缓存器地址被占用,无剩余地址用于保存待写数据的情况;此时,数据写请求接收模块直接与物理内存进行数据交互,将数据标签缓存器的对应数据内容缓存器中的数据信息回写至物理内存中,清出存储空间位置,根据对应数据内容缓存器的物理地址将待写数据写入至该对应数据内容缓存器中,完成数据写入。
参见图8,图8为本发明一个实施例中数据写请求接收模块进行数据读请求处理的流程图;数据写请求处理包括以下步骤:
步骤S810:接收所连接的内核发送的数据写请求,并获取数据写请求中的第四物理内存地址。
步骤S820:根据第四物理内存地址获取数据标签缓存器的缓存地址。
步骤S830:根据数据标签缓存器的缓存地址读取数据标签缓存器中的数据信息,其中,数据标签缓存器中的数据信息包括对应数据内容缓存器的物理内存地址以及状态信息。
步骤S840:根据数据标签缓存器中的数据信息判断是否能够将待写入数据写入对应内容缓存器中;若数据标签缓存器中对应数据内容缓存器的物理内存地址与第四物理内存地址一致,且数据标签缓存器中的状态信息为第一状态,跳转至步骤S860;若数据标签缓存器中对应数据内容缓存器的物理内存地址与第四物理内存地址不一致,或数据标签缓存器中的状态信息为第二状态,跳转至步骤S850。
步骤S850:将数据标签缓存器中对应数据内容缓存器中的数据信息同步至物理内存中。
步骤S860:将待写数据保存至对应数据内容缓存器中,并更新数据标签缓存器的状态信息。
本实施例是内核的数据读请求处理的处理过程,若数据标签缓存器中的状态信息为不可写入数据状态,数据标签缓存器中的对应内容缓存器被占用,无剩余地址用于保存待写数据,此时,数据写请求接收模块直接与物理内存进行数据交互,将数据标签缓存器的对应数据内容缓存器中的数据信息回写至物理内存中,即清出存储空间位置用于写入代写数据,提高cache存储器的工作效率。
参见图9,图9为本发明另一个实施中cache存储架构的结构示意图;本实施例中,cache存储架构包括:多个内核、一个cache存储器、与内核数量相等的指令读请求接收模块、与内核数量相等的数据读请求接收模块、与内核数量相等的数据写请求接收模块、内存访问接口以及物理内存;每个内核分别通过一个指令读请求接收模块与cache存储器连接,每个内核还分别通过一个数据读请求接收模块与cache存储器连接,每个内核还分别通过一个数据写请求接收模块与cache存储器连接;cache存储器通过内存访问接口与物理内存连接。
本实施例中,物理内存可以由一个物理内存组成,也可以由多个物理内存组成。多个内核通过一个cache存储器连接与大容量物理主内存连接,形成统一的高速缓冲存储器,无需设计复杂的一致性协议,减少大量的内容缓存器、标签缓存器和cache存储器管理电路,同时只需要一套大容量物理主内存的访问接口,硬件成本降低,设计简单。
对于多个内核指令请求的支持,只需要根据内核数量增加指令内容缓存器、指令标签缓存器的带宽即可满足使用需求,无需增加整个指令cache存储器,节省设计成本;而针对多个内核数据读写请求的支持,虽然单独cache支持的内核数量增加,由于数据内容缓存器的带宽低负载的情况,并不需要增加数据内容缓存器、数据标签缓存器的带宽即可满足大多数应用需求。该cache存储架构可以应用于中小型的多核SOC系统中,可以缩减芯片面积,节约成本。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种cache存储装置 ,其特征在于,包括:多个内核、一个cache存储器以及物理内存;各所述内核分别与所述cache存储器连接;所述cache存储器与所述物理内存以组相联映射关系相连,
其中,所述cache存储装置 还包括与所述内核数量相等的指令读请求接收模块,各所述内核通过各自对应的指令读请求接收模块与所述cache存储器连接;其中,每个所述指令读请求接收模块分别用于:
接收所连接的内核发送的指令读请求,并获取所述指令读请求中的第一物理内存地址;
根据所述第一物理内存地址获取指令标签缓存器的缓存地址以及指令内容缓存器的缓存地址;
根据所述指令标签缓存器的缓存地址以及所述指令内容缓存器的缓存地址并行读取所述指令标签缓存器中的数据信息以及所述指令内容缓存器中的指令数据,其中,所述指令标签缓存器中的数据信息包括对应指令内容缓存器的物理内存地址以及状态信息;
在所述指令标签缓存器中对应指令内容缓存器的物理内存地址与所述第一物理内存地址一致,且所述指令标签缓存器中的状态信息为第一状态时,将所述指令内容缓存器中的指令数据返回至所连接的内核中。
2.根据权利要求1所述的cache存储装置 ,其特征在于,每个所述指令读请求接收模块还分别用于:
在所述指令标签缓存器中对应指令内容缓存器的物理内存地址与所述第一物理内存地址不一致,或所述指令标签缓存器中的状态信息为第二状态时,从物理内存内读取对应的指令数据保存到所述指令内容缓存器中,并更新所述指令标签缓存器中的数据信息;
将所述指令内容缓存器中的指令数据返回至所连接的内核中。
3.根据权利要求1所述的cache存储装置 ,其特征在于,每个所述指令读请求接收模块还分别用于:
在所述内核无指令跳转时,累加指令读请求中的物理内存地址获得第二物理内存地址;
将所述第二物理内存地址作为第一物理内存地址,执行根据所述第一物理内存地址获取指令标签缓存器的缓存地址以及指令内容缓存器的缓存地址,并并行读取所述指令标签缓存器中的数据信息以及所述指令内容缓存器中的指令数据。
4.根据权利要求1所述的cache存储装置 ,其特征在于,还包括与所述内核数量相等的数据读请求接收模块,各所述内核通过各自对应的数据读请求接收模块与所述cache存储器连接;其中,每个所述数据读请求接收模块分别用于:
接收所连接的内核发送的数据读请求,并获取所述数据读请求中的第三物理内存地址;
根据所述第三物理内存地址获取数据标签缓存器的缓存地址以及数据内容缓存器的缓存地址;
根据所述数据标签缓存器的缓存地址以及所述数据内容缓存器的缓存地址并行读取所述数据标签缓存器中的数据信息以及所述数据内容缓存器中的数据信息,其中,所述数据标签缓存器中的数据信息包括对应数据内容缓存器的物理内存地址以及状态信息;
在所述数据标签缓存器中对应数据内容缓存器的物理内存地址与第三物理内存地址一致,且所述数据标签缓存器中的状态信息为第一状态时,将所述数据内容缓存器中的数据信息返回至所连接的内核中。
5.根据权利要求4所述的cache存储装置 ,其特征在于,每个所述数据读请求接收模块还分别用于:
在所述数据标签缓存器中对应数据内容缓存器的地址信息与第三物理内存地址不一致,或所述数据标签缓存器中的状态信息为第二状态时,从物理主内存内读取对应的数据信息保存到所述数据内容缓存器中,并更新所述数据标签缓存器中的数据信息;
将所述数据内容缓存器中的数据信息返回至所连接的内核中。
6.基于权利要求1所述的cache存储装置 ,其特征在于,还包括于所述内核数量相等的数据写请求接收模块,各所述内核通过各自对应的数据写请求接收模块与所述cache存储器连接;其中,每个所述数据写请求接收模块分别用于:
接收所连接的内核发送的数据写请求,并获取所述数据写请求中的第四物理内存地址;
根据所述第四物理内存地址获取数据标签缓存器的缓存地址;
根据所述数据标签缓存器的缓存地址读取所述数据标签缓存器中的数据信息,其中,所述数据标签缓存器中的数据信息包括对应数据内容缓存器的物理内存地址以及状态信息;
在所述数据标签缓存器中对应数据内容缓存器的物理内存地址与所述第四物理内存地址一致,且所述数据标签缓存器中的状态信息为第一状态时,根据所述数据标签缓存器中对应数据内容缓存器的物理内存地址将待写数据保存至对应数据内容缓存器中,并更新所述数据标签缓存器的状态信息。
7.根据权利要求6所述的cache存储装置 ,其特征在于,每个所述数据写请求接收模块还分别用于:
在所述数据标签缓存器中对应数据内容缓存器的物理内存地址与所述第四物理内存地址不一致,或所述数据标签缓存器中的状态信息为第二状态时,将所述数据标签缓存器中对应数据内容缓存器中的数据信息同步至物理内存中;
将所述待写数据保存至所述数据标签缓存器的对应数据内容缓存器中。
8.根据权利要求1至7任一项所述的cache存储装置 ,其特征在于,还包括内存访问接口;所述cache存储器通过所述内存访问接口与所述物理内存连接。
9.根据权利要求1至3任一项所述的cache存储装置 ,其特征在于,所述指令标签缓存器或所述指令内容缓存器的数量不大于所述内核的指令及数据请求的总线数目之和。
10.根据权利要求4至7任一项所述的cache存储装置 ,其特征在于,所述数据标签缓存器或所述数据内容缓存器的数量不大于所述内核的指令及数据请求的总线数目之和。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810634621.3A CN108897701B (zh) | 2018-06-20 | 2018-06-20 | cache存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810634621.3A CN108897701B (zh) | 2018-06-20 | 2018-06-20 | cache存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108897701A CN108897701A (zh) | 2018-11-27 |
CN108897701B true CN108897701B (zh) | 2020-07-14 |
Family
ID=64345680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810634621.3A Active CN108897701B (zh) | 2018-06-20 | 2018-06-20 | cache存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108897701B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113380280B (zh) * | 2018-12-29 | 2022-11-22 | 百度在线网络技术(北京)有限公司 | 数据处理方法、装置和存储介质 |
CN112527390B (zh) * | 2019-08-28 | 2024-03-12 | 武汉杰开科技有限公司 | 数据获取方法、微处理器及具有存储功能的装置 |
CN111522506B (zh) * | 2020-04-03 | 2022-08-02 | 杭州迪普信息技术有限公司 | 一种数据读取的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673244A (zh) * | 2008-09-09 | 2010-03-17 | 上海华虹Nec电子有限公司 | 多核或集群系统的存储器控制方法 |
CN102013984A (zh) * | 2010-10-14 | 2011-04-13 | 西安电子科技大学 | 二维网状片上网络系统 |
CN105022675A (zh) * | 2015-08-19 | 2015-11-04 | 首都师范大学 | 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置与方法 |
CN107783911A (zh) * | 2016-08-31 | 2018-03-09 | 杭州华为数字技术有限公司 | 一种数据过滤方法及终端设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8341380B2 (en) * | 2009-09-22 | 2012-12-25 | Nvidia Corporation | Efficient memory translator with variable size cache line coverage |
-
2018
- 2018-06-20 CN CN201810634621.3A patent/CN108897701B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673244A (zh) * | 2008-09-09 | 2010-03-17 | 上海华虹Nec电子有限公司 | 多核或集群系统的存储器控制方法 |
CN102013984A (zh) * | 2010-10-14 | 2011-04-13 | 西安电子科技大学 | 二维网状片上网络系统 |
CN105022675A (zh) * | 2015-08-19 | 2015-11-04 | 首都师范大学 | 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置与方法 |
CN107783911A (zh) * | 2016-08-31 | 2018-03-09 | 杭州华为数字技术有限公司 | 一种数据过滤方法及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108897701A (zh) | 2018-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104679669B (zh) | 高速缓存cache存储器系统及访问缓存行cache line的方法 | |
US20200218662A1 (en) | Data caching device and control method therefor, data processing chip, and data processing system | |
CN108897701B (zh) | cache存储装置 | |
CN110555001B (zh) | 数据处理方法、装置、终端及介质 | |
CN102073533B (zh) | 支持动态二进制翻译的多核体系结构 | |
JP2016520233A (ja) | メモリシステム、メモリアクセス要求を処理するための方法、およびコンピュータシステム | |
US9697111B2 (en) | Method of managing dynamic memory reallocation and device performing the method | |
CN111143244A (zh) | 计算机设备的内存访问方法和计算机设备 | |
CN115509959A (zh) | 处理系统、控制方法、芯片及计算机可读存储介质 | |
CN117389914B (zh) | 缓存系统、缓存写回方法、片上系统及电子设备 | |
CN107783909B (zh) | 一种内存地址总线扩展方法及装置 | |
CN117632043A (zh) | Cxl内存模组、控制芯片、数据处理方法、介质和系统 | |
US20100257319A1 (en) | Cache system, method of controlling cache system, and information processing apparatus | |
KR101645003B1 (ko) | 메모리 제어기 및 그 메모리 제어기가 탑재된 컴퓨팅 장치 | |
CN111221754A (zh) | 一种自带防读写冲突功能的存储装置 | |
CN109388344B (zh) | 一种基于带宽扩展交叉编址的双端口sram访问控制系统及方法 | |
CN114398298B (zh) | 一种缓存流水线处理方法及装置 | |
CN111694777B (zh) | 基于PCIe接口的DMA传输方法 | |
CN107807888B (zh) | 一种用于soc架构的数据预取系统及其方法 | |
CN106776377B (zh) | 一种用于并发读取多个存储单元的地址合并处理电路 | |
US20010034808A1 (en) | Cache memory device and information processing system | |
CN117851291B (zh) | 内存访问系统、电子组件及电子设备 | |
CN117667758B (zh) | L3级缓存扩展装置、访问方法、访问装置、设备及介质 | |
CN117851290B (zh) | 页表管理方法、系统、电子组件及电子设备 | |
US11094368B2 (en) | Memory, memory chip and memory data access method |
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 | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder |
Address after: 519000 No. 333, Kexing Road, Xiangzhou District, Zhuhai City, Guangdong Province Patentee after: ZHUHAI JIELI TECHNOLOGY Co.,Ltd. Address before: Floor 1-107, building 904, ShiJiHua Road, Zhuhai City, Guangdong Province Patentee before: ZHUHAI JIELI TECHNOLOGY Co.,Ltd. |
|
CP02 | Change in the address of a patent holder |