CN106326148A - 数据处理系统及其操作方法 - Google Patents

数据处理系统及其操作方法 Download PDF

Info

Publication number
CN106326148A
CN106326148A CN201610512585.4A CN201610512585A CN106326148A CN 106326148 A CN106326148 A CN 106326148A CN 201610512585 A CN201610512585 A CN 201610512585A CN 106326148 A CN106326148 A CN 106326148A
Authority
CN
China
Prior art keywords
address
master device
security attribute
master
cache
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.)
Granted
Application number
CN201610512585.4A
Other languages
English (en)
Other versions
CN106326148B (zh
Inventor
全宇衡
金轼
赵成旻
许宰荣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020160021651A external-priority patent/KR102485999B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN106326148A publication Critical patent/CN106326148A/zh
Application granted granted Critical
Publication of CN106326148B publication Critical patent/CN106326148B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Abstract

提供一种数据处理系统及其操作方法。提供一种应用处理器。所述应用处理器包括高速缓存一致性互连接、连接到高速缓存一致性互连接的第一主装置、第二主装置以及连接在高速缓存一致性互连接和第二主装置之间的主侧过滤器。主侧过滤器通过高速缓存一致性互连接从第一主装置接收探查请求,将第二主装置的第二安全属性与探查请求中所包括的第一主装置的第一安全属性进行比较,并且根据比较结果确定是否将探查请求中所包括的地址传送给第二主装置。

Description

数据处理系统及其操作方法
本申请要求于2015年7月1日提交的第62/187,365号美国临时专利申请以及于2016年2月24日提交的第10-2016-0021651号韩国专利申请的优先权,其共同主题通过引用包含于此。
背景技术
本发明构思的实施例涉及高速缓存一致性系统(cache coherent system),更具体地讲,涉及包括能够执行安全检查的主侧过滤器(master-side filter)的高速缓存一致性系统。本发明构思的实施例还涉及包括包含能够执行安全检查的主侧过滤器的至少一个高速缓存一致性系统的数据处理系统。
“高速缓存一致性”(cache coherency或cache coherence)是用于描述在共享存储系统的多个客户机(或多个处理器)中分别包括的两个或更多个本地高速缓存之间的数据和/或数据运算的一致性的术语。当每个客户机包括它自己的本地高速缓存并且多个客户机共享一个或多个存储器时,随着与一个或多个客户机关联的一个或多个高速缓存被更新,可能发生高速缓存一致性的问题。
以前,当发生(或可能发生)高速缓存一致性问题时,共享的存储系统可执行某些操作以实现高速缓存一致性或防止高速缓存一致性的损失。因此,当共享的存储系统将数据写到共享的存储器资源(例如,高速缓存)时,写操作的整体延时可能增加。
作为示例,假设系统包括:高速缓存一致性接口,连接到高速缓存一致性接口的中央处理单元(CPU);以及连接到高速缓存一致性接口的图形处理单元(GPU)。还假设:在非安全模式下操作的CPU向GPU输出探查请求(snoop request),并且针对GPU的高速缓存发生高速缓存命中。作为结果,存储在该高速缓存中的高速缓存行(即,高速缓存数据)可被写回到连接到系统的外部存储装置。在写回操作完成之后,CPU可将用于读取已被写回到外部存储装置的高速缓存行的命令传送给控制该外部存储装置的控制器。因此,写回中所涉及的写回通信量(write-back traffic)和存储在外部存储装置中的高速缓存行的读取所涉及的存储器读取请求通信量(memory read request traffic)增加。
发明内容
本发明构思的一些实施例提供一种应用处理器,所述应用处理器包括:具有第一安全属性的第一主装置、具有第二安全属性的第二主装置和主侧过滤器,第一主装置、第二主装置和主侧过滤器中的每个分别通过高速缓存一致性互连接互连,其中,第一主装置被配置为传送包括第一探查地址和指示第一安全属性的安全属性指示符的探查请求,以及主侧过滤器被配置为通过下述处理来执行探查操作:通过高速缓存一致性互连接从第一主装置接收探查请求,将第二安全属性与由探查请求指示的第一安全属性进行比较,当第一安全属性和第二安全属性不同时确定不将第一探查地址传送给第二主装置,以及当第一安全属性和第二安全属性相同时确定将第一探查地址传送给第二主装置。
本发明构思的一些实施例提供一种数据处理系统,所述数据处理系统包括:控制器,连接到布置在控制器外部的主存储装置,其中,控制器包括具有第一安全属性的第一主装置、具有第二安全属性的第二主装置、主侧过滤器和从侧过滤器,第一主装置、第二主装置、主侧过滤器和从侧过滤器中的每个分别通过高速缓存一致性互连接互连,其中,第一主装置被配置为传送包括第一探查地址和指示第一安全属性的安全属性指示符的探查请求,以及主侧过滤器连接在高速缓存一致性互连接与第二主装置之间,并且被配置为通过下述处理来执行探查操作:通过高速缓存一致性互连接从第一主装置接收探查请求,将第二安全属性与由探查请求指示的第一安全属性进行比较,当第一安全属性和第二安全属性不同时确定不将第一探查地址传送给第二主装置,以及当第一安全属性和第二安全属性相同时确定将第一探查地址传送给第二主装置,以及从侧过滤器连接在高速缓存一致性互连接与主存储装置之间,并且被配置为响应于通过高速缓存一致性互连接从第一主装置接收的存储器访问请求来执行针对主存储装置的存储器访问操作。
所述数据处理系统的主侧过滤器包括:存储装置,被配置为存储至少一个地址,并且针对所述至少一个地址中的每个地址存储对应的存储区域;以及决策逻辑电路,连接到存储装置,并且被配置为将第一安全属性与第二安全属性进行比较,并且将第一探查地址与所述至少一个地址中的每个地址进行比较。
本发明构思的一些实施例提供一种操作包括具有第一安全属性的第一主装置、具有第二安全属性的第二主装置和主侧过滤器,第一主装置、第二主装置和主侧过滤器中的每个分别通过高速缓存一致性互连接互连的应用处理器的方法。所述方法包括:通过高速缓存一致性互连接从第一主装置向主侧装置传送包括第一探查地址和指示第一安全属性的安全属性指示符的探查请求,以及使用主侧过滤器响应于探查请求通过下述步骤来执行探查操作:将第二安全属性与第一安全属性进行比较,以及如果第一安全属性和第二安全属性相同,则将第一探查地址传送给第二主装置,如果第一安全属性和第二安全属性不相同,则通过高速缓存一致性互连接将第一高速缓存未命中传送给第一主装置。
所述方法还可包括:在主侧过滤器的存储装置中存储所述至少一个地址;在存储装置中针对所述至少一个地址中的每个地址存储对应的存储区域;将第一安全属性和第二安全属性中的至少一个和与所述至少一个地址之中的与第一探查地址匹配的地址相应的存储区域所关联的安全属性进行比较。
本发明构思的一些实施例提供一种操作包括具有指示安全模式或非安全模式的第一安全属性的请求者、具有指示安全模式或非安全模式的第二安全属性的处理者和主侧过滤器,请求者、处理者和主侧过滤器中的每个分别通过高速缓存一致性互连接互连的数据处理系统的方法。所述方法包括:通过高速缓存一致性互连接和主侧过滤器从请求者向处理者传送探查请求,其中,探查请求指示目标地址以及请求者和处理者中的至少一个的操作模式是安全模式或非安全模式,确定探查请求是否指示请求者和处理者中的至少一个的操作模式是安全模式,在确定探查请求指示请求者和处理者中的至少一个的操作模式是安全模式时,确定目标地址是否对应于安全存储区域,如果目标地址对应于安全存储区域,则生成探查命中,如果目标地址对应于非安全存储区域,则在主侧过滤器中生成探查未命中,以及在确定探查请求指示请求者和处理者中的至少一个的操作模式是非安全模式时,确定目标地址是否对应于安全存储区域,并且如果目标地址对应于安全存储区域,则生成探查未命中,如果目标地址对应于非安全存储区域,则在主侧过滤器中生成探查命中。
附图说明
图1是根据本发明构思的一些实施例的数据处理系统的框图;
图2是根据本发明构思的一些实施例的图1中示出的主侧过滤器和第二主装置的框图;
图3是根据本发明构思的一些实施例的图1中示出的主侧过滤器和第二主装置的操作的流程图;
图4是列出图1中示出的主侧过滤器与第二主装置之间的可能的操作关系的第一表格;
图5是用于解释根据本发明构思的一些实施例的对从图1中示出的第一主装置输出的探查请求做出响应的主侧过滤器的操作的示图;
图6是根据本发明构思的其它实施例的图1中示出的主侧过滤器和第二主装置的框图;
图7是根据本发明构思的一些实施例的图6中示出的主侧过滤器和第二主装置的操作的流程图;
图8是列出图6中示出的主侧过滤器与第二主装置之间的可能的操作关系的第二表格;
图9是列出图6中示出的主侧过滤器与第二主装置之间的可能的操作关系的第三表格;
图10是用于解释根据本发明构思的其它实施例的对从图1中示出的第一主装置输出的探查请求做出响应的主侧过滤器的操作的示图;
图11是图1中示出的第二主装置的操作模式和在每个操作模式下的软件操作的概念示图;
图12是总结与关于图8描述的方法相同的方法的流程图;和
图13是总结与关于图9描述的方法相同的方法的流程图。
具体实施方式
图1是根据本发明构思的一些实施例的数据处理系统100的框图。参照图1,数据处理系统100可包括控制器200和主存储装置300。
数据处理系统100可被实现为个人计算机(PC)或移动装置。移动装置可以是膝上型计算机、蜂窝电话、智能电话、平板PC、个人数字助手(PDA)、企业数字助手(EDA)、数码相机、数字摄像机、便携式多媒体播放器(PMP)、个人导航装置或便携式导航装置(PND)、手持式游戏机、移动互联网装置(MID)、可穿戴计算机、物联网(IoT)装置、万联网(IoE)装置、无人机(drone)或电子书。数据处理系统100也可被用在智能汽车或汽车系统中。
控制器200可控制主存储装置300的操作。控制器200可被不同地称为高速缓存一致性系统、高速缓存一致性网络或高速缓存一致性控制器。在某些配置中,控制器200可包括异构核群集(heterogeneous core cluster),其中,异构核群集完全或部分地实现通过高速缓存一致性互连接210连接的中央处理单元(CPU)、图形处理单元(GPU)、通用图形处理单元(GPGPU)和/或数字信号处理器(DSP)。
控制器200可被不同地实现为集成电路(IC)、片上系统(SoC)、处理器、应用处理器、移动应用处理器、主板、芯片集或一组半导体芯片。在某些实施例中,可使用层叠封装(PoP)制造技术来实现控制器200和主存储装置300。
在图1的示出的示例中,控制器200可包括高速缓存一致性互连接210、第一主装置(Master1)220、第二控制器(例如,第一安全属性控制器)230、第二主装置(Master2)240、主侧过滤器250和从侧过滤器280。在一些实施例中,控制器200还可包括第三控制器(例如,第二安全属性控制器)260和第三主装置(Master3)270。
主侧过滤器250连接在高速缓存一致性互连接210与第二主装置240之间以便执行(或实施)安全检查。在这个位置提供主侧过滤器250倾向于减少探查时间或探查延时。示例性系统元件(或系统组件)220、230、250、260、270和280可通过高速缓存一致性互连接210彼此传送(即,发送和/或接收)各种信号。
第一主装置220可通过高速缓存一致性互连接210向第二控制器230传送设置(或定义)第二主装置240的操作模式的第一控制信号CTR1。在一个示例中,操作模式可被设置为安全模式或非安全模式。这里,安全模式被用于处理“安全数据”–或要求保持一个或多个安全程序的数据,而非安全模式被用于处理“非安全数据”–或者不要求安全过程的数据或要求比与安全数据关联的程序少的安全程序的数据。
第一主装置220可被实现为CPU。例如,第一主装置220可以是具有安全意识能力的CPU。第一主装置220可生成包括第一安全属性AT1和“探查地址”ADD的第一探查请求SREQ1。第一安全属性AT1可以是指示针对第一主装置220的操作模式是安全模式还是非安全模式的信息(或数据),探查地址ADD可指向(或指示)将要由第一主装置220访问的主存储装置300中的位置。在这个方面,第一主装置220可执行控制其它主装置(例如,第二主装置240或第三主装置270)中的至少一个主装置的操作(和/或互操作)的软件(SW)222。
第二控制器230可使用(或响应于)由第一主装置220提供的第一控制信号CTR1,将第二主装置240的操作模式设置为安全模式或非安全模式。与第一控制信号CTR1关联的控制数据可被存储在包括在第二控制器230中的寄存器235中。在某些实施例中,寄存器235可被实现为特殊功能寄存器(SFR)。
还可基于(或响应于)第一控制信号CTR1或存储在SFR 235中的控制数据的某一部分,来确定与第二主装置240关联的安全属性(即,第二安全属性AT2)。例如,第二安全属性AT2可通过专用传输线路TL被传送给主侧过滤器250。第二安全属性AT2可以是指示第二主装置240的操作模式是安全模式还是非安全模式的信息(或数据)。
因此,第二主装置240的操作模式可基于如由存储在SFR 235中的控制数据识别的第二安全属性AT2,设置为安全模式或非安全模式。可以以各种方式(诸如GPU、GPGPU、DSP等)来实现第二主装置240。然而,在本发明构思的实施例中,第二主装置240将是包括高速缓存并且被配置为访问由另一主装置共享的主存储装置和/或高速缓存的主装置。在该上下文中,第二主装置240可以是具有非安全意识的主装置或缺少安全意识的主装置。
如图1中所示,主侧过滤器250可连接在高速缓存一致性互连接210与第二主装置240之间。根据本发明构思的一些实施例,主侧过滤器250(或图6的250-1)可被用于在探查操作或高速缓存探查操作期间执行安全检查。因此,主侧过滤器250可被称为主侧安全过滤器。
由于主侧过滤器250在探查操作期间(或响应于探查操作)执行安全检查,因此与根据针对所有探查命中(或所有高速缓存命中)使用从侧过滤器280执行安全检查的类似的传统数据处理系统相比,包括主侧过滤器250的数据处理系统100在很大程度上消除了与写回通信量和存储器读取请求通信量关联的需求。
因此,主侧过滤器250可:(1)接收如通过高速缓存一致性互连接210传送的来自第一主装置220的第一探查请求SREQ1,(2)将第二主装置240的第二安全属性AT2与第一探查请求SREQ1中所包括的第一主装置220的第一安全属性AT1进行比较,(3)确定是否将第一探查请求SREQ1中所包括的探查地址ADD传送给第二主装置240。
当第一安全属性AT1和第二安全属性AT2不同时,主侧过滤器250将不会将第一探查请求SREQ1中所包括的探查地址ADD传送给第二主装置240,而是相反可通过高速缓存一致性互连接210将“高速缓存未命中”指示传送(或返回)到第一主装置220。然而,当第一安全属性AT1和第二安全属性AT2相同时,主侧过滤器250可将探查地址ADD传送给第二主装置240。
响应于探查地址ADD的接收,第二主装置240可:(1)确定与探查地址ADD匹配的地址是否存在于第二主装置240的内部高速缓存中,(2)基于地址确定结果确定是已发生高速缓存未命中还是已发生高速缓存命中,(3)将高速缓存命中/未命中结果传送给主侧过滤器250。
在探查操作期间(或作为探查操作的一部分),主侧过滤器250可执行初级安全检查。然而,从侧过滤器280可在不必须在相应的探查操作期间执行初级安全检查的情况下,处理针对主存储装置300的存储器访问请求(例如,数据读取请求)。例如,作为探查操作的结果(例如,从主侧过滤器250传送的高速缓存未命中结果),可由第一主装置220生成存储器访问请求。虽然图1的数据处理系统100为了描述由本发明构思设想的系统配置和/或操作的可能的方面的目的,而包括从侧过滤器280和主存储装置300,但仅需要高速缓存一致性互连接210和主侧过滤器250来实现上述安全意识探查操作。
第三控制器260可被用于响应于(例如)由第一主装置220提供的第二控制信号CTR2,将第三主装置270的操作模式设置为安全模式或非安全模式。第二控制信号CTR2可被存储在包括在第三控制器260中的寄存器265中。可以以各种方式(诸如,以具有至少一个位的标记或数字信号的形式)来实现控制信号CTR1和控制信号CTR2中的每个控制信号。
例如,寄存器265可被实现为SFR。可根据存储在SFR 265中的第二控制信号CTR2来确定与第三主装置270关联的第三安全属性AT3。第三安全属性AT3可以是指示第三主装置270的操作模式是安全模式还是非安全模式的信息(或数据)。
因此,第三主装置270可基于如由存储在SFR 265中的数据指示的第三安全属性AT3,将它的操作模式设置为安全模式或非安全模式。第三主装置270可被实现为GPU、GPGPU或DSP。例如,第三主装置270可以是具有安全意识或缺少安全意识的主装置。第三主装置270可生成包括第三安全属性AT3和相应的第二探查地址的第二探查请求SREQ2。
在这个方面,主侧过滤器250可:(1)通过高速缓存一致性互连接210从第三主装置270接收第二探查请求SREQ2,(2)将第二主装置240的第二安全属性AT2与第二探查请求SREQ2中所包括的第三主装置270的第三安全属性AT3进行比较,(3)确定是否将第二探查地址传送给第二主装置240。
例如,当第二安全属性AT2和第三安全属性AT3不同时,主侧过滤器250可不将第二探查地址传送给第二主装置240,而是相反,立即通过高速缓存一致性互连接210将高速缓存未命中传送给第三主装置270。然而,当第二安全属性AT2和第三安全属性AT3相同时,主侧过滤器250可将第二探查请求SREQ2中所包括的第二探查地址传送给第二主装置240。
然后第二主装置240可:(1)确定与从主侧过滤器250传送的第二探查地址匹配的地址是否存在于第二主装置240的内部高速缓存中,(2)根据地址确定结果确定是高速缓存未命中还是高速缓存命中,(3)将高速缓存未命中/命中结果发送给主侧过滤器250。
主存储装置300可被用于存储控制器200的操作所需的用户数据或固件,并且可使用动态随机存取存储器(DRAM)来实现主存储装置300。
图2是在一个示例中进一步示出图1的主侧过滤器250和第二主装置240的框图。图3是在一个示例中总结图1和图2的主侧过滤器250和第二主装置240的操作的流程图。图5是示出对从图1的第一主装置220接收的探查请求做出响应的主侧过滤器250的某些示例性操作的示图。
假设:第二主装置240的第二安全属性AT2指示安全模式,并且第二主装置240中所包括的高速缓存244存储分别与至少一个地址(例如,地址ADD1、ADD3、ADD4和ADD5)对应的数据DATA1、DATA3、DATA4和DATA5。
共同地参照图1、图2、图3和图5,假设第一主装置220通过高速缓存一致性互连接210将包括第一安全属性AT1和第一探查地址ADD1的第一探查请求SREQ1传送给主侧过滤器250(S110)。
主侧过滤器250可将第一安全属性AT1与第二安全属性AT2进行比较(S120)。当第一安全属性AT1和第二安全属性AT2不同(S120=否)时,主侧过滤器250不将第一探查地址ADD1传送给第二主装置240,而是相反,通过高速缓存一致性互连接210将探查未命中传送给控制器200的一个或多个元件(S130)。这里,探查未命中可表示高速缓存未命中。
参照图5中示出的第三情况(CASE3),第一探查请求SREQ1可被假设为包括第三指示符位NSMB和第一探查地址。第三指示符位NSMB还被假设为:指示第一主装置220的操作模式是非安全模式,并且对应于第一安全属性AT1。换句话说,第一主装置220的第一安全属性AT1指示非安全模式。
由于第一主装置220的第一安全属性AT1指示非安全模式并且第二主装置240的第二安全属性AT2指示安全模式,因此主侧过滤器250将不会将第一探查地址ADD1传送给第二主装置240,而是相反,将会传送探查未命中(S130)。
当第一安全属性AT1和第二安全属性AT2相同(S120=是)时,主侧过滤器250将第一探查地址ADD1传送给第二主装置240的高速缓存控制器242。第二主装置240的高速缓存控制器242可对内部高速缓存行执行探查操作(S140)。
例如,参照图5中示出的第一情况(CASE1),第一探查请求SREQ1可包括第一指示符位SMB和第一探查地址ADD1。第一指示符位SMB指示第一主装置220的操作模式是安全模式并且对应于第一安全属性AT1。换句话说,第一主装置220的第一安全属性AT1指示安全模式。
高速缓存控制器242可确定与第一探查地址ADD1匹配的地址是否存在于高速缓存244中(S150)。当与第一探查地址ADD1匹配的地址存在于高速缓存244中(即,“探查命中”或“高速缓存命中”发生–S150=是)时,高速缓存控制器242可将存储在高速缓存244中的与第一探查地址ADD1对应的数据(即,图2的示例中的DATA1)传送(或发送)给主侧过滤器250(S160)。因此,主侧过滤器250可通过高速缓存一致性互连接210,将与第一探查地址ADD1对应的数据DATA1传送给控制器200的一个或多个元件。例如,可通过高速缓存一致性互连接210将数据DATA1从主侧过滤器250传送到第一主装置220。
现在参照图5中示出的第二情况(CASE2),第一探查请求SREQ1可包括第二指示符位SMB和除第一探查地址之外的某个地址ADD2(以下,“第二探查地址”)。第一主装置220的第一安全属性AT1指示安全模式。
高速缓存控制器242可确定与第二探查地址ADD2匹配的地址是否存在于高速缓存244中(S150)。当与第二探查地址ADD2匹配的地址不存在于高速缓存244中(即,“探查未命中”或“高速缓存未命中”发生–S150=否)时,高速缓存控制器242可通过高速缓存一致性互连接210将探查未命中传送给(例如)主侧过滤器250和/或第一主装置220(S130)。
当在图5的第二情况下发生探查未命中时,第一主装置220可生成包括第二探查地址ADD2的存储器访问请求(例如,数据读取请求)。然后可通过高速缓存一致性互连接210将该存储器访问请求传送给从侧过滤器280。作为响应,从侧过滤器280可对该存储器访问请求执行安全检查,然后从,例如,由第二探查地址ADD2指示的主存储装置300的存储区域读取数据。然后可通过高速缓存一致性互连接210将如此读取的数据传送给第一主装置220。
图4是列出可存在于图1的主侧过滤器250与第二主装置240之间的示例性操作关系的第一表格。参照图1、图2、图3和图4,当请求者(例如,第一主装置220和第三主装置270之一)的操作模式与处理者(例如,第二主装置240)的操作模式相同时–也就是说,当请求者的安全属性与处理者的安全属性相同时–主侧过滤器250将会将与从请求者接收的探查请求(例如,SREQ1或SREQ2)对应的探查地址传送给高速缓存控制器242,并且识别相应的“绕过地址(bypass address)”。
然而,当请求者的操作模式不同于处理者的操作模式时–也就是说,当请求者的安全属性不同于处理者的安全属性时––主侧过滤器250将不会将探查地址传送给高速缓存控制器242,而是相反,可立即通过高速缓存一致性互连接210将探查未命中指示传送给请求者,并且识别相应的“封锁地址(blocked address)”。
例如,假设:由请求者(例如,第一主装置220)生成第一探查请求SREQ1,顺序地执行两次确定。首先,主侧过滤器250执行与第一探查请求SREQ1相关的安全检查(即,安全属性AT1与AT2之间的比较)(S120)。其次,当指示没有安全问题(即,安全属性AT1和AT2相同–S120=是)时,处理者(例如,第二主装置240)的高速缓存控制器242确定高速缓存命中/未命中(S150)。
图6是在另一示例中进一步示出主侧过滤器250-1和图1的第二主装置240的框图,并且可与图2进行比较。图7是在一个示例中总结图6的主侧过滤器250-1和第二主装置240的操作的流程图。
参照图1、图6和图7,主侧过滤器250-1可包括决策逻辑电路252和存储安全属性查询表的存储装置254。虽然存储装置254被示出为位于图6的主侧过滤器250-1内部,但是在其它实施例中,它可替代地被实现在主侧过滤器250-1外部(例如,实现在控制器200中的其他地方,诸如,第二主装置240)。可使用静态随机存取存储器(SRAM)来实现存储装置254。
存储装置254可被用于存储指示与包括相应的地址(例如,ADD1、ADD3、ADD4和ADD5)(例如,在该相应的地址的开始)的“存储区域”分别关联的安全属性(例如,SM或NSM)的数据(例如,标记状态)。这里,每个存储区域可表示主存储装置300的某一指定部分(例如,块、页、高速缓存行等)。
在图6中示出的示例中,在安全模式SM下可访问与各个地址ADD1和ADD3对应的存储区域。换句话说,这些是安全存储区域。相比之下,在非安全模式NSM下可访问与各个地址ADD4和ADD5对应的存储区域。换句话说,这些是非安全存储区域。
这里,假设:第一主装置220通过高速缓存一致性互连接210,将包括第一安全属性AT1和第一探查地址ADD1的第一探查请求SREQ1传送给主侧过滤器250-1的决策逻辑电路252(S210)。然后,决策逻辑电路252比较第一安全属性AT1与第二安全属性AT2,以确定与第一探查地址ADD1匹配的地址是否存在于存储装置254中(S220)。可顺序地或并行地执行这两个比较。
当第一安全属性AT1和第二安全属性AT2相同并且在存储装置254中针对第一探查地址识别出匹配(S220=是)时,决策逻辑电路252可将第一探查请求SREQ1中所包括的第一探查地址ADD1传送给第二主装置240。第二主装置240的高速缓存控制器242可将已被存储在高速缓存244中并且与第一探查地址ADD1对应的数据DATA1传送给主侧过滤器250-1(S240)。主侧过滤器250-1的决策逻辑电路252可,例如,通过高速缓存一致性互连接210将数据DATA1传送给第一主装置220。
参照图10中示出的第四情况(CASE4)和第五情况(CASE5),假设:第二主装置240的第二安全属性AT2指示针对第二主装置240的操作模式是安全模式(SM)。
参照第四情况,第一探查请求SREQ1包括第四指示符位SMB和第一探查地址ADD1。第四指示符位SMB指示第一主装置220的操作模式是安全模式,并且对应于第一安全属性AT1。因此,与第一探查地址ADD1对应的存储区域是在安全模式SM下可访问的安全存储区域。
由于第一主装置220的第一安全属性AT1指示安全模式,第二主装置240的第二安全属性AT2指示安全模式,与第一探查地址ADD1对应的存储区域是安全存储区域,并且与存储在存储装置254中的第一探查地址ADD1对应的存储区域是安全存储区域,因此决策逻辑电路252可将第一探查请求SREQ1中所包括的第一探查地址ADD1传送给第二主装置240的高速缓存控制器242(S220=是)。通过高速缓存控制器242的操作(例如,操作S240)来生成相应的高速缓存命中(或探查命中)。
参照第五情况,第一探查请求SREQ1包括第五指示符位SMB和第二探查地址ADD2。第五指示符位SMB指示针对第一主装置220的操作模式是安全模式并且对应于第一安全属性AT1。因此,与第二探查地址ADD2对应的存储区域是在非安全模式下可访问的非安全存储区域。
指示安全模式的第一安全属性AT1与指示安全模式的第二安全属性AT2相同。由于第一主装置220的第一安全属性AT1指示安全模式,因此第一主装置220应该输出能够访问安全存储区域的地址。然而,虽然第一主装置220的第一安全属性AT1指示安全模式,但是将要由第一主装置220访问的第二探查地址ADD2指示非安全存储区域(因此,S220=否)。因此,决策逻辑电路252不将第二探查地址ADD2传送给第二主装置240的高速缓存控制器242,而是相反,立即通过高速缓存一致性互连接210将探查未命中传送给控制器200的一个或多个元件(S230)。
参照在图10中还示出的第六情况(CASE6)和第七情况(CASE7),假设:第二主装置240的第二安全属性AT2指示非安全模式(NSM)。
参照第六情况,第一探查请求SREQ1包括第六指示符位NSMB和第二探查地址ADD2。第六指示符位NSMB指示第一主装置220的操作模式是非安全模式并且对应于第一安全属性AT1。
指示非安全模式的第一安全属性AT1与指示非安全模式的第二安全属性AT2相同。此外,第一探查请求SREQ1中所包括的第二探查地址ADD2指向非安全存储区域,并且存储在存储装置254中的第二地址ADD2指向非安全存储区域。因此,第一探查请求SREQ1中所包括的第二探查地址ADD2的属性与存储在存储装置254中的第二地址ADD2的属性相同。
决策逻辑电路252可将第一探查请求SREQ1中所包括的第二探查地址ADD2传送给第二主装置240的高速缓存控制器242。换句话说,根据高速缓存控制器242的操作生成高速缓存命中(或探查命中)。
参照第七情况,第一探查请求SREQ1包括第七指示符位NSMB和第一探查地址ADD1。第七指示符位NSMB指示第一主装置220的操作模式是非安全模式并且表示第一安全属性AT1。
指示非安全模式的第一安全属性AT1与指示非安全模式的第二安全属性AT2相同。第一探查请求SREQ1中所包括的第一安全属性AT1指示非安全模式,并且第一探查请求SREQ1中所包括的第一探查地址ADD1指向非安全存储区域,但是存储在存储装置254中的第一地址ADD1指向安全存储区域。因此,第一探查请求SREQ1中所包括的第一探查地址ADD1的属性不同于存储在存储装置254中的第一地址ADD1的属性(因此,S220=否)。决策逻辑电路252不将第一探查请求SREQ1中所包括的第一探查地址ADD1传送给第二主装置240的高速缓存控制器242,而是相反,通过高速缓存一致性互连接210传送探查未命中(S230)。
图8是列出图6的主侧过滤器250-1和第二主装置240之间的可能的操作关系的第二表格。参照图6、图7和图8,当请求者220的操作模式与处理者240的操作模式相同,并且与第一探查请求SREQ1中所包括的探查地址对应的地址存在于存储装置254中时,生成探查命中。探查命中可使得高速缓存控制器242将与该地址对应的数据传送给控制器200的一个或多个元件。
例如,当请求者220的操作模式是安全模式SM,第一探查请求SREQ1中所包括的第一探查地址ADD1指示安全存储区域,处理者240的操作模式是安全模式,并且与第一探查地址ADD1匹配的地址被存储在存储装置254中并且指向安全存储区域时,生成探查命中。
然而,当请求者220的操作模式是安全模式SM,第一探查请求SREQ1中所包括的第一探查地址ADD1指示安全存储区域,处理者240的操作模式是安全模式,并且与第一探查地址ADD1匹配的地址被存储在存储装置254中但是指示非安全存储区域时,生成探查未命中。当生成探查未命中时,决策逻辑电路252可阻止将第一探查请求SREQ1中所包括的第一探查地址ADD1传送给第二主装置240。换句话说,决策逻辑电路252将不会将第一探查请求SREQ1中所包括的第一探查地址ADD1传送给第二主装置240。
在一些实施例中,决策逻辑电路252可确定请求者220的安全属性是否与处理者240的安全属性相同,并且还可确定与从请求者220传送的第一探查请求SREQ1中所包括的第一探查地址ADD1匹配的地址(“匹配地址”)是否存在于存储装置254中,并且根据确定结果将第一探查地址ADD1传送给第二主装置240或不将第一探查地址ADD1传送给第二主装置240。
在这个方面,决策逻辑电路252不考虑第一探查地址ADD1的安全属性是否与匹配地址的安全属性相同。换句话说,当请求者220的安全属性与处理者240的安全属性相同,并且与从请求者220传送的第一探查请求SREQ1中所包括的第一探查地址ADD1匹配的地址存在于存储装置254中时,决策逻辑电路252将第一探查地址ADD1传送给第二主装置240。
在其它实施例中,决策逻辑电路252可确定请求者220的安全属性是否与处理者240的安全属性相同,并且确定第一探查地址ADD1的安全属性是否与存储在存储装置254中的匹配地址的安全属性相同。仅当两个条件都满足时,决策逻辑电路252将会将第一探查地址ADD1传送给第二主装置240。这里,地址(探查和/或匹配)的安全属性可以是指示与该地址对应的存储区域是安全存储区域还是非安全存储区域的信息或数据。
图9是列出可存在于图6的主侧过滤器250-1与第二主装置240之间的可能的操作关系的第三表格TABLE3。参照图6、图7和图9,当第二安全属性AT2指示安全模式,并且存储在存储装置254中的匹配地址指示安全存储区域,第一探查请求SREQ1中所包括的第一安全属性AT1指示安全模式,并且第一探查请求SREQ1中所包括的第一探查地址ADD1指示安全存储区域时,生成探查命中。这里,假设:第一探查地址ADD1与匹配地址相同。
然而,当第二安全属性AT2指示安全模式,存储在存储装置254中的地址指示安全存储区域,第一探查请求SREQ1中所包括的第一安全属性AT1指示安全模式,并且第一探查请求SREQ1中所包括的第一探查地址ADD1指向非安全存储区域时,生成探查未命中。
当第二安全属性AT2指示非安全模式,存储在存储装置254中的第二地址指向非安全存储区域,第一探查请求SREQ1中所包括的第一安全属性AT1指示非安全模式,并且第一探查请求SREQ1中所包括的第一探查地址ADD1指示非安全存储区域时,生成探查命中。这里,再一次假设:第一探查地址ADD1与匹配地址相同。
然而,当第二安全属性AT2指示非安全模式,存储在存储装置254中的匹配地址指示非安全存储区域,第一探查请求SREQ1中所包括的第一安全属性AT1指示非安全模式,并且第一探查请求SREQ1中所包括的第一探查地址ADD1指示安全存储区域时,生成探查未命中。
与图8的TABLE2关联的实施例涉及考虑针对请求者220和处理者240的安全属性以及由地址指示的存储区域的安全属性的方法,然而与图9的TABLE3关联的实施例涉及考虑请求者220的安全属性以及由地址指示的存储区域的安全属性的方法。
图12是总结与前面关于图8描述的方法相同的方法的流程图。这里,进行请求者模式和处理者模式的第一确定(S1200)。然后,进行目标区域(即,由探查地址或存储在高速缓存中的匹配地址指示的存储区域)的安全性质或非安全性质的第二确定(S1210)。然后,基于这两个前面的确定(S1200和S1210)二者,来进行探查命中/探查未命中确定(S1220)。
因此,只要考虑了针对每个请求者和处理者的操作模式以及目标存储区域的安全/非安全性质,就可在请求者、处理者和存储区域之间不同地描述探查命中/未命中确定。
作为与图12的方法的比较,图13是总结与前面关于图9描述的方法相同的方法的流程图。这里,不需要考虑请求者和处理者的操作模式。相反,考虑当前探查请求,并且对于它是指示安全操作模式还是非安全操作模式(例如,通过考虑指示安全属性的数据)进行确定(S1300)。如果由探查请求指示安全模式(S1300=是),则对于相应的地址(例如,探查地址)是否指示安全存储区域进行二次确定(S1310)。如果目标地址指示安全存储区域,则生成探查命中(S1330),否则生成探查未命中(S1340)。
然而,如果由探查请求指示非安全模式(S1300=否),则对于相应的地址(例如,探查地址)是否指示安全存储区域进行二次确定(S1320)。如果目标地址指示安全存储区域,则生成探查未命中(S1340),否则生成探查命中(S1330)。
前述的示例方法和结果表格示出如何以不同的方式考虑针对图1的控制器200的各种元件的操作模式、提供的探查地址和关联的安全属性以及目标存储区域和关联的安全属性,以指示在特征(specificity)和构造(constituent nature)性质方面变化的探查未命中/命中结果。
图11是示出在安全操作模式和非安全操作模式中的每个操作模式下与固件执行(“切换”或“SW”操作)相关的针对图1的控制器200的一个或多个元件的操作模式的概念示图。参照图1和图11,第一主装置220可执行SW以在安全模式下进行操作。由第一主装置220执行的SW可控制第二主装置240的操作。
第一主装置220可向第二控制器230传送用于将第二主装置240的操作模式设置为安全模式的第一控制信号CTR1。第二控制器230可在SFR 235中设置第一控制信号CTR1。第二安全属性AT2根据在SFR 235中设置的第一控制信号CTR1指示安全模式。
SW可控制高速缓存控制器242从高速缓存244删除所有数据。当从高速缓存244(CACHE FLUSH1)删除了所有数据时,第二主装置240可根据SW的控制在安全模式下进行操作。在第二主装置240正在安全模式下进行操作的同时,数据可被存储在高速缓存244中。
其后,第一主装置220可向第二控制器230发送用于将第二主装置240的操作模式设置为非安全模式的第一控制信号CTR1。第二控制器230可在SFR 235中设置第一控制信号CTR1。第二安全属性AT2根据在SFR 235中设置的第一控制信号CTR1指示非安全模式。
在第二主装置240已在安全模式下进行操作的同时,SW可控制高速缓存控制器242删除已被存储在高速缓存244中的所有数据。当从高速缓存244(CACHE FLUSH2)删除了所有数据时,第二主装置240可根据SW的控制在非安全模式下进行操作。由于在第二主装置240开始在非安全模式下进行操作之前或者在第二主装置240开始在非安全模式下操作之时,删除了在安全模式期间存储在高速缓存244中的所有数据,因此增强了控制器200的安全性。
换句话说,可分别在进入和离开安全模式时执行高速缓存清除操作CACHE FLUSH1和CACHE FLUSH2。作为结果,删除存储在高速缓存244中的所有数据。
例如,当对于高速缓存244中的每个地址或每个高速缓存行而言不支持安全属性时,或者当安全属性不可被识别时,存储在高速缓存244中的所有数据可如上所述被删除。然而,当对于高速缓存244中的每个地址或每个高速缓存行而言支持安全属性时,或者当安全属性可被识别时,存储在高速缓存244中的所有数据不需要被删除。
如参照图1至图11所描述,主侧过滤器250可被实现在控制器200中,以通过主侧过滤器250替代从侧过滤器280,来执行探查控制和探查操作(或在探查操作期间的初级安全检查)。因此,探查操作(或在探查操作的初级安全检查)不需要对从侧过滤器280访问。
可仅基于在第一主装置220与第二主装置240之间传送的信号,来确定探查时间或探查延时。作为结果,消除了用于包括主侧过滤器250的控制器200中的探查操作的时序开销(timing overhead)。
如上所述,根据本发明构思的一些实施例,包括主侧过滤器的应用处理器或高速缓存一致性系统消除了,针对在支持安全模式和非安全模式的数据处理系统中的探查操作中的安全检查的写回通信量和存储器读取请求通信量。主侧过滤器管理全部高速缓存一致性。
当应用处理器或高速缓存一致性系统包括在高速缓存一致性网络中的具有内部高速缓存的主装置时,应用处理器或高速缓存一致性系统的开销被减少或消除。包括主侧过滤器的应用处理器或高速缓存一致性系统不需要针对高速缓存一致性互连接的硬件的变化或修改。此外,包括主侧过滤器的应用处理器或高速缓存一致性系统不需要针对具有非安全意识或非信任意识的主装置的硬件的变化。
与传统解决方案相比,根据本发明构思的一些实施例的包括主侧过滤器的应用处理器或高速缓存一致性系统,消除用于高速缓存一致性网络的时序开销。由于应用处理器或高速缓存一致性系统执行用于在安全模式与非安全模式之间转换(或切换)的SW,因此用于决策逻辑电路的区域开销被减少或最小化。
尽管已参照本发明构思的示例性实施例具体地示出和描述了本发明构思,但是本领域普通技术人员将会理解,在不脱离由权利要求所定义的本发明构思的精神和范围的情况下,可对其进行各种形式和细节上的修改。

Claims (25)

1.一种应用处理器,包括:
具有第一安全属性的第一主装置、具有第二安全属性的第二主装置和主侧过滤器,第一主装置、第二主装置和主侧过滤器分别通过高速缓存一致性互连接互连,
其中,第一主装置被配置为传送包括第一探查地址和指示第一安全属性的安全属性指示符的探查请求,
主侧过滤器被配置为通过下述处理来执行探查操作:通过高速缓存一致性互连接从第一主装置接收探查请求,将第二安全属性与由探查请求指示的第一安全属性进行比较,当第一安全属性和第二安全属性不同时确定不将第一探查地址传送给第二主装置,以及当第一安全属性和第二安全属性相同时确定将第一探查地址传送给第二主装置。
2.如权利要求1所述的应用处理器,其中,第一安全属性指示第一主装置的安全模式或非安全模式,以及
第二安全属性指示第二主装置的安全模式或非安全模式。
3.如权利要求2所述的应用处理器,其中,在确定不将第一探查地址传送给第二主装置时,主侧过滤器还被配置为通过高速缓存一致性互连接将第一高速缓存未命中传送给第一主装置。
4.如权利要求3所述的应用处理器,其中,第二主装置包括:
高速缓存,被配置为存储至少一个地址以及与所述至少一个地址中的每个地址分别对应的数据;和
高速缓存控制器,被配置为:当从主侧过滤器传送第一探查地址时,将所述至少一个地址中的每个地址与第一探查地址进行比较,并且当在所述至少一个地址之中识别出第一探查地址的匹配地址时,将与匹配地址对应的数据传送给主侧过滤器,当在所述至少一个地址之中未识别出第一探查地址的匹配地址时,将第二高速缓存未命中传送给主侧过滤器。
5.如权利要求4所述的应用处理器,其中,主侧过滤器还被配置为通过高速缓存一致性互连接,将第一高速缓存未命中、所述对应的数据和第二高速缓存未命中之一传送给第一主装置。
6.如权利要求1所述的应用处理器,还包括:
控制器,被配置为响应于从第一主装置传送的控制信号来确定第二安全属性,其中,控制器被配置为使用专用传输线路,将第二安全属性传送给主侧过滤器。
7.如权利要求1所述的应用处理器,其中,主侧过滤器包括:
存储装置,被配置为存储至少一个地址;
决策逻辑电路,连接到存储装置,并且被配置为:将第一安全属性与第二安全属性进行比较,并且将第一探查地址与所述至少一个地址中的每个地址进行比较。
8.如权利要求7所述的应用处理器,其中,在确定第一安全属性与第二安全属性相同时,并且在确定第一探查地址与所述至少一个地址之中的一个地址相同时,决策逻辑电路还被配置为将第一探查地址传送给第二主装置,以及
在确定第一安全属性不同于第二安全属性时,或者在确定第一探查地址不同于所述至少一个地址中的每个地址时,决策逻辑电路还被配置为通过高速缓存一致性互连接,将高速缓存未命中传送给第一主装置。
9.如权利要求7所述的应用处理器,其中,存储装置还被配置为针对每个存储区域存储相应的安全属性;
决策逻辑电路还被配置为:确定第一安全属性是否与第二安全属性相同,以及与由第一探查地址指示的存储区域对应的第三安全属性是否和与由所述至少一个地址之中的匹配地址指示的存储区域对应的第四安全属性相同,以及
决策逻辑电路在第一安全属性与第二安全属性相同时,确定将第一探查地址传送给第二主装置,在第三安全属性与第四安全属性相同时,将与匹配地址对应的数据传送给第一主装置。
10.如权利要求2所述的应用处理器,其中,第一主装置还被配置为:控制第二主装置的操作,使得在第二主装置离开安全模式并且进入非安全模式时,在安全模式操作期间存储在第二主装置的高速缓存中的所有安全数据被删除。
11.如权利要求1所述的应用处理器,还包括:从侧过滤器,连接到高速缓存一致性互连接,并且被配置为响应于从第一主装置接收的存储器访问请求来访问主存储装置,
其中,从侧过滤器不能执行由主侧过滤器执行的探查操作。
12.如权利要求1所述的应用处理器,其中,第一主装置是中央处理电路(CPU),第二主装置是图形处理单元(GPU)、通用图形处理单元(GPGPU)和数字信号处理器(DSP)之一。
13.一种数据处理系统,包括:
控制器,连接到布置在控制器外部的主存储装置,
其中,控制器包括:具有第一安全属性的第一主装置、具有第二安全属性的第二主装置、主侧过滤器和从侧过滤器,第一主装置、第二主装置、主侧过滤器和从侧过滤器中的每个分别通过高速缓存一致性互连接互连,
其中,第一主装置被配置为传送包括第一探查地址和指示第一安全属性的安全属性指示符的探查请求,以及
主侧过滤器连接在高速缓存一致性互连接与第二主装置之间,并且被配置为通过下述处理来执行探查操作:通过高速缓存一致性互连接从第一主装置接收探查请求,将第二安全属性与由探查请求指示的第一安全属性进行比较,当第一安全属性和第二安全属性不同时确定不将第一探查地址传送给第二主装置,以及当第一安全属性和第二安全属性相同时确定将第一探查地址传送给第二主装置,以及
从侧过滤器连接在高速缓存一致性互连接与主存储装置之间,并且被配置为响应于通过高速缓存一致性互连接从第一主装置接收的存储器访问请求来执行针对主存储装置的存储器访问操作。
14.如权利要求13所述的数据处理系统,其中,第一安全属性指示第一主装置的安全模式或非安全模式,
第二安全属性指示第二主装置的安全模式或非安全模式,以及
在确定不将第一探查地址传送给第二主装置时,主侧过滤器还被配置为通过高速缓存一致性互连接将第一高速缓存未命中传送给第一主装置。
15.如权利要求14所述的数据处理系统,其中,第二主装置包括:
高速缓存,被配置为存储至少一个地址和与所述至少一个地址中的每个地址分别对应的数据;和
高速缓存控制器,被配置为:在从主侧过滤器传送第一探查地址时将所述至少一个地址中的每个地址与第一探查地址进行比较,在所述至少一个地址之中识别出第一探查地址的匹配地址时,将与匹配地址对应的数据传送给主侧过滤器,在所述至少一个地址之中未识别出第一探查地址的匹配地址时,将第二高速缓存未命中传送给主侧过滤器。
16.如权利要求15所述的数据处理系统,其中,主侧过滤器还被配置为通过高速缓存一致性互连接,将第一高速缓存未命中、所述对应的数据和第二高速缓存未命中之一传送给第一主装置。
17.如权利要求13所述的数据处理系统,还包括:
控制器,被配置为响应于从第一主装置传送的控制信号来确定第二安全属性,其中,控制器被配置为使用专用传输线路,将第二安全属性传送给主侧过滤器。
18.如权利要求13所述的数据处理系统,其中,主侧过滤器包括:
存储装置,被配置为存储至少一个地址;和
决策逻辑电路,连接到存储装置,并且被配置为将第一安全属性与第二安全属性进行比较,并且将第一探查地址与所述至少一个地址中的每个地址进行比较。
19.如权利要求14所述的数据处理系统,其中,第一主装置还被配置为:控制第二主装置的操作,使得在第二主装置离开安全模式并且进入非安全模式时,在安全模式操作期间存储在第二主装置的高速缓存中的所有安全数据被删除。
20.一种操作应用处理器的方法,所述应用处理器包括具有第一安全属性的第一主装置、具有第二安全属性的第二主装置和主侧过滤器,第一主装置、第二主装置和主侧过滤器中的每个分别通过高速缓存一致性互连接互连,所述方法包括:
通过高速缓存一致性互连接,将包括第一探查地址和指示第一安全属性的安全属性指示符的探查请求,从第一主装置传送到主侧过滤器,以及
使用主侧过滤器响应于探查请求通过下述步骤来执行探查操作:
将第二安全属性与第一安全属性进行比较,以及
如果第一安全属性和第二安全属性相同,则将第一探查地址传送给第二主装置,如果第一安全属性和第二安全属性不相同,则通过高速缓存一致性互连接将第一高速缓存未命中传送给第一主装置。
21.如权利要求20所述的方法,其中,第一安全属性指示第一主装置的安全模式或非安全模式,并且第二安全属性指示第二主装置的安全模式或非安全模式。
22.如权利要求21所述的方法,其中,第二主装置包括:被配置为存储至少一个地址和与所述至少一个地址中的每个地址分别对应的数据的高速缓存、以及高速缓存控制器,所述方法还包括:
使用高速缓存控制器将所述至少一个地址中的每个地址与第一探查地址进行比较,以及
当在所述至少一个地址之中识别出第一探查地址的匹配地址时,将与匹配地址对应的数据传送给主侧过滤器,当在所述至少一个地址之中未识别出第一探查地址的匹配地址时,将第二高速缓存未命中传送给主侧过滤器。
23.如权利要求21所述的方法,还包括:
在主侧过滤器的存储装置中存储所述至少一个地址;
将第一安全属性和第二安全属性中的至少一个和与所述至少一个地址之中的与第一探查地址匹配的地址相应的存储区域所关联的安全属性进行比较。
24.一种操作数据处理系统的方法,所述数据处理系统包括具有指示安全模式或非安全模式的第一安全属性的请求者、具有指示安全模式或非安全模式的第二安全属性的处理者和主侧过滤器,请求者、处理者和主侧过滤器分别通过高速缓存一致性互连接互连,所述方法包括:
通过高速缓存一致性互连接和主侧过滤器从请求者向处理者传送探查请求,其中,探查请求指示目标地址以及请求者和处理者中的至少一个的操作模式是安全模式或非安全模式;
确定探查请求是否指示请求者和处理者中的至少一个的操作模式是安全模式;
在确定探查请求指示请求者和处理者中的至少一个的操作模式是安全模式时,确定目标地址是否对应于安全存储区域,如果目标地址对应于安全存储区域,则生成探查命中,如果目标地址对应于非安全存储区域,则在主侧过滤器中生成探查未命中;以及
在确定探查请求指示请求者和处理者中的至少一个的操作模式是非安全模式时,确定目标地址是否对应于安全存储区域,如果目标地址对应于安全存储区域,则生成探查未命中,如果目标地址对应于非安全存储区域,则在主侧过滤器中生成探查命中。
25.如权利要求24所述的方法,其中,确定探查请求是否指示请求者和处理者中的至少一个的操作模式是安全模式的步骤包括:探查请求是否指示请求者的操作模式是安全模式的第一确定,以及探查请求是否指示处理者的操作模式是安全模式的第二确定。
CN201610512585.4A 2015-07-01 2016-06-30 数据处理系统及其操作方法 Active CN106326148B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562187365P 2015-07-01 2015-07-01
US62/187,365 2015-07-01
KR1020160021651A KR102485999B1 (ko) 2015-07-01 2016-02-24 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템
KR10-2016-0021651 2016-02-24

Publications (2)

Publication Number Publication Date
CN106326148A true CN106326148A (zh) 2017-01-11
CN106326148B CN106326148B (zh) 2020-06-23

Family

ID=57582850

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610512585.4A Active CN106326148B (zh) 2015-07-01 2016-06-30 数据处理系统及其操作方法

Country Status (4)

Country Link
US (1) US9864687B2 (zh)
JP (1) JP6739253B2 (zh)
CN (1) CN106326148B (zh)
DE (1) DE102016211986A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108805276A (zh) * 2017-06-16 2018-11-13 上海兆芯集成电路有限公司 处理器、用于操作处理器的方法和计算机可用介质
CN112612726A (zh) * 2020-12-08 2021-04-06 海光信息技术股份有限公司 基于缓存一致性的数据存储方法、装置、处理芯片及服务器

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10628611B2 (en) * 2016-11-04 2020-04-21 Qualcomm Incorporated Exclusive execution environment within a system-on-a-chip computing system
JP6776292B2 (ja) * 2018-03-20 2020-10-28 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
US10521236B2 (en) * 2018-03-29 2019-12-31 Intel Corporation Branch prediction based on coherence operations in processors
US11044256B1 (en) * 2020-12-22 2021-06-22 AppOmni, Inc. Classification management
US11874783B2 (en) 2021-12-21 2024-01-16 Advanced Micro Devices, Inc. Coherent block read fulfillment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966729A (en) * 1997-06-30 1999-10-12 Sun Microsystems, Inc. Snoop filter for use in multiprocessor computer systems
CN1291747A (zh) * 2000-11-24 2001-04-18 李楠甍 高速缓存设备及其使用方法
US6526430B1 (en) * 1999-10-04 2003-02-25 Texas Instruments Incorporated Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing)
US20130318308A1 (en) * 2012-05-24 2013-11-28 Sonics, Inc. Scalable cache coherence for a network on a chip
CN104094256A (zh) * 2011-11-28 2014-10-08 韦斯技术有限公司 在具有写入过滤器的客户端设备上部署驱动或者应用
CN104462007A (zh) * 2013-09-22 2015-03-25 中兴通讯股份有限公司 实现多核间缓存一致性的方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5680577A (en) 1995-04-27 1997-10-21 International Business Machines Corporation Method and system for processing multiple requests for data residing at the same memory address
US6412047B2 (en) * 1999-10-01 2002-06-25 Stmicroelectronics, Inc. Coherency protocol
US6839808B2 (en) 2001-07-06 2005-01-04 Juniper Networks, Inc. Processing cluster having multiple compute engines and shared tier one caches
US6842828B2 (en) 2002-04-30 2005-01-11 Intel Corporation Methods and arrangements to enhance an upbound path
EP1870814B1 (en) 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US7434008B2 (en) * 2004-04-23 2008-10-07 Hewlett-Packard Development Company, L.P. System and method for coherency filtering
US7373462B2 (en) 2005-03-29 2008-05-13 International Business Machines Corporation Snoop filter for filtering snoop requests
US7650479B2 (en) 2006-09-20 2010-01-19 Arm Limited Maintaining cache coherency for secure and non-secure data access requests
US20110153944A1 (en) 2009-12-22 2011-06-23 Klaus Kursawe Secure Cache Memory Architecture
US9129071B2 (en) 2012-10-24 2015-09-08 Texas Instruments Incorporated Coherence controller slot architecture allowing zero latency write commit
US8930638B2 (en) 2012-11-27 2015-01-06 Qualcomm Technologies, Inc. Method and apparatus for supporting target-side security in a cache coherent system
KR101700778B1 (ko) 2014-08-18 2017-01-31 정형진 멸치 자숙장치
US10078589B2 (en) * 2015-04-30 2018-09-18 Arm Limited Enforcing data protection in an interconnect

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966729A (en) * 1997-06-30 1999-10-12 Sun Microsystems, Inc. Snoop filter for use in multiprocessor computer systems
US6526430B1 (en) * 1999-10-04 2003-02-25 Texas Instruments Incorporated Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing)
CN1291747A (zh) * 2000-11-24 2001-04-18 李楠甍 高速缓存设备及其使用方法
CN104094256A (zh) * 2011-11-28 2014-10-08 韦斯技术有限公司 在具有写入过滤器的客户端设备上部署驱动或者应用
US20130318308A1 (en) * 2012-05-24 2013-11-28 Sonics, Inc. Scalable cache coherence for a network on a chip
CN104462007A (zh) * 2013-09-22 2015-03-25 中兴通讯股份有限公司 实现多核间缓存一致性的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
AVADH PATEL等: "Energy-efficient MESI cache coherence with pro-active snoop filtering for multicore microprocessors", 《 PROCEEDING OF THE 13TH INTERNATIONAL SYMPOSIUM ON LOW POWER ELECTRONICS AND DESIGN (ISLPED "08)》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108805276A (zh) * 2017-06-16 2018-11-13 上海兆芯集成电路有限公司 处理器、用于操作处理器的方法和计算机可用介质
CN108805276B (zh) * 2017-06-16 2020-09-22 上海兆芯集成电路有限公司 处理器、用于操作处理器的方法和计算机可用介质
CN112612726A (zh) * 2020-12-08 2021-04-06 海光信息技术股份有限公司 基于缓存一致性的数据存储方法、装置、处理芯片及服务器

Also Published As

Publication number Publication date
CN106326148B (zh) 2020-06-23
JP6739253B2 (ja) 2020-08-12
US9864687B2 (en) 2018-01-09
DE102016211986A1 (de) 2017-01-05
JP2017016660A (ja) 2017-01-19
US20170004084A1 (en) 2017-01-05

Similar Documents

Publication Publication Date Title
CN106326148A (zh) 数据处理系统及其操作方法
CN103106122B (zh) 同时待处理数据访问请求的数据冲突处理的方法和装置
US20130262776A1 (en) Managing Coherent Memory Between an Accelerated Processing Device and a Central Processing Unit
US9864709B2 (en) Data transfer in a multi-core processor
US10198357B2 (en) Coherent interconnect for managing snoop operation and data processing apparatus including the same
US9552303B2 (en) Method and system for maintaining release consistency in shared memory programming
US20130173834A1 (en) Methods and apparatus for injecting pci express traffic into host cache memory using a bit mask in the transaction layer steering tag
EP2581832A1 (en) Memory access control device, multi-core processor system, memory access control method, and memory access control program
US20170277636A1 (en) Method and device for controlling memory
KR20160099722A (ko) 캐시-코히어런시를 갖춘 집적 회로들
CN115292214A (zh) 页表预测方法、存储访问操作方法、电子装置和电子设备
EP4141682A1 (en) Systems, methods, and apparatus for transferring data between interconnected devices
CN108536473A (zh) 读取数据的方法和装置
CN107025130A (zh) 处理节点、计算机系统及事务冲突检测方法
CN115269454A (zh) 数据访问方法、电子设备和存储介质
CN115114042A (zh) 存储数据访问方法、装置、电子设备和存储介质
US10101999B2 (en) Memory address collision detection of ordered parallel threads with bloom filters
US9524769B2 (en) Smart in-module refresh for DRAM
CN106462550A (zh) 共享嵌入式硬件资源
CN105488012B (zh) 一种基于独占数据的一致性协议设计方法
US20220197506A1 (en) Data placement with packet metadata
KR102485999B1 (ko) 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템
US8112590B2 (en) Methods and apparatus for reducing command processing latency while maintaining coherence
CN110235112A (zh) 高速缓存略过
US10521346B2 (en) Arithmetic processing apparatus and control method for arithmetic processing apparatus

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