CN115114188B - 一种嵌入式处理器高速缓存器结构及控制方法 - Google Patents
一种嵌入式处理器高速缓存器结构及控制方法 Download PDFInfo
- Publication number
- CN115114188B CN115114188B CN202210718830.2A CN202210718830A CN115114188B CN 115114188 B CN115114188 B CN 115114188B CN 202210718830 A CN202210718830 A CN 202210718830A CN 115114188 B CN115114188 B CN 115114188B
- Authority
- CN
- China
- Prior art keywords
- data
- read
- address
- memory
- state
- 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/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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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
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
本发明提供了一种嵌入式处理器高速缓存器结构及控制方法,包括系统存储模块、共享存储模块、一般存储模块、处理器接口、总线接口和交叉开关接口,其中:系统存储模块,用于缓存操作系统内核;共享存储模块用于缓存共享的数据,并进行一致性处理;一般存储模块用于缓存无需共享的数据;处理器接口用于接收来自处理器的读写请求以及地址;总线接口用于与主存进行数据交互,传输读写操作的消息并对其进行监听;交叉开关接口用于传输进行一致性处理需要的数据。本发明的高速缓存器结构简单不需要复杂的控制算法和控制电路,并且操作高效,尤其是在进行一致性处理的操作上,相关操作可以在一个时钟周期内完成。
Description
技术领域
本发明属于计算机体系结构设计领域,具体为一种高速缓存器结构及控制方法。
背景技术
嵌入式系统的发展与不断分化,很多领域如工业控制、机器人、视频图像系统等对嵌入式系统的要求越来越高,这不仅需要良好的功能扩展性和可维护性,还需要保证专有任务的特性。单核嵌入式微处理器已不能满足快速多任务处理和并行化程序的应用需求。
如何去维护各个核心自己私有的高速缓存器之间的数据一致性是多核处理器存在的问题。对于目前的通用处理器需要考多级架构、流水线等诸多因素,所以相关的维护数据一致性问题的控制电路、控制算法十分复杂,且进行一致性处理时使用MSI、MESI等一致性协议。这些一致性协议进行一次相关操作需要多个时钟周期并且进行状态转换时会阻塞处理器,降低了运行效率。
为解决上述问题,本发明提出一种高速缓存器结构及控制方法。
发明内容
本发明是一种简单高效的高速缓存器。主要发明内容为高速缓存器整体结构以及其控制方法。
一方面,本发明提供了一种高速缓存器结构,包括系统存储模块、共享存储模块、一般存储模块、处理器接口、总线接口、交叉开关接口;
所述系统存储模块,用于在处理器运行过程中缓存其运行的操作系统内核;
所述共享存储模块,用于缓存处理器的多个核心在运行过程中共享的数据,并进行一致性处理;
所述一般储存模块,用于缓存处理器的多个核心在运行过程中不会进行共享的数据;
所述处理器接口,用于接收来自处理器的读写请求以及地址;
所述总线接口,用于通过总线将不同核心的高速缓存器与主存互相连接,与主存进行数据交互,传输读写操作的消息并对这些消息进行嗅探;
所述交叉开关接口,用于通过交叉开关将不同核心的高速缓存器互相连接,传输进行一致性处理需要的数据;
优选的,所述共享存储模块包括:多端口存储器、状态表;
所述多端口存储器,用于存储需要共享的数据,且所有的端口在同一个时钟周期内都可访问数据;
所述状态表,用于存储多端口存储器每个地址的状态,状态分为有效V和无效I。
另一方面,本发明还提供对上述高速缓存器的控制方法
优选的,对接收来自嵌入式处理器的读写请求以及相关地址,通过地址在系统存储模块、共享存储模块、一般存储模块中选择一个去响应读写请求;
果为系统存储模块,响应读请求则直接读出;响应写请求,系统存储模块立即向相应的地址写入数据,且同时向主存中写入数据;
如果为共享存储模块,且响应的请求为读请求的情况下,先查看状态表,若为V则直接从多端口存储器中读出数据,若为I则从交叉开关接口或总线接口中读出数据,并更新多端口存储器中相应地址的数据;响应的请求为写请求的情况下,向多端口存储器中写入数据;响应读写请求时还需进行一致性处理;
如果为一般存储模块,且响应的请求为读请求的情况下,一般存储模块中若有相应的数据则直接读出,若无则通过总线接口从主存中读出数据并更新一般存储模块中的数据;响应的请求为写请求的情况下,一般存储模块中若有相应的数据则直接写入,并通过总线接口向主存中也写入,若无则通过总线接口从主存中读出数据并更新一般存储模块中的数据,然后写入数据,同时向主存中也写入;
对读写请求进行响应时,将读写操作的相关消息通过总线接口传输至总线上;
优选的,对所述共享存储模块进行一致性处理的过程包括进行本地读操作、本地写操作、远程读操作、远程写操作时更改状态表中的状态。
在一个时钟周期内对同一地址,通过优先级仲裁使本地写操作或远程写操作只能存在一个,其余的操作被无效化;
若一个时钟周期内对某一地址有本地读操作,则将状态表中相应地址的状态更改为V;
若一个时钟周期内对某一地址有本地写操作,则将状态表中相应地址的状态更改为V效,并且将要写入的数据通过交叉开关接口发送;
若一个时钟周期内对某一地址有远程读操作,不改变状态表中的状态,如果状态表中对应地址的状态为V,从多端口存储器中读出数据并通过交叉开关接口发送;
若一个时钟周期内对某一地址有远程写操作,将状态表中相应地址的状态改为I;
若一个时钟周期内对同一地址有本地读操作与远程写操作,先进行远程写操作,再进行本地读操作;
若一个时钟周期内对同一地址有本地写操作与远程读操作,先进行本地写操作,再进行远程读操作;
若一个时钟周期内对同一地址有远程写操作与远程读操作,先进行远程写操作,再进行远程读操作;
与现有技术相比,本发明的有益的效果在于:
(1)其构造简单,不需要复杂的控制算法和控制电路。
(2)其操作高效,尤其是在进行一致性处理的操作上,相关操作皆可以在一个时钟周期内完成。
附图说明
图1高速缓存器的总体结构图;
图2为多端口存储器结构图;
图3为状态表结构图;
图4为地址映射图;
图5为一致性处理过程图;
图6为状态转换图。
具体实施方式
下面将参照附图更详细地描述本发明的实施例。虽然附图中显示了本发明的实施例,然而应当理解的是,本发明可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本发明。应当理解的是,本发明的附图及实施例仅用于示例性作用,并非用于限制本发明的保护范围。
实施例1
本发明所提出的高速缓存器结构如图1所示,其主要是由系统存储模块101、共享存储模块102、一般存储模块103、处理器接口104、总线接口105和交叉开关接口106构成。
系统存储模块101,用于在处理器运行过程中缓存其运行的操作系统内核,其位宽和主存一致。在系统进行启动时将系统内核部分的数据从主存加载到系统存储模块中101中。系统存储模块101由简单双端口存储器构成。若对处理器对系统存储模块101中的数据进行写入,则应立即通过总线接口105向主存也写入。
共享存储模块102,用于缓存处理器的多个核心在运行过程中共享的数据,并进行一致性处理。共享存储模块102由多端口存储器、状态表构成。其中多端口存储器存储共享的数据,状态表存储数据的状态,其中只有两种状态分别为有效V和无效I。共享存储模块102响应来自处理器接口104的读写请求,该读请求为本地读、该写请求为本地写,共享存储模块102响应来自总线接口的读写请求,该读请求为远程读、该写请求为远程写。共享存储模块102对多端口存储器和状态表的操作都可在一个时钟周期内完成。
多端口存储器有N个读端口和一个写端口,其位宽和主存一致,多端口存储器由N个简单双端口存储器构成,N等于处理器核心数。一个具有4个读端口和一个写端口的多端口存储器结构如图2所示,其由简单双端口存储器201、简单双端口202、简单双端口存储器203、简单双端口存储器204构成。这些简单双端口存储器的写端口的地址线与数据线相连接在一起。
状态表是一个位宽为1的具有N个读端口和N个写端口的多端口存储器。状态表由N*N个单端口存储器构成。一个具有4个读端口和4个写端口的状态表的结构如图3所示,其由16个单端口存储器构成,每一列的单端口存储器的写端口的地址线与数据线相连接在一起,每一行的单端口存储器的读端口的地址线相连接。通过状态表第X个写端口向其中写入数据时,先将第X行中第1到第X-1个和X+1到N个单端存储器中读出的数据xRD1、xRD2xRDX-1和 xRDX+1xRDN与要写入的数据D做异或运算,将得到的数据通过第X个写端口进行写入。通过状态表第X个读端口读数据时,将从第X行中所有单端口存储器读出的数据一起做异或操作,得到的数据即为要读出的数据。
= D
=
一般存储模块,用于缓存处理器的多个核心在运行过程中不会进行共享的数据,一般存储模块包括至少一个缓存行。缓存行与主存地址空间的映射方式为直接映射,写策略采用写穿透(write through)。
处理器接口104,用于接收来自处理器的读写请求以及地址。处理器接口104还需根据接收到的地址来在系统存储模块101、共享存储模块102、一般存储模块103中选择一个来响应。若系统存储模块101地址空间的大小为4K,共享存储模块102地址空间的大小为4K,则接收到的地址在0 至4095中选择系统存储模块101,接收到的地址在4096至8191中选则共享存储模块102,接收到的地址大于等于8192时选择一般存储模块103。
系统存储模块101、共享存储模块102、一般存储模块103与主存的地址映射如图4所示。系统存储模块101采用1对1的映射方式,与主存的最低端地址进行一对一映射。共享存储模块102采用1对1的映射方式,其映射到主存的地址紧跟在系统存储模块101所映射的地址之后。对于主存的其他地址由一般存储模块103采用直接映射的方式进行映射。
总线接口105,用于通过总线将不同核心的高速缓存器与主存互相连接,与主存进行数据交互,传输读写操作的消息并对这些消息进行嗅探。当处理器接口104接收来自处理器的读写请求以及地址,并选择共享存储模块102来响应读写请求时,总线接口105也将该读写请求出传输到总线上,同时嗅探、监听总线上其他处理器核心的高速缓存器中的共享存储模块103所响应的读写请求,并提交给共享存储模块103。
交叉开关接口106,用于通过交叉开关将不同核心的高速缓存器互相连接,传输进行一致性处理需要的数据。进行一致性处理所需要的数据包括:共享存储模块105响应本地写请求向其多端口存储器中写入的数据,共享存储模块105响应远程读请求,且状态表中对应地址的状态为V时,从其多端口存储器对应地址读出的数据。通过交叉开关接口106进行数据的传输可在一个时钟周期内完成,因为交叉开关可在一个时钟周期内进行多对设备的通信。
当高速缓存器的处理器接口104接收来自处理器的读写请求以及地址且选择系统存储模块101进行响应时,响应读请求直接从简单双端口存储器中读出数据。响应写请求,立即简单双端口存储器相应的地址写入数据,且同时向主存中写入数据。
选择共享存储模块102进行响应时,响应的请求为读请求,先查看状态表中相应地址的状态,若为V则直接从多端口存储器中读出数据,若为I则从交叉开关接口中读出数据,若交叉开关接口106中无数据则从通过总线接口105从主存中读出数据,并更新多端口存储器中相应地址的数据。响应的请求为写请求的情况下,向多端口存储器中写入数据。响应读写请求时还需进行一致性处理,一致性处理包括将需要的数据通过交叉开关接口106进行发送,和维护状态表中的状态。
进行一致性处理的步骤如图5所示。
S501:通过优先级仲裁,使本地写和远程写操作同一时钟周期内只能有一个生效,其他的操作被无效化。
S502:若一个时钟周期内对某一地址有本地读操作,则将状态表中相应地址的状态更改为有效。
S503:若一个时钟周期内对某一地址有本地写操作,则将状态表中相应地址的状态更改为有效,并且将要写入的数据通过交叉开关接口106发送。
S504:若一个时钟周期内对某一地址有远程读操作,不改变状态表中的状态。查看状态中相应地址的状态,若为有效,从多端口存储器中读出数据并通过交叉开关接口106发送。
S505:若一个时钟周期内对某一地址有远程写操作,将状态表中相应地址的状态改为无效。
S506:若一个时钟周期内对同一地址有本地读操作与远程写操作,先进行远程写操作,再进行本地读操作。
S507:若一个时钟周期内对同一地址有本地写操作与远程读操作,先进行本地写操作,再进行远程读操作。
S508:若一个时钟周期内对同一地址有远程写操作与远程读操作,先进行远程写操作,再进行远程读操作。
状态表中状态的状态转换图如图6所示。本地读、本地写操作将状态改变为V。远程写操作将状态改变为I,远程读操作不改变状态。
选择一般存储模块103进行响应,且响应的请求为读请求的情况下,一般存储模块中若有相应的数据则直接读出,若无则通过总线接口从主存中读出数据并更新一般存储模块中的数据;响应的请求为写请求的情况下,一般存储模块中若有相应的数据则直接写入,并通过总线接口向主存中也写入,若无则通过总线接口从主存中读出数据并更新一般存储模块中的数据,然后写入数据,同时向主存中也写入;
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型。
Claims (1)
1.一种高速缓存器,其特征在于:包括系统存储模块、共享存储模块、一般存储模块、处理器接口、总线接口和交叉开关接口;其中:所述系统存储模块,用于在处理器运行过程中缓存其运行的操作系统内核;所述共享存储模块,用于缓存处理器的多个核心在运行过程中共享的数据,并进行一致性处理;所述一般存储模块,用于缓存处理器的多个核心在运行过程中不会进行共享的数据;所述处理器接口,用于接收来自处理器的读写请求以及地址;所述总线接口,用于通过总线将不同核心的高速缓存器与主存互相连接,与主存进行数据交互,传输读写操作的消息并对这些消息进行嗅探;所述交叉开关接口,用于通过交叉开关将不同核心的高速缓存器互相连接,传输进行一致性处理需要的数据;所述共享存储模块包括多端口存储器和状态表,其中,所述多端口存储器,用于存储需要共享的数据,且所有的端口在同一个时钟周期内都可访问数据;所述状态表,用于存储多端口存储器每个地址的状态,状态分为有效状态V和无效状态I,其中所述高速缓存器的控制方法,还包括:接收来自处理器的读写请求以及相关地址,通过地址在系统存储模块、共享存储模块、一般存储模块中选择一个去响应读写请求;如果为系统存储模块,响应读请求则直接读出;响应写请求,系统存储模块立即向相应的地址写入数据,且同时向主存中写入数据;如果为共享存储模块,且响应的请求为读请求的情况下,先查看状态表,若为V则直接从多端口存储器中读出数据,若为I则从交叉开关接口或总线接口中读出数据,并更新多端口存储器中相应地址的数据;响应的请求为写请求的情况下,向多端口存储器中写入数据;响应读写请求时还需进行一致性处理;如果为一般存储模块,且响应的请求为读请求的情况下,一般存储模块中若有相应的数据则直接读出,若无则通过总线接口从主存中读出数据并更新一般存储模块中的数据;响应的请求为写请求的情况下,一般存储模块中若有相应的数据则直接写入,并通过总线接口向主存中也写入,若无则通过总线接口从主存中读出数据并更新一般存储模块中的数据,然后写入数据,同时也将数据写入主存中;对读写请求进行响应时,将读写操作的相关消息通过总线接口传输至总线上;
所述高速缓存器的控制方法,还包括:
对所述共享存储模块进行一致性处理的过程;
对所述共享存储模块进行一致性处理的过程包括进行本地读操作、本地写操作、远程读操作和远程写操作时更改状态表中的状态;
在一个时钟周期内对同一地址,通过优先级仲裁使本地写操作或远程写操作只能存在一个,其余的操作被无效化;
若一个时钟周期内对某一地址有本地读操作,则将状态表中相应地址的状态更改为V;
若一个时钟周期内对某一地址有本地写操作,则将状态表中相应地址的状态更改为V,并且将要写入的数据通过交叉开关接口发送;
若一个时钟周期内对某一地址有远程读操作,不改变状态表中的状态,如果状态表中对应地址的状态为V,从多端口存储器中读出数据并通过交叉开关接口发送;
若一个时钟周期内对某一地址有远程写操作,将状态表中相应地址的状态改为I;
若一个时钟周期内对同一地址有本地读操作与远程写操作,先进行远程写操作,再进行本地读操作;
若一个时钟周期内对同一地址有本地写操作与远程读操作,先进行本地写操作,再进行远程读操作;
若一个时钟周期内对同一地址有远程写操作与远程读操作,先进行远程写操作,再进行远程读操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210718830.2A CN115114188B (zh) | 2022-06-23 | 2022-06-23 | 一种嵌入式处理器高速缓存器结构及控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210718830.2A CN115114188B (zh) | 2022-06-23 | 2022-06-23 | 一种嵌入式处理器高速缓存器结构及控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115114188A CN115114188A (zh) | 2022-09-27 |
CN115114188B true CN115114188B (zh) | 2023-04-07 |
Family
ID=83328957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210718830.2A Active CN115114188B (zh) | 2022-06-23 | 2022-06-23 | 一种嵌入式处理器高速缓存器结构及控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115114188B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115617732B (zh) * | 2022-11-14 | 2023-03-31 | 南京芯驰半导体科技有限公司 | Apb总线结构、片上系统、车辆及访问方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416632A (zh) * | 2021-12-28 | 2022-04-29 | 北京时代民芯科技有限公司 | 一种基于多总线协议灵活转换的两级缓存互联结构 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6038651A (en) * | 1998-03-23 | 2000-03-14 | International Business Machines Corporation | SMP clusters with remote resource managers for distributing work to other clusters while reducing bus traffic to a minimum |
US7873785B2 (en) * | 2003-08-19 | 2011-01-18 | Oracle America, Inc. | Multi-core multi-thread processor |
CN101430664B (zh) * | 2008-09-12 | 2010-07-28 | 中国科学院计算技术研究所 | 一种多处理器系统及Cache一致性消息传输方法 |
CN104699631B (zh) * | 2015-03-26 | 2018-02-02 | 中国人民解放军国防科学技术大学 | Gpdsp中多层次协同与共享的存储装置和访存方法 |
US10102149B1 (en) * | 2017-04-17 | 2018-10-16 | Intel Corporation | Replacement policies for a hybrid hierarchical cache |
EP4022446B1 (en) * | 2020-08-19 | 2024-02-14 | Google LLC | Memory sharing |
-
2022
- 2022-06-23 CN CN202210718830.2A patent/CN115114188B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416632A (zh) * | 2021-12-28 | 2022-04-29 | 北京时代民芯科技有限公司 | 一种基于多总线协议灵活转换的两级缓存互联结构 |
Also Published As
Publication number | Publication date |
---|---|
CN115114188A (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5431525B2 (ja) | アクセラレータ用低コストのキャッシュ一貫性を維持するシステム | |
CN101097545B (zh) | 独占所有权探听过滤器 | |
US6918012B2 (en) | Streamlined cache coherency protocol system and method for a multiple processor single chip device | |
US6405289B1 (en) | Multiprocessor system in which a cache serving as a highest point of coherency is indicated by a snoop response | |
US20010013089A1 (en) | Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol | |
US8539164B2 (en) | Cache coherency within multiprocessor computer system | |
US20080098178A1 (en) | Data storage on a switching system coupling multiple processors of a computer system | |
US6922755B1 (en) | Directory tree multinode computer system | |
JPH06208508A (ja) | キャッシュタグメモリ | |
KR100515059B1 (ko) | 멀티프로세서 시스템 및 멀티프로세서 시스템의 캐쉬일관성 유지 방법 | |
US6345341B1 (en) | Method of cache management for dynamically disabling O state memory-consistent data | |
CN115114188B (zh) | 一种嵌入式处理器高速缓存器结构及控制方法 | |
US20040073754A1 (en) | Computer system supporting read-to-write-back transactions for I/O devices | |
US6038642A (en) | Method and system for assigning cache memory utilization within a symmetric multiprocessor data-processing system | |
US6363458B1 (en) | Adaptive granularity method for integration of fine and coarse communication in the distributed shared memory system | |
US20070239941A1 (en) | Preselecting E/M line replacement technique for a snoop filter | |
US6807608B2 (en) | Multiprocessor environment supporting variable-sized coherency transactions | |
US6397303B1 (en) | Data processing system, cache, and method of cache management including an O state for memory-consistent cache lines | |
US7000080B2 (en) | Channel-based late race resolution mechanism for a computer system | |
CN106201939A (zh) | 面向gpdsp架构的多核目录一致性装置 | |
KR20140038075A (ko) | 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치 | |
WO1997004392A1 (en) | Shared cache memory device | |
US6990516B2 (en) | Distributed shared memory system and data-maintenance method of same | |
US6839806B2 (en) | Cache system with a cache tag memory and a cache tag buffer | |
JP3897218B2 (ja) | キャッシュ装置及び制御方法 |
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 |