CN104573546A - 具有虚拟客户的处理系统及其使用方法 - Google Patents
具有虚拟客户的处理系统及其使用方法 Download PDFInfo
- Publication number
- CN104573546A CN104573546A CN201410551293.2A CN201410551293A CN104573546A CN 104573546 A CN104573546 A CN 104573546A CN 201410551293 A CN201410551293 A CN 201410551293A CN 104573546 A CN104573546 A CN 104573546A
- Authority
- CN
- China
- Prior art keywords
- memory block
- access
- described multiple
- register
- trusted
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000026676 system process Effects 0.000 claims abstract description 27
- 238000003860 storage Methods 0.000 claims description 43
- 230000008569 process Effects 0.000 claims description 35
- 230000006870 function Effects 0.000 description 31
- 230000007246 mechanism Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 7
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 101000969688 Homo sapiens Macrophage-expressed gene 1 protein Proteins 0.000 description 5
- 102100021285 Macrophage-expressed gene 1 protein Human genes 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 244000035744 Hura crepitans Species 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 244000045947 parasite Species 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6281—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本公开涉及具有虚拟客户的处理系统及其使用方法。处理系统包括存储器模块,存储器模块包括多个存储器块和多个寄存器。处理器执行具有多个操作系统进程的操作系统,其中所述多个操作系统进程中的每一个被指定作为多个虚拟客户中的相应一个。存储器仲裁模块从所述多个虚拟客户的至少一个虚拟客户接收访问所述多个存储器块或所述多个寄存器中的选定一个的请求,并基于所选定的存储器块或寄存器是指定用于受信任的访问还是非受信任的访问以及基于该虚拟客户是受信任的还是非受信任的,来确定是准许还是拒绝该请求。
Description
相关申请的交叉引用
本申请根据35U.S.C 119(e)要求享有于2013年10月18日提交的具有申请序列号61/893,116的题名为“MEMORY PROTECTIONSYSTEM AND PROCESS”的临时申请的优先权,其内容出于任何以及全部的目的而通过引入并入于此。
技术领域
本公开涉及处理设备中的安全。
背景技术
处理系统可以包括操作系统程序,操作系统程序允许实用程序和应用程序被编写用于公共计算环境,即使当在不同的处理平台上执行时。操作系统还提供多任务处理,多任务处理允许同时执行多个应用和实用程序等。这种操作系统的例子包括Microsoft Windows、MacOS、Linux和Solaris。这些操作系统的灵活性具有若干缺点。例如,诸如病毒、蠕虫、特洛伊木马和其他有害代码之类的恶意代码的作者已经利用操作系统(诸如Microsoft Windows)的开放性质。
处理系统通常包括用于便利该系统的设备之间的数据通信的存储器寄存器。存储器寄存器是对于恶意代码的一个易损点。另外,在处理视频应用期间不适当地访问存储器寄存器可提供对未受保护的格式的媒体内容的授权访问。
发明内容
根据本公开的一个方面,本文讨论了一种处理系统。所述处理系统包括:存储器模块,所述存储器模块包括多个存储器块,其中所述多个存储器块的第一子集被指定用于受信任的访问并且所述多个存储器块的第二子集被指定用于非受信任的访问,其中所述多个存储器块存储具有多个操作系统进程的操作系统,并且其中所述存储器模块进一步存储安全访问数据;耦接到存储器模块的多个客户,所述多个客户包括经由所述多个操作系统进程来执行所述操作系统的至少一个处理器,其中所述多个操作系统进程中的每一个被指定作为多个虚拟客户中的相应一个;耦接到所述存储器模块和所述多个客户的存储器仲裁模块,其中所述存储器仲裁模块执行以下操作:从所述多个虚拟客户中的至少一个接收访问所述多个存储器块中的第一选定存储器块的第一请求;确定以下之一:所述多个存储器块中的第一选定存储器块被指定用于受信任的访问,和所述多个存储器块中的第一选定存储器块被指定用于非受信任的访问;当所述多个存储器块中的第一选定存储器块被指定用于非受信任的访问时,准许访问所述多个存储器块中的第一选定存储器块的第一请求;当所述多个存储器块中的第一选定存储器块被指定用于受信任的访问时,检索与所述多个虚拟客户中的所述至少一个相对应的安全访问数据,以确定所述多个虚拟客户中的所述至少一个是否是受信任的;以及当所述多个虚拟客户中的所述至少一个是受信任的时,准许访问所述多个存储器块中的第一选定存储器块的第一请求。
在一个实施例中,所述存储器仲裁模块进一步执行以下操作:当所述多个存储器块中的第一选定存储器块被指定用于受信任的访问、并且所述多个虚拟客户中的所述至少一个是非受信任的时,拒绝访问所述多个存储器块中的第一选定存储器块的第一请求。
根据本公开的另一个方面,本文讨论了一种方法。所述方法包括以下操作:将存储器模块分离为多个存储器块,其中所述多个存储器块的第一子集被指定用于受信任的访问并且所述多个存储器块的第二子集被指定用于非受信任的访问,其中所述多个存储器块存储具有多个操作系统进程的操作系统,并且其中所述存储器模块进一步存储安全访问数据;通过至少一个处理器经由所述多个操作系统进程来执行所述操作系统,其中所述多个操作系统进程中的每一个被指定作为多个虚拟客户中的相应一个;从所述多个虚拟客户中的至少一个接收访问所述多个存储器块中的第一选定存储器块的第一请求;确定以下之一:所述多个存储器块中的第一选定存储器块被指定用于受信任的访问,和所述多个存储器块中的第一选定存储器块被指定用于非受信任的访问;当所述多个存储器块中的第一选定存储器块被指定用于非受信任的访问时,准许访问所述多个存储器块中的第一选定存储器块的第一请求;当所述多个存储器块中的第一选定存储器块被指定用于受信任的访问时,检索与所述多个虚拟客户中的所述至少一个相对应的安全访问数据,以确定所述多个虚拟客户中的所述至少一个是否是受信任的;以及当所述多个虚拟客户中的所述至少一个是受信任的时,准许访问所述多个存储器块中的第一选定存储器块的第一请求。
在另一个实施例中,所述方法进一步包括以下操作:当所述多个存储器块中的第一选定存储器块被指定用于受信任的访问、并且所述多个虚拟客户中的所述至少一个是非受信任的时,拒绝访问所述多个存储器块中的第一选定存储器块的第一请求。
附图说明
图1呈现根据本公开的实施例的可包括处理系统100的示例设备11-16的图形表示。
图2呈现根据本公开的实施例的处理系统100的框图表示。
图3呈现根据本公开进一步的实施例的寄存器空间144的框图表示。
图4呈现根据本公开进一步的实施例的寄存器的框图表示。
图5呈现根据本公开进一步的实施例的存储器空间142的框图表示。
图6呈现根据本公开进一步的实施例的操作系统190的框图表示。
图7呈现根据本公开进一步的实施例的安全访问数据146的框图表示。
图8呈现根据本公开的实施例的视频编码系统200的框图表示。
图9呈现根据本公开的实施例的视频解码系统202的框图表示。
图10呈现根据本公开的实施例的视频转码系统204的框图表示。
图11呈现根据本公开的实施例的视频分发系统175的框图表示。
图12呈现根据本公开的实施例的视频存储系统179的框图表示。
图13呈现根据本公开的实施例的方法的流程图表示。
图14呈现根据本公开的实施例的方法的流程图表示。
图15呈现根据本公开的实施例的方法的流程图表示。
具体实施方式
图1呈现根据本公开的实施例的可包括处理系统100的示例设备11-16的图形表示。具体地,这些示例设备包括数字视频记录器/机顶盒11、电视或监视器12、无线电话设备13、计算机14和15、个人视频播放器16或包括处理系统100的其他设备。
处理系统100包括多个客户(client),诸如嵌入式处理器、硬件接口等。这些处理器中的一个执行具有多个操作系统进程的操作系统,其中每个所述多个操作系统进程被指定作为多个虚拟客户中的相应一个。存储器模块包括多个存储器块。存储器仲裁模块从多个实际客户或多个虚拟客户中的至少一个接收访问多个存储器块中的选定一个的请求,并且基于选定的存储器块是被指定用于受信任的访问还是非受信任的访问以及基于该实际或虚拟客户是受信任的还是非受信任的来确定是准许还是拒绝该请求。
处理系统100还包括寄存器空间,该寄存器空间用于在多个寄存器中存储多个寄存器数据以及用于存储对应于寄存器空间的安全访问数据。寄存器仲裁模块从多个实际客户或多个虚拟客户中的至少一个接收访问多个寄存器中的选定一个的请求,并且基于选定的寄存器是被指定用于受信任的访问还是非受信任的访问以及基于该实际或虚拟客户是受信任的还是非受信任的来确定是准许还是拒绝该请求。
以此方式,存储器仲裁模块和寄存器仲裁模块可以有助于防止对寄存器空间和存储器块的非授权访问,以防止篡改和/或非授权的复制。将结合图2-15更详细地描述处理系统100,图2-15包括若干可选功能和特征。
图2呈现根据本公开的实施例的处理系统100的框图表示。具体地,处理系统100包括接口模块120、处理模块130、存储器模块140、寄存器仲裁模块150、存储器仲裁模块155、存储器擦除模块165、混淆模块170和总线160(诸如I2C总线或其他总线)。虽然示出了特定的总线架构,但使用一个或多个模块之间的直接连接和/或另外的总线的另选架构同样地根据本公开实现。在本公开的实施例中,处理系统100通过片上系统集成电路实现。而且,处理系统100可以包括一个或多个未具体示出的附加模块。
在操作中,视频处理系统100可以执行一个或多个视频处理功能,所述一个或多个视频处理功能通过在处理模块130或者一个或多个专用视频处理引擎上运行的一个或多个例程来实现,所述一个或多个专用视频处理引擎作为处理模块130的一个或多个嵌入式处理器132、134……而被包括。
在一个例子中,接口模块120接收视频信号110并基于视频信号110的编码、视频信号110的解码和/或视频信号110的转码而输出经处理的视频信号112。虽然被称为视频信号,视频信号110和经处理的视频信号112可以各自包括相关联的音频分量。如本文中所使用的,除了将视频信号110从一种编码视频格式转码为另一种编码视频格式(MPEG1、MPEG 2、MPEG 4到H.264等)以形成经处理的视频信号112外,转码还可以包括对视频信号110转换速率、转换加密、和/或转换比例以生成经处理的视频信号112。转码可以进一步包括将视频信号110的音频部分转码到不同的采样速率、编码标准或其他数字格式立体声到单声道等。
接口模块120可以经由通过WLAN、蓝牙连接、红外连接、无线电话接收器或其他无线数据连接的无线接收器,或者经由使用从LAN、因特网、电缆网络、电话网络或其他网络或从另一设备接收解密信号的有线接收器或其他设备的有线调制解调器或其他网络适配器来接收视频信号110。接口模块120还可以根据以太网协议、存储器卡协议、USB协议、火线(IEEE 1394)协议、SCSI协议、PCMCIA协议、或者其他标准或专有协议来接收视频信号110。
视频信号110和经处理的视频信号112可以各自是多种视频格式中的任何格式的、具有或不具有相关联的音频分量的模拟或数字视频信号。这种模拟视频信号可以包括诸如美国国家电视系统委员会制式(NTSC)、逐行倒相制式(PAL)或顺序传送与存储彩色电视系统(SECAM)之类的格式。这种数字视频格式可以包括诸如H.264、MPEG-4第10部分高级视频编码(AVC)或其他数字格式的格式,所述其他数字格式诸如运动图像专家组(MPEG)格式(诸如MPEG1、MPEG2或MPEG4)、Quicktime格式、Real Media格式、WindowsMedia Video(WMV)、音频视频交替(AVI)、高清媒体接口(HDMI)或者其他压缩或非压缩数字视频格式(标准或专有的)。
视频信号110和/或经处理的视频信号112可以与以下相关联地生成:机顶盒、电视接收器、个人计算机、有线电视接收器、卫星广播接收器、宽带调制解调器、3G收发信机、广播卫星系统、互联网协议(IP)电视系统、因特网、数字视频盘播放器、数字视频记录器、视频会议系统、视频安全系统、摄像机或其他视频设备。在本公开的一个实施例中,视频信号110和/或112可以包括广播视频信号,诸如电视信号、高清电视信号、增强的高清电视信号或者已经通过无线介质(要么直接地要么通过一个或多个卫星或者其他中继站)或通过电缆网络、光网络或其他传输网络来传送的其他广播视频信号。另外,视频信号110和/或经处理的视频信号112可以通过摄像机本地生成、由存储的视频文件生成、从记录介质(诸如磁带、磁盘或光盘)回放,并且可以包括通过公共或专用网络(诸如局域网、广域网、城域网或因特网)传送的流处理视频信号。
存储器模块140包括通用存储器空间142,通用存储器空间142被分离成多个存储器块。所述多个存储器块的第一子集被指定用于受信任的访问,并且所述多个存储器块的第二子集被指定用于非受信任的访问。存储器模块还包括寄存器空间144,寄存器空间144包括多个寄存器。所述多个寄存器的第一子集被指定用于受信任的访问,并且所述多个寄存器的第二子集被指定用于非受信任的访问。
存储器模块140还在通用存储器空间142的一个或多个存储器块中存储例如诸如Linux、Mac OS、MS Windows、Solaris或其他操作系统之类的操作系统和要由处理系统100执行的一个或多个应用。当被执行时,操作系统包括多个进程,为了确定每个进程可以访问哪些寄存器和哪些存储器块,所述多个进程被看作虚拟客户。“进程”是在计算机中运行的程序的实例。在大多数操作系统中,可以同时执行多个进程。在UNIX、Linux和一些其他的操作系统中,每当程序被启动(要么通过用户输入shell命令要么通过另一程序)时,进程开始。和任务一样,进程是关联于特定的一组数据的运行程序,使得该进程可被保持跟踪。由多个用户共享的应用在执行的某一阶段对于每个用户将一般地具有一个进程。进程可衍生子过程(subprocess),其称为子进程(并且启动进程有时被称为其父亲(parent))。子进程可以是父进程的副本并共享父进程的一些资源,但如果父进程被终止则不可以存在。进程可以通过进程间通信的几种方法来交换信息或以其他方式同步它们的操作。
另外,存储器模块140存储安全访问数据146,安全访问数据146由寄存器仲裁模块150用来对用于访问寄存器空间的请求进行仲裁,并由存储器仲裁模块155用来对用于访问存储器块的请求进行仲裁。尽管没有具体示出,但是存储器模块140可存储程序文件和其他数据文件、系统数据、缓冲器、驱动程序、实用程序和其他系统程序以及其他数据。存储器模块140可以是单个存储器设备或多个存储器设备。这种存储器设备可以包括硬盘驱动器或其他盘驱动器、只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、闪速存储器、高速缓冲存储器、和/或存储数字信息的任何设备。
处理模块130可以使用用作安全系统/主CPU的一个或多个嵌入式处理器132、134……来实现。处理器中的每个可被实现为一个或多个物理处理器、虚拟硬件块、接口设备或任何其他能够发出访问一个或多个存储器块和/或寄存器的请求的设备。嵌入式处理器132、134中的其他一些作为执行处理系统100的其他功能的其他客户而操作。接口模块120包括到其他设备的一个或多个接口,所述其他设备要么包括在装有处理系统100的设备中要么耦接到装有处理系统100的设备。这些接口122、124等可包括个人计算机接口(PCI)、个人计算机存储器卡国际协会(PCMCIA)接口、通用串行总线(USB)接口、以太网接口、火线(IEEE 1394)接口、小型计算机系统接口(SCSI)、设备测试接口(诸如联合测试行动组(JTAG)接口)、或其他接口(标准或专有的)。尽管没有具体示出,但是接口模块120可以包括到处理系统100的其他设备或模块的其他串行或并行接口。
接口122、124……和嵌入式处理器132、134……可以各自被认为是可请求对通用存储器空间142和寄存器空间144访问的实际(非虚拟)客户。每个实际客户也可以请求对通用存储器空间142和寄存器空间144访问。这些客户可以被指定作为受信任的或非受信任的。一些客户——例如更易受到黑客或其他非授权用户的篡改的客户——可以被指定作为非受信任的,而其他更安全的客户可以被指定作为受信任的。
类似地,对应于操作系统的各种进程的虚拟客户也可以被指定作为受信任的或非受信任的。一些进程——例如更易受到黑客或其他非授权用户的篡改的进程——可以被指定作为非受信任的,而其他更安全的进程可以被指定作为受信任的。
受信任的客户和虚拟客户被允许访问受信任的寄存器和存储器块以及非受信任的寄存器和存储器块。非受信任的客户和虚拟客户仅被允许访问非受信任的寄存器和存储器块。以此方式,可以拒绝不安全的客户和进程对安全寄存器和存储器的部分的访问,以避免篡改或丢失安全信息,而其他进程可以安全地访问该信息。
如结合图1所介绍的,存储器仲裁模块155从多个虚拟、实际客户中的至少一个接收访问多个存储器块中的选定一个的请求,并基于选定的存储器块是被指定用于受信任的访问还是非受信任的访问以及基于该实际或虚拟客户是受信任的还是非受信任的来确定是准许还是拒绝该请求。本文所描述的访问可以包括读访问和/或写访问。受信任或非受信任的不同指定可以应用于不同形式的访问。而且,成比例总数的存储器块可被分类为保护不可写的(protected not-writeable)。尝试写这些区域的任何客户将导致写入的抑制和状态比特的断言、中断、或指示出现了非法写事件的其他机制。
在实施例中,存储器仲裁模块155提供了负责仲裁存储器访问请求(诸如来自所有客户(虚拟或实际的)的读和写请求)并枚举目标存储器块的地址的中央硬件机制。可以使用平衡仲裁方案平等地仲裁所有客户和虚拟客户。在本公开的实施例中,为了安全性的目的,每个存储器的可寻址单元不是唯一地标识的。访问存储器块中的任何一个可寻址单元的请求相似地被看作对该存储器块中的任何或所有其余单元的请求。
在操作的例子中,存储器仲裁模块155接收访问通用存储器空间142的存储器块的请求,该请求包括该存储器块的一个或多个可寻址存储器单元的地址。存储器仲裁模块155基于这一个或多个地址确定对应于该请求的特定存储器块。存储器仲裁模块155评估安全访问数据146以确定做出该请求的客户是否是受信任的。如果是,则允许不受阻碍地完成读或写操作。然而如果该客户是非受信任的,则目标地址被解码以确定要被访问的特定存储器块。如果该目标地址是到被指定仅用于受信任的访问的存储器块的,则丢弃该操作。例如,读命令可被返回以NULL数据。写命令可被丢弃。然而如果安全访问数据146指示,该目标地址被指定用于非受信任访问的存储器块,则允许该操作不受阻碍地完成。
另外,针对上述访问限制,存储器仲裁模块155操作以指定存储器的可分类为可执行的区域,诸如基于每个实际或虚拟的客户。在对于给定的虚拟或实际客户被分类为可执行的区域中,在许可区域外的每个指令提取导致安全系统/主CPU的中断事件或其他机制。除了在可执行区域外的指令读请求的情况下生成中断事件或其他安全机制外,对可执行区域的写请求可以被有条件地丢弃。这些可执行区域是独特的集合,其可以是或可以不是和受信任/非受信任的指定相互排斥的。然而,受信任的指定和非受信任的指定是通过定义而相互排斥的。
使用这些控件,存储器仲裁模块155可以分割并指定存储器块为代码段,这些代码段仅可由特定的虚拟或实际客户执行,并进一步定义哪些存储器客户被许可来以其他方式访问/改变这些存储器块。例如,这些控件可以用于定义代码空间——特定的客户(即CPU或O/S进程)被许可从此执行,以及用于仅许可受信任的客户或进程改变代码空间。
存储器擦除模块165用作安全引导控制器(SBC)CPU,其负责安全地引导(boot)系统(即对在处理系统100中运行的代码解密和签名)。在启动(boot up)之后,该处理器可被分派任务来执行后台代码空间擦除,代码空间诸如通用存储器空间142和安全访问数据146。存储器擦除模块165可以例如在这些代码空间上运行SHA-256签名检查(signature check)。以这种方式,如果黑客以某种方法改变处理器打算执行的代码,则SBC处理器可以检测到攻击并采取行动以防止黑客执行它们的代码——例如通过重新设置安全系统/主处理器。
混淆模块170执行硬件混淆功能来改变到所有的存储器模块140或存储器模块140的外部存储器设备的每个读和写命令。硬件混淆功能可基于随机密钥实现地址混淆和/或密码混淆。每次处理系统100被重新设置时,混淆模块170可生成和/或使用新的随机密钥。该技术用于防止黑客改变存储器模块140的代码空间或保护其他数据。
处理系统100还包括寄存器空间144,寄存器空间144用于将多个寄存器数据存储在多个寄存器中以及用于存储对应于寄存器空间的安全访问数据。寄存器仲裁模块150从多个虚拟客户或多个实际客户中的至少一个接收访问多个寄存器中的选定一个的请求,并基于选定寄存器被指定用于受信任的访问还是非受信任的访问,以及基于虚拟或实际的客户是受信任的还是非受信任的,确定是准许还是拒绝该请求。
在本公开的实施例中,寄存器仲裁模块150可以通过状态机、数字逻辑电路系统或其他硬件来实现,以增强处理系统100的安全性。然而,在另选的实施例中,软件或固件可用于实现寄存器仲裁模块150。应当指出的是,寄存器仲裁模块150可以实现为独立设备或作为存储器仲裁模块155、存储器管理器或其他模块的部分。
在实施例中,寄存器仲裁模块150提供了负责仲裁寄存器访问请求(诸如来自所有客户的寄存器读和寄存器写请求)并枚举目标寄存器空间的地址的中央硬件机制。可以使用平衡仲裁方案平等地仲裁所有客户和虚拟客户。在本公开的实施例中,为了安全性的目的,每个寄存器的可寻址单元不是唯一地标识的。访问寄存器中的任何一个可寻址单元的请求相似地被看作对该寄存器中的任何或所有其余单元的请求。
在操作的例子中,寄存器仲裁模块150接收访问寄存器空间144的寄存器的请求,该请求包括该寄存器的一个或多个可寻址存储器单元的地址。寄存器仲裁模块150基于这一个或多个地址确定对应于该请求的特定寄存器。寄存器仲裁模块150评估安全访问数据146以确定做出该请求的客户是否是受信任的。如果是,则允许不受阻碍地完成读或写操作。然而如果该客户是非受信任的,则目标地址被解码以确定要被访问的特定寄存器。如果该目标地址是到被指定仅用于受信任的访问的寄存器的,则丢弃该操作。例如,读命令可被返回以NULL数据。写命令可被丢弃。然而如果安全访问数据146指示,该目标地址被指定用于非受信任访问的寄存器,则允许该操作不受阻碍地完成。
结合与图3-7相关联地讨论的例子呈现关于处理系统100的操作的进一步细节,这些细节包括通用存储器空间142、寄存器空间144、安全访问数据146的可选格式以及可选功能和特征。
图3呈现根据本公开进一步的实施例的寄存器空间144的框图表示。图4呈现根据本公开进一步的实施例的寄存器的框图表示。这些例子考虑了这样的情况:寄存器空间144被划分成M个寄存器,如图3所示。每个寄存器包括N个单元,每个单元都是可单独寻址的存储器位置,如图4所示。寄存器仲裁模块150对来自C个实际客户和V个虚拟客户的寄存器访问请求进行过滤,从而允许这些客户共享寄存器空间。C个实际客户可包括嵌入式CPU、PCI主机、USB主机、I2C主机、JTAG、任何的接口(122、124、……)、嵌入式处理器(132、134、……)。V个虚拟客户诸如操作系统的各种进程和/或具有对寄存器空间144的访问的其他机制。
如前面所讨论的,寄存器空间144的寄存器可以被分割为用于受信任的和非受信任的访问的库(bank)。寄存器库由寄存器设置定义为受信任的或非受信任的。这种限制可以应用于SOC内的任何寄存器客户,并且可以经由寄存器仲裁模块150用硬件强制执行(即每个寄存器读/写(R/W)必须是到许可的寄存器库的)。在该例子中,受信任的实际和虚拟客户可以R/W任何的寄存器库。尝试R/W到受信任的寄存器库的非受信任的虚拟和实际客户被拒绝。安全访问数据146可以存储在被指定作为受信任的一个或多个寄存器中。
在实施例中,寄存器库被分割为1K个库。单个寄存器客户可被指定作为受信任的或非受信任的,要么是全局的要么是基于逐个寄存器的。虚拟或实际客户的受信任或非受信任的状态可以由粘滞状态比特来指定,或者由使该指定持续(例如一旦客户被定义为非受信任的,该指定可以不被改变,直到芯片被重新设置)的其他机制来指定。
设置寄存器库的受信任或非受信任的状态的寄存器本身可以被限制为受信任的客户——例如在被配置之后,仅受信任的客户可改变对于哪些寄存器组是受信任的设置。在操作的一个例子中,寄存器仲裁模块150仅许可受信任的客户访问被分配在功能组中的特定寄存器库。例如可以使控制以太网接口的寄存器仅对操作TCP栈的客户可访问。这提供了当分配特定R/W功能给特定虚拟和/或实际客户时的很高程度的粒度。
虽然上文将寄存器状态指定描述为被实现为粘滞或持续的,但是其他安全机制也是可能的。寄存器空间的状态指示器可以位于寄存器空间本身“中”,因此可以由和其他空间相同的受信任/非受信任的机制保护。因此,如果期望,受信任的客户可以动态地改变受信任的和非受信任的客户的访问权限。非受信任的客户(一般地)会被阻止访问包含这些状态指示器的寄存器。包含这些指示器的寄存器可进一步可选地通过粘滞寄存器比特的方式“锁定”。
图5呈现根据本公开进一步的实施例的存储器空间142的框图表示。具体地,存储器空间142被分割为R个块。这些块可以包含操作系统、实用程序、应用及其他进程和可执行代码、和/或其他数据。存储器空间142被分割为受信任和非受信任的访问的区域。例如,典型的是使非受信任的应用和操作系统本身位于存储器的非受信任的区域内。典型地,使解密内容位于受信任的存储器区域中,即非受信任的客户不可以直接访问内容。密钥可以存储在存储器的受信任的部分中,或者存储在不可由任何软件(受信任和非受信任的)访问的单独的密钥存储存储器中。
在实施例中,区域由寄存器设置(高低水印)定义,寄存器设置定义存储器的受信任和非受信任的区域。该限制可以应用于SOC内的任何实际或虚拟的客户,并且由存储器仲裁模块155强制执行(即每个存储器读/写必须是到许可的区域的)。具体地,受信任的客户可以R/W存储器空间142的任何区域。非受信任的客户仅可以R/W到存储器空间142的非受信任的区域。
在操作的一种模式中,由寄存器空间144的寄存器以1兆字节的粒度设置高/低(Hi/Lo)水印。在高/低水印被设置之后,这些指定可通过粘滞比特被保护,粘滞比特通过将高/低地址存储在安全寄存器空间中或者通过其他安全机制而禁止对高/低水印的任何改变、直到重新设置芯片。以这种方式,存储器分区可以在受信任的软件加电时被设置且在其后决不改变,直到处理系统100被重新设置,否则,仅可以由受信任的客户做出改变。
虽然前面的讨论提到了高/低水印,但是应当指出,该术语通常是指特定存储器块的高低界限,或者更一般地指对于一个或多个特定的存储器块、存储器分区或存储器分段在存储器中的地址的限制或范围,所述一个或多个特定的存储器块、存储器分区或存储器分段可由这些存储器地址描述。更一般地,每个存储器块或其他分段或存储器分区可以由其自身的顶部和底部地址指定。考虑n+1个存储器块(0,1,……n),高低界限的地址可由以下表示:
顶部[0],底部[0],顶部[1],底部[1],……顶部[n],底部[n]每个存储器块x由范围(顶部[x],底部[x])界定,并认为是在内地(inclusively)安全。在另一个实施例中,每个存储器块x也可以实现为底部[x],尺寸[x]。同样,这意味着安全范围的起始地址和尺寸可用于确定范围的结尾。对安全区域的非受信任的访问可以被丢弃。
图6呈现根据本公开进一步的实施例的操作系统190的框图表示。示出了诸如Linux、Mac OS、MS Windows、Solaris或其他操作系统的包括多个操作系统进程192的操作系统190,多个操作系统进程192被看作V个虚拟客户,目的是为了确定哪些寄存器以及哪些存储器块可由每个进程访问。如上面所描述的,V个虚拟客户中的每个可分别被指定作为受信任或非受信任的,目的是为了确定用于读和写操作的存储器和寄存器访问以及为了沙盒(sandboxing)操作以确定哪些存储器块可被执行。
例如,可使用寄存器仲裁模块150和存储器仲裁模块155来保护在操作系统(诸如Linux)内运行的单独进程和操作系统本身的安全。从执行Linux进程的一个或多个处理器输出的硬件信号可以指示每个进程的受信任/非受信任的状态。寄存器仲裁模块150和存储器仲裁模块155将使用该信号基于每个Linux进程来限制存储器/寄存器访问以及执行沙盒操作,这类似于应用于实际存储器/寄存器客户的限制。
图7呈现根据本公开进一步的实施例的安全访问数据146的框图表示。安全访问数据146包括寄存器指定数据145和存储器块指定数据149。寄存器指定数据145指定M个寄存器中的每个用于受信任或非受信任的访问,存储器块指定数据149指定R个存储器块中的每个用于受信任或非受信任的访问并进一步指定存储器块是否可执行。安全访问数据146还包括客户过滤数据147和虚拟客户过滤数据148,客户过滤数据147将C个客户中的每个归类为受信任或非受信任的,虚拟客户过滤数据148将V个虚拟客户中的每个归类为受信任或非受信任的。该指定可以针对所有寄存器和存储器块被全局设置,或者可以包括用于寄存器的分别的受信任/非受信任指定,以及用于单独存储器块的受信任的/非受信任指定和/或分别的执行许可。
在实施例中,分配给每个客户和虚拟客户的受信任/非受信任的指定可以针对每个分别的寄存器或寄存器库以及针对每个分别的存储器块进行设置。具体地,客户过滤数据147可包括表示每个客户设备对于每个寄存器的指定的M比特数据以及表示每个客户设备对于每个存储器块的指定的R比特数据。
图8呈现根据本公开的实施例的视频编码系统200的框图表示。具体地,视频编码系统200(诸如视频处理系统100)根据H.264、MPEG-4第10部分高级视频编码(AVC)或其他数字格式、或者其他视频格式的许多功能和特征操作来编码输入视频信号110以形成经处理的视频信号112。所述其他数字格式诸如运动图像专家组(MPEG)格式(诸如MPEG1、MPEG2或MPEG4)、VC-1(SMPTE标准421M)、Quicktime格式、Real Media格式、Windows Media Video(WMV)、音频视频交替(AVI)、高清媒体接口(HDMI)或其他数字视频格式(标准或专有的)。
图9呈现根据本公开的实施例的视频解码系统202的框图表示。具体地,视频解码系统202(诸如视频处理系统100)根据H.264、MPEG-4第10部分高级视频编码(AVC)或其他数字格式、或者其他视频格式的许多功能和特征操作来解码输入视频信号110以形成经处理的视频信号112。所述其他数字格式诸如运动图像专家组(MPEG)格式(诸如MPEG1、MPEG2或MPEG4)、VC-1(SMPTE标准421M)、Quicktime格式、Real Media格式、Windows Media Video(WMV)、音频视频交替(AVI)、高清媒体接口(HDMI)或其他数字视频格式(标准或专有的)。
图10呈现根据本公开的实施例的视频转码系统204的框图表示。具体地,视频转码系统204(诸如视频处理系统100)根据H.264、MPEG-4第10部分高级视频编码(AVC)或其他数字格式、或者其他视频格式的许多功能和特征操作来转码视频信号110以形成经处理的视频信号112。所述其他数字格式诸如运动图像专家组(MPEG)格式(诸如MPEG1、MPEG2或MPEG4)、VC-1(SMPTE标准421M)、Quicktime格式、Real Media格式、Windows Media Video(WMV)、音频视频交替(AVI)、高清媒体接口(HDMI)或其他数字视频格式(标准或专有的)。
图11呈现根据本公开的实施例的视频分发系统175的框图表示。具体地,经处理的视频信号112通过传输路径122被发送到视频解码系统202。视频解码系统202转而可以操作以解码经处理的视频信号112用于显示在诸如电视12、计算机14或其他显示设备的显示设备上。
传输路径122可包括根据无线局域网协议操作的无线路径,所述无线局域网协议诸如802.11协议、WIMAX协议、蓝牙协议等。而且,传输路径可包括根据有线协议操作的有线路径,所述有线协议诸如USB协议、高清多媒体接口(HDMI)协议、以太网协议或其他协议。
图12呈现根据本公开的实施例的视频存储系统179的框图表示。具体地,设备11是具有内置数字视频记录器功能性的机顶盒、独立数字视频记录器、DVD记录器/播放器、或者在存储装置181中存储经处理的视频信号112以用于在视频显示设备(诸如电视12)上显示的其他设备。存储装置181可以包括硬盘驱动器、光盘驱动器或其他盘驱动器、只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、闪速存储器、高速缓冲存储器、和/或存储数字信息的任何设备。存储装置181可以集成在设备11中或者经由网络、有线耦合或其他连接而耦接到设备11。
虽然视频编码系统200被示出为单独的设备,但是它可以进一步并入到设备11中。虽然示出了这些特定的设备,但是视频存储系统179可以包括硬驱动器、闪速存储器设备、计算机、DVD刻录机、或能够根据与本文所描述的本公开的特征和功能相结合进行描述的方法和系统而生成、存储、解码和/或显示视频信号的任何其他设备。
图13呈现根据本公开的实施例的方法的流程图表示。具体而言,呈现了用于与结合图1-12所描述的一个或多个功能和特征相结合使用的方法。步骤390包括将存储器模块分离为多个存储器块,其中所述多个存储器块的第一子集被指定用于受信任的访问并且所述多个存储器块的第二子集被指定用于非受信任的访问,其中所述多个存储器块存储具有多个操作系统进程的操作系统,并且其中所述存储器模块进一步存储安全访问数据。步骤392包括通过至少一个处理器,经由所述多个操作系统进程来执行所述操作系统,其中所述多个操作系统进程中的每个被指定作为多个虚拟客户中的相应一个。
图14呈现根据本公开的实施例的方法的流程图表示。具体而言,呈现了用于与结合图1-13所描述的一个或多个功能和特征相结合使用的方法。在步骤400中,从多个虚拟客户的至少一个接收到访问多个存储器块中的一个的请求。在步骤402中,检索对应于所述多个虚拟客户中的所述至少一个的安全访问数据,以确定所述多个虚拟客户中的所述至少一个是否是受信任的,如判决框404所示。在步骤406中,当所述多个虚拟客户中的所述至少一个是受信任的时,准许访问所述多个存储器块中的所述一个的所述请求。当所述多个客户中的所述至少一个不是受信任的时,安全访问数据被评估以确定所述多个存储器块中的所述一个是否被指定作为非受信任的,如步骤408和判决框410所示。当所述多个存储器块中的所述一个被指定用于非受信任的访问时,该方法还继续在步骤406中准许访问所述多个存储器块中的所述一个的请求。在步骤412中,当所述多个存储器块中的所述一个被指定用于受信任的访问时,拒绝访问所述多个存储器块中的所述一个的所述请求。
图15呈现根据本公开的实施例的方法的流程图表示。具体而言,呈现了用于与结合图1-14所描述的一个或多个功能和特征相结合使用的方法。在步骤420中,从多个虚拟客户的至少一个接收到访问多个寄存器中的一个的请求。在步骤422中,检索对应于多个客户中的所述至少一个的安全访问数据,以确定所述多个虚拟客户中的所述至少一个是否是受信任的,如判决框424所示。在步骤426中,当所述多个虚拟客户中的所述至少一个是受信任的时,准许访问所述多个寄存器中的所述一个的所述请求。当所述多个虚拟客户中的所述至少一个不是受信任的时,安全访问数据被评估以确定寄存器是否被指定用于非受信任的访问,如步骤428和判决框430所示。当寄存器被指定用于非受信任的访问时,该方法还继续在步骤426中准许访问所述多个寄存器中的所述一个的所述请求。在步骤432中,当寄存器被指定用于受信任的访问时,拒绝访问所述多个寄存器中的所述一个的所述请求。
可以考虑如下另外的条款来描述本公开的各种另外的示例实施例:
条款1、一种处理系统,包括:
存储器模块,所述存储器模块包括多个存储器块,其中所述多个存储器块的第一子集被指定用于受信任的访问并且所述多个存储器块的第二子集被指定用于非受信任的访问,其中所述多个存储器块存储具有多个操作系统进程的操作系统,并且其中所述存储器模块进一步存储安全访问数据;
耦接到存储器模块的多个客户,所述多个客户包括经由所述多个操作系统进程来执行所述操作系统的至少一个处理器,其中所述多个操作系统进程中的每一个被指定作为多个虚拟客户中的相应一个;
耦接到所述存储器模块和所述多个客户的存储器仲裁模块,其中所述存储器仲裁模块执行以下操作:
从所述多个虚拟客户中的至少一个接收访问所述多个存储器块中的第一选定存储器块的第一请求;
确定以下之一:所述多个存储器块中的第一选定存储器块被指定用于受信任的访问,和所述多个存储器块中的第一选定存储器块被指定用于非受信任的访问;
当所述多个存储器块中的第一选定存储器块被指定用于非受信任的访问时,准许访问所述多个存储器块中的第一选定存储器块的第一请求;
当所述多个存储器块中的第一选定存储器块被指定用于受信任的访问时,检索与所述多个虚拟客户中的所述至少一个相对应的安全访问数据,以确定所述多个虚拟客户中的所述至少一个是否是受信任的;以及
当所述多个虚拟客户中的所述至少一个是受信任的时,准许访问所述多个存储器块中的第一选定存储器块的第一请求。
条款2、根据条款1所述的处理系统,其中所述存储器仲裁模块进一步执行以下操作:
当所述多个存储器块中的第一选定存储器块被指定用于受信任的访问、并且所述多个虚拟客户中的所述至少一个是非受信任的时,拒绝访问所述多个存储器块中的第一选定存储器块的第一请求。
条款3、根据条款1所述的处理系统,其中所述存储器仲裁模块执行以下操作:
从所述多个客户中的至少一个接收访问所述多个存储器块中的第二选定存储器块的第二请求;
确定以下之一:所述多个存储器块中的第二选定存储器块被指定用于受信任的访问,和所述多个存储器块中的第二选定存储器块被指定用于非受信任的访问;
当所述多个存储器块中的第二选定存储器块被指定用于非受信任的访问时,准许访问所述多个存储器块中的第二选定存储器块的第二请求;
当所述多个存储器块中的第二选定存储器块被指定用于受信任的访问时,检索与所述多个客户中的所述至少一个相对应的安全访问数据,以确定所述多个客户中的所述至少一个是否是受信任的;以及
当所述多个虚拟客户中的所述至少一个是受信任的时,准许访问所述多个存储器块中的第二选定存储器块的第二请求。
条款4、根据条款3所述的处理系统,其中所述存储器仲裁模块进一步执行以下操作:
当所述多个存储器块中的第二选定存储器块被指定用于受信任的访问、并且所述多个客户中的所述至少一个是非受信任的时,拒绝访问所述多个存储器块中的第二选定存储器块的第二请求。
条款5、根据条款1所述的处理系统,其中所述存储器模块包括用于将多个寄存器数据存储在多个寄存器中的寄存器空间,其中所述多个寄存器的第一子集被指定用于受信任的访问并且所述多个寄存器的第二子集被指定用于非受信任的访问,并且其中所述处理系统进一步包括:
耦接到所述存储器模块和所述多个客户的寄存器仲裁模块,其中所述寄存器仲裁模块执行以下操作:
从所述多个虚拟客户中的至少一个接收访问所述多个寄存器中的选定寄存器的请求;
确定以下之一:所述多个寄存器中的选定寄存器被指定用于受信任的访问,和所述多个寄存器中的选定寄存器被指定用于非受信任的访问;
当所述多个寄存器中的选定寄存器被指定用于非受信任的访问时,准许访问所述多个寄存器中的选定寄存器的所述请求;
当所述多个寄存器中的选定寄存器被指定用于受信任的访问时,检索与所述多个虚拟客户中的所述至少一个相对应的安全访问数据,以确定所述多个虚拟客户中的所述至少一个是否是受信任的;以及
当所述多个虚拟客户中的所述至少一个是受信任的时,准许访问所述多个寄存器中的选定寄存器的所述请求。
条款6、根据条款5所述的处理系统,其中所述寄存器仲裁模块进一步执行以下操作:
当所述多个寄存器中的选定寄存器被指定用于受信任的访问、并且所述多个虚拟客户中的所述至少一个是非受信任的时,拒绝访问所述多个寄存器中的选定寄存器的所述请求。
条款7、根据条款1所述的处理系统,其中所述至少一个处理器执行视频处理应用;
其中,所述多个客户包括至少一个接口单元,所述至少一个接口单元接收视频信号并输出由所述视频处理应用基于以下中的至少一个而生成的经处理的视频信号:
所述视频信号的编码;
所述视频信号的解码;和
所述视频信号的转码。
条款8、根据条款7所述的处理系统,其中所述至少一个处理器包括以下中的至少一个:
耦接到所述至少一个接口单元的编码引擎,用于编码所述视频信号;和
耦接到所述至少一个接口单元的解码引擎,用于所述视频信号的解码。
条款9、一种方法,包括以下操作:
将存储器模块分离为多个存储器块,其中所述多个存储器块的第一子集被指定用于受信任的访问并且所述多个存储器块的第二子集被指定用于非受信任的访问,其中所述多个存储器块存储具有多个操作系统进程的操作系统,并且其中所述存储器模块进一步存储安全访问数据;
通过至少一个处理器经由所述多个操作系统进程来执行所述操作系统,其中所述多个操作系统进程中的每一个被指定作为多个虚拟客户中的相应一个;
从所述多个虚拟客户中的至少一个接收访问所述多个存储器块中的第一选定存储器块的第一请求;
确定以下之一:所述多个存储器块中的第一选定存储器块被指定用于受信任的访问,和所述多个存储器块中的第一选定存储器块被指定用于非受信任的访问;
当所述多个存储器块中的第一选定存储器块被指定用于非受信任的访问时,准许访问所述多个存储器块中的第一选定存储器块的第一请求;
当所述多个存储器块中的第一选定存储器块被指定用于受信任的访问时,检索与所述多个虚拟客户中的所述至少一个相对应的安全访问数据,以确定所述多个虚拟客户中的所述至少一个是否是受信任的;以及
当所述多个虚拟客户中的所述至少一个是受信任的时,准许访问所述多个存储器块中的第一选定存储器块的第一请求。
条款10、根据条款9所述的方法,进一步包括以下操作:
当所述多个存储器块中的第一选定存储器块被指定用于受信任的访问、并且所述多个虚拟客户中的所述至少一个是非受信任的时,拒绝访问所述多个存储器块中的第一选定存储器块的第一请求。
条款11、根据条款9所述的方法,进一步包括以下操作:
从所述多个客户中的至少一个接收访问所述多个存储器块中的第二选定存储器块的第二请求;
确定以下之一:所述多个存储器块中的第二选定存储器块被指定用于受信任的访问,和所述多个存储器块中的第二选定存储器块被指定用于非受信任的访问;
当所述多个存储器块中的第二选定存储器块被指定用于非受信任的访问时,准许访问所述多个存储器块中的第二选定存储器块的第二请求;
当所述多个存储器块中的第二选定存储器块被指定用于受信任的访问时,检索与所述多个客户中的所述至少一个相对应的安全访问数据,以确定所述多个客户中的所述至少一个是否是受信任的;以及
当所述多个虚拟客户中的所述至少一个是受信任的时,准许访问所述多个存储器块中的第二选定存储器块的第二请求。
条款12、根据条款11所述的方法,进一步包括以下操作:
当所述多个存储器块中的第二选定存储器块被指定用于受信任的访问、并且所述多个客户中的所述至少一个是非受信任的时,拒绝访问所述多个存储器块中的第二选定存储器块的第二请求。
条款13、根据条款9所述的方法,其中所述存储器模块包括用于将多个寄存器数据存储在多个寄存器中的寄存器空间,其中所述多个寄存器的第一子集被指定用于受信任的访问并且所述多个寄存器的第二子集被指定用于非受信任的访问,并且其中所述方法进一步包括以下操作:
从所述多个虚拟客户中的至少一个接收访问所述多个寄存器中的选定寄存器的请求;
确定以下之一:所述多个寄存器中的选定寄存器被指定用于受信任的访问,和所述多个寄存器中的选定寄存器被指定用于非受信任的访问;
当所述多个寄存器中的选定寄存器被指定用于非受信任的访问时,准许访问所述多个寄存器中的选定寄存器的所述请求;
当所述多个寄存器中的选定寄存器被指定用于受信任的访问时,检索与所述多个虚拟客户中的所述至少一个相对应的安全访问数据,以确定所述多个虚拟客户中的所述至少一个是否是受信任的;以及
当所述多个虚拟客户中的所述至少一个是受信任的时,准许访问所述多个寄存器中的选定寄存器的所述请求。
条款14、根据条款13所述的方法,进一步包括以下操作:
当所述多个寄存器中的选定寄存器被指定用于受信任的访问、并且所述多个虚拟客户中的所述至少一个是非受信任的时,拒绝访问所述多个寄存器中的选定寄存器的所述请求。
条款15、根据条款9所述的方法,进一步包括以下操作:
通过所述多个客户中的至少一个接收视频信号;和
通过所述至少一个处理器执行视频处理应用,所述视频处理应用通过以下中的至少一个来处理所述视频信号:
所述视频信号的编码;
所述视频信号的解码;和
所述视频信号的转码。
要指出的是,如本文可以使用的,诸如比特流、流、信号序列等(或它们的等同)的术语已被可交换地用来描述数字信息,所述数字信息的内容对应于多种所期望类型(例如数据、视频、语音、音频等,其任何一个可一般地称为“数据”)中的任何类型。
如本文可以使用的,术语“配置为”、“操作地耦接到”、“耦接到”和/或“耦接”包括项目之间的直接耦接和/或项目之间经由中介项目的间接耦接(例如项目包括但不限于部件、元件、电路和/或模块),其中对于间接耦接来说,中介项目不修改信号的信息但可以调整其电流水平、电压水平和/或功率水平。如本文可以进一步使用的,隐式耦合(即其中一个元件通过推理(inference)耦接到另一元件)包括两个项目之间的和“耦接到”的方式相同的直接和间接耦合。如本文可以再进一步使用的,术语“配置为”、“可操作来”、“耦接到”或“操作地耦接到”指示项目包括电力连接、输入、输出等中的一个或多个以在被激活时执行一个或多个其对应的功能,并且还可以包括到一个或多个其他项目的隐式耦合。如本文可以更进一步使用的,术语“与……相关联”包括单独项目的直接和/或间接耦接以及/或者一个项目嵌入在另一项目内。
如本文还可以使用的,术语“处理模块”、“处理电路”、“处理器”和/或“处理单元”可以是单个处理设备或多个处理设备。这样的处理设备可以是微处理器、微控制器、数字信号处理器、微型计算机、中央处理单元、现场可编程门阵列、可编程逻辑器件、状态机、逻辑电路系统、模拟电路系统、数字电路系统、和/或基于电路系统的硬编码和/或操作性指令来操作信号(模拟和/或数字)的任何设备。处理模块、模块、处理电路和/或处理单元可以是或者进一步包括存储器和/或集成的存储器元件,其可以是单个存储器设备、多个存储器设备和/或另一处理模块、模块、处理电路和/或处理单元的嵌入式电路系统。这种存储器设备可以是只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、闪速存储器、高速缓冲存储器和/或存储数字信息的任何设备。要指出,如果处理模块、模块、处理电路和/或处理单元包括多于一个的处理设备,则这些处理设备可以集中地放置(例如,经由有线和/或无线总线结构直接耦接在一起)或者可以分布式地放置(例如,经由通过局域网和/或广域网的间接耦接的云计算)。要进一步指出,如果处理模块、模块、处理电路和/或处理单元通过状态机、模拟电路系统、数字电路系统和/或逻辑电路系统而实现一个或多个其功能,则存储对应的操作性指令的存储器和/或存储器元件可以嵌入在一电路系统内或者在该电路系统外部,所述电路系统包括状态机、模拟电路系统、数字电路系统和/或逻辑电路系统。还要进一步指出,存储器元件可以存储与在一个或多个附图中所描述的步骤和/或功能中的至少一些相对应的硬编码和/或操作性指令,并且处理模块、模块、处理电路和/或处理单元执行所述硬编码和/或操作性指令。这种存储器设备或存储器元件可以包括在制造品中。
上面已经借助于对指定功能的性能及其关系进行说明的方法步骤来描述了一个或多个实施例。为了便于描述,此处任意限定了这些功能性构造框和方法步骤的边界和顺序。可以限定替代的边界和顺序,只要指定的功能和关系被适当地执行。因此,任何这种替代的边界或顺序在权利要求的范围和精神内。而且,为了便于描述,已经任意限定了这些功能性构造框的边界。可以限定替代的边界,只要某些重要的功能被适当地执行。类似地,也可已经在此任意限定了流程图框来说明某些重要的功能。
在使用的范围上,可以以其他方式限定了流程图框边界和顺序,并且仍执行某些重要的功能。因此,对功能性构造框和流程图框和顺序的这种替代的限定在权利要求的范围和精神内。本领域的一般技术人员还将认识到,本文的功能性构造框和其他说明性框、模块和组件可以如所描述地实现,或者由分立组件、专用集成电路、执行适当软件的处理器等或其任何组合来实现。
另外,流程图可以包括“开始”和/或“继续”指示。“开始”和“继续”指示反映出所呈现的步骤可以可选地并入其他例程中或以其他方式与其他例程结合使用。在该上下文中,“开始”指示出未具体示出的其他活动可以先于所呈现的第一步骤的开始。而且,“继续”指示反映出所呈现的步骤可以执行多次以及/或者未具体示出的其他活动可以在所呈现的步骤之后。此外,虽然流程图指示了步骤的特定次序,但是其他次序同样是可以的,只要保持了因果关系的原则。
本文使用一个或多个实施例来说明一个或多个方面、一个或多个特征、一个或多个概念、和/或一种或多种例子。装置、制造品、机器的实体实施例和/或进程的实体实施例可以包括参照本文所讨论的实施例中的一个或多个所描述的这些方面、特征、概念、例子等中的一个或多个。此外,在图和图之间,实施例可结合相同或类似地命名的功能、步骤、模块等,它们可以使用相同或不同的编号,这样,这些功能、步骤、模块等可以是相同或类似的功能、步骤、模块等,或者是不同的功能、步骤、模块等。
除非特别相反地声明,往来于本文所呈现的任何附图中的元件的信号以及这些元件之间的信号可以是模拟或数字的、连续时间或离散时间的、以及单端(single-ended)或差分(differential)的。例如,如果信号路径被示出为单端路径,则其也表示差分信号路径。类似地,如果信号路径被示出为差分路径,则其也表示单端信号路径。虽然本文描述了一个或多个特定架构,但可以同样地实现使用未明确示出的一个或多个数据总线、元件之间的直接连接、和/或其他元件(如本领域中的普通技术人员所认识到的)之间的间接耦接的其他架构。
在一个或多个实施例的描述中使用了术语“模块”。模块通过设备实现一个或多个功能,所述设备诸如处理器或者其他处理设备或其他硬件,其他处理设备或其他硬件可以包括存储操作性指令的存储器或与这种存储器相关联地操作。模块可以独立地操作以及/或者结合软件和/或固件操作。如本文所使用的,模块可以含有一个或多个子模块,所述一个或多个子模块各自可以是一个或多个模块。
虽然本文明确地描述了一个或多个实施例的各种功能和特征的特定组合,但是这些特征和功能的其他组合同样是可能的。本公开不限于本文所公开的特定例子,并且特别地包括这些其他组合。
Claims (10)
1.一种处理系统,包括:
存储器模块,所述存储器模块包括多个存储器块,其中所述多个存储器块的第一子集被指定用于受信任的访问并且所述多个存储器块的第二子集被指定用于非受信任的访问,其中所述多个存储器块存储具有多个操作系统进程的操作系统,并且其中所述存储器模块进一步存储安全访问数据;
耦接到存储器模块的多个客户,所述多个客户包括经由所述多个操作系统进程来执行所述操作系统的至少一个处理器,其中所述多个操作系统进程中的每一个被指定作为多个虚拟客户中的相应一个;
耦接到所述存储器模块和所述多个客户的存储器仲裁模块,其中所述存储器仲裁模块执行以下操作:
从所述多个虚拟客户中的至少一个接收访问所述多个存储器块中的第一选定存储器块的第一请求;
确定以下之一:所述多个存储器块中的第一选定存储器块被指定用于受信任的访问,和所述多个存储器块中的第一选定存储器块被指定用于非受信任的访问;
当所述多个存储器块中的第一选定存储器块被指定用于非受信任的访问时,准许访问所述多个存储器块中的第一选定存储器块的第一请求;
当所述多个存储器块中的第一选定存储器块被指定用于受信任的访问时,检索与所述多个虚拟客户中的所述至少一个相对应的安全访问数据,以确定所述多个虚拟客户中的所述至少一个是否是受信任的;以及
当所述多个虚拟客户中的所述至少一个是受信任的时,准许访问所述多个存储器块中的第一选定存储器块的第一请求。
2.根据权利要求1所述的处理系统,其中所述存储器仲裁模块进一步执行以下操作:
当所述多个存储器块中的第一选定存储器块被指定用于受信任的访问、并且所述多个虚拟客户中的所述至少一个是非受信任的时,拒绝访问所述多个存储器块中的第一选定存储器块的第一请求。
3.根据权利要求1所述的处理系统,其中所述存储器仲裁模块执行以下操作:
从所述多个客户中的至少一个接收访问所述多个存储器块中的第二选定存储器块的第二请求;
确定以下之一:所述多个存储器块中的第二选定存储器块被指定用于受信任的访问,和所述多个存储器块中的第二选定存储器块被指定用于非受信任的访问;
当所述多个存储器块中的第二选定存储器块被指定用于非受信任的访问时,准许访问所述多个存储器块中的第二选定存储器块的第二请求;
当所述多个存储器块中的第二选定存储器块被指定用于受信任的访问时,检索与所述多个客户中的所述至少一个相对应的安全访问数据,以确定所述多个客户中的所述至少一个是否是受信任的;
当所述多个虚拟客户中的所述至少一个是受信任的时,准许访问所述多个存储器块中的第二选定存储器块的第二请求;以及
当所述多个存储器块中的第二选定存储器块被指定用于受信任的访问、并且所述多个客户中的所述至少一个是非受信任的时,拒绝访问所述多个存储器块中的第二选定存储器块的第二请求。
4.根据权利要求1所述的处理系统,其中所述存储器模块包括用于将多个寄存器数据存储在多个寄存器中的寄存器空间,其中所述多个寄存器的第一子集被指定用于受信任的访问并且所述多个寄存器的第二子集被指定用于非受信任的访问,并且其中所述处理系统进一步包括:
耦接到所述存储器模块和所述多个客户的寄存器仲裁模块,其中所述寄存器仲裁模块执行以下操作:
从所述多个虚拟客户中的至少一个接收访问所述多个寄存器中的选定寄存器的请求;
确定以下之一:所述多个寄存器中的选定寄存器被指定用于受信任的访问,和所述多个寄存器中的选定寄存器被指定用于非受信任的访问;
当所述多个寄存器中的选定寄存器被指定用于非受信任的访问时,准许访问所述多个寄存器中的选定寄存器的所述请求;
当所述多个寄存器中的选定寄存器被指定用于受信任的访问时,检索与所述多个虚拟客户中的所述至少一个相对应的安全访问数据,以确定所述多个虚拟客户中的所述至少一个是否是受信任的;
当所述多个虚拟客户中的所述至少一个是受信任的时,准许访问所述多个寄存器中的选定寄存器的所述请求;以及
当所述多个寄存器中的选定寄存器被指定用于受信任的访问、并且所述多个虚拟客户中的所述至少一个是非受信任的时,拒绝访问所述多个寄存器中的选定寄存器的所述请求。
5.根据权利要求1所述的处理系统,其中所述至少一个处理器执行视频处理应用;
其中,所述多个客户包括至少一个接口单元,所述至少一个接口单元接收视频信号并输出由所述视频处理应用基于以下中的至少一个而生成的经处理的视频信号:
所述视频信号的编码;
所述视频信号的解码;和
所述视频信号的转码,
并且其中,所述至少一个处理器包括以下中的至少一个:
耦接到所述至少一个接口单元的编码引擎,用于编码所述视频信号;和
耦接到所述至少一个接口单元的解码引擎,用于所述视频信号的解码。
6.一种方法,包括以下操作:
将存储器模块分离为多个存储器块,其中所述多个存储器块的第一子集被指定用于受信任的访问并且所述多个存储器块的第二子集被指定用于非受信任的访问,其中所述多个存储器块存储具有多个操作系统进程的操作系统,并且其中所述存储器模块进一步存储安全访问数据;
通过至少一个处理器经由所述多个操作系统进程来执行所述操作系统,其中所述多个操作系统进程中的每一个被指定作为多个虚拟客户中的相应一个;
从所述多个虚拟客户中的至少一个接收访问所述多个存储器块中的第一选定存储器块的第一请求;
确定以下之一:所述多个存储器块中的第一选定存储器块被指定用于受信任的访问,和所述多个存储器块中的第一选定存储器块被指定用于非受信任的访问;
当所述多个存储器块中的第一选定存储器块被指定用于非受信任的访问时,准许访问所述多个存储器块中的第一选定存储器块的第一请求;
当所述多个存储器块中的第一选定存储器块被指定用于受信任的访问时,检索与所述多个虚拟客户中的所述至少一个相对应的安全访问数据,以确定所述多个虚拟客户中的所述至少一个是否是受信任的;以及
当所述多个虚拟客户中的所述至少一个是受信任的时,准许访问所述多个存储器块中的第一选定存储器块的第一请求。
7.根据权利要求6所述的方法,进一步包括以下操作:
当所述多个存储器块中的第一选定存储器块被指定用于受信任的访问、并且所述多个虚拟客户中的所述至少一个是非受信任的时,拒绝访问所述多个存储器块中的第一选定存储器块的第一请求。
8.根据权利要求6所述的方法,进一步包括以下操作:
从所述多个客户中的至少一个接收访问所述多个存储器块中的第二选定存储器块的第二请求;
确定以下之一:所述多个存储器块中的第二选定存储器块被指定用于受信任的访问,和所述多个存储器块中的第二选定存储器块被指定用于非受信任的访问;
当所述多个存储器块中的第二选定存储器块被指定用于非受信任的访问时,准许访问所述多个存储器块中的第二选定存储器块的第二请求;
当所述多个存储器块中的第二选定存储器块被指定用于受信任的访问时,检索与所述多个客户中的所述至少一个相对应的安全访问数据,以确定所述多个客户中的所述至少一个是否是受信任的;
当所述多个虚拟客户中的所述至少一个是受信任的时,准许访问所述多个存储器块中的第二选定存储器块的第二请求;以及
当所述多个存储器块中的第二选定存储器块被指定用于受信任的访问、并且所述多个客户中的所述至少一个是非受信任的时,拒绝访问所述多个存储器块中的第二选定存储器块的第二请求。
9.根据权利要求6所述的方法,其中所述存储器模块包括用于将多个寄存器数据存储在多个寄存器中的寄存器空间,其中所述多个寄存器的第一子集被指定用于受信任的访问并且所述多个寄存器的第二子集被指定用于非受信任的访问,并且其中所述方法进一步包括以下操作:
从所述多个虚拟客户中的至少一个接收访问所述多个寄存器中的选定寄存器的请求;
确定以下之一:所述多个寄存器中的选定寄存器被指定用于受信任的访问,和所述多个寄存器中的选定寄存器被指定用于非受信任的访问;
当所述多个寄存器中的选定寄存器被指定用于非受信任的访问时,准许访问所述多个寄存器中的选定寄存器的所述请求;
当所述多个寄存器中的选定寄存器被指定用于受信任的访问时,检索与所述多个虚拟客户中的所述至少一个相对应的安全访问数据,以确定所述多个虚拟客户中的所述至少一个是否是受信任的;
当所述多个虚拟客户中的所述至少一个是受信任的时,准许访问所述多个寄存器中的选定寄存器的所述请求;以及
当所述多个寄存器中的选定寄存器被指定用于受信任的访问、并且所述多个虚拟客户中的所述至少一个是非受信任的时,拒绝访问所述多个寄存器中的选定寄存器的所述请求。
10.根据权利要求6所述的方法,进一步包括以下操作:
通过所述多个客户中的至少一个接收视频信号;和
通过所述至少一个处理器执行视频处理应用,所述视频处理应用通过以下中的至少一个来处理所述视频信号:
所述视频信号的编码;
所述视频信号的解码;和
所述视频信号的转码。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361893116P | 2013-10-18 | 2013-10-18 | |
US61/893,116 | 2013-10-18 | ||
US14/314,691 US20150113594A1 (en) | 2013-10-18 | 2014-06-25 | Processing system with virtual clients and methods for use therewith |
US14/314,691 | 2014-06-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104573546A true CN104573546A (zh) | 2015-04-29 |
Family
ID=51798966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410551293.2A Pending CN104573546A (zh) | 2013-10-18 | 2014-10-17 | 具有虚拟客户的处理系统及其使用方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20150113594A1 (zh) |
EP (1) | EP2863334B1 (zh) |
CN (1) | CN104573546A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11456855B2 (en) * | 2019-10-17 | 2022-09-27 | Arm Limited | Obfuscating data at-transit |
US11443071B2 (en) * | 2020-02-13 | 2022-09-13 | SiFive, Inc. | Secure debug architecture |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673251A (zh) * | 2008-09-05 | 2010-03-17 | Vixs系统公司 | 具有特许存储器的设备及其应用 |
CN101686124A (zh) * | 2008-09-23 | 2010-03-31 | Vixs系统公司 | 保护加密信号的安全模块及与之结合使用的系统和方法 |
US7768959B1 (en) * | 2004-04-21 | 2010-08-03 | Marvell International Ltd. | All-in-one wireless network device |
CN101910976A (zh) * | 2008-03-18 | 2010-12-08 | 高通股份有限公司 | 从非易失性存储器中高效低功率检索媒体数据的技术 |
US8156503B2 (en) * | 2008-02-12 | 2012-04-10 | International Business Machines Corporation | System, method and computer program product for accessing a memory space allocated to a virtual machine |
CN102918865A (zh) * | 2010-06-28 | 2013-02-06 | 英特尔公司 | 使用虚拟化保护视频内容 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090217058A1 (en) * | 2008-02-27 | 2009-08-27 | Spansion Llc | Secure data transfer after authentication between memory and a requester |
GB2460393B (en) * | 2008-02-29 | 2012-03-28 | Advanced Risc Mach Ltd | A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry |
US20100017893A1 (en) * | 2008-07-21 | 2010-01-21 | Ati Technologies Ulc | System for Securing Register Space and Method of Securing the Same |
US8811497B2 (en) * | 2009-06-24 | 2014-08-19 | Vixs Systems, Inc | Processing system with register arbitration and methods for use therewith |
US8886699B2 (en) * | 2011-01-21 | 2014-11-11 | Cloudium Systems Limited | Offloading the processing of signals |
US9298715B2 (en) * | 2012-03-07 | 2016-03-29 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
-
2014
- 2014-06-25 US US14/314,691 patent/US20150113594A1/en not_active Abandoned
- 2014-10-15 EP EP14189072.3A patent/EP2863334B1/en not_active Not-in-force
- 2014-10-17 CN CN201410551293.2A patent/CN104573546A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7768959B1 (en) * | 2004-04-21 | 2010-08-03 | Marvell International Ltd. | All-in-one wireless network device |
US8156503B2 (en) * | 2008-02-12 | 2012-04-10 | International Business Machines Corporation | System, method and computer program product for accessing a memory space allocated to a virtual machine |
CN101910976A (zh) * | 2008-03-18 | 2010-12-08 | 高通股份有限公司 | 从非易失性存储器中高效低功率检索媒体数据的技术 |
CN101673251A (zh) * | 2008-09-05 | 2010-03-17 | Vixs系统公司 | 具有特许存储器的设备及其应用 |
CN101686124A (zh) * | 2008-09-23 | 2010-03-31 | Vixs系统公司 | 保护加密信号的安全模块及与之结合使用的系统和方法 |
CN102918865A (zh) * | 2010-06-28 | 2013-02-06 | 英特尔公司 | 使用虚拟化保护视频内容 |
Also Published As
Publication number | Publication date |
---|---|
EP2863334B1 (en) | 2016-09-07 |
US20150113594A1 (en) | 2015-04-23 |
EP2863334A1 (en) | 2015-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3191994B1 (en) | Media decoding control with hardware-protected digital rights management | |
US7055038B2 (en) | Method and apparatus for maintaining secure and nonsecure data in a shared memory system | |
KR101954733B1 (ko) | 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치 | |
US8156565B2 (en) | Hardware-based protection of secure data | |
EP2847703B1 (en) | Hardware enforced output security settings | |
EP2580704B1 (en) | Methods and apparatuses for securing playback content comprising sensitive and non-sensitive data | |
US7660769B2 (en) | System and method for digital content player with secure processing vault | |
US20110078760A1 (en) | Secure direct memory access | |
US8393008B2 (en) | Hardware-based output protection of multiple video streams | |
US9483626B2 (en) | Multi-security-CPU system | |
US9633180B2 (en) | Processing system with register arbitration and methods for use therewith | |
CN104573546A (zh) | 具有虚拟客户的处理系统及其使用方法 | |
US20100161975A1 (en) | Processing system with application security and methods for use therewith | |
US7302589B2 (en) | Method for securing memory mapped control registers | |
US10503663B2 (en) | Method and device for secure processing of encrypted data | |
WO2021184181A1 (zh) | 安全输出方法及电子设备 | |
US20200184039A1 (en) | Playing memory management method | |
CN114003869A (zh) | 提高保护多内容处理效率的系统及方法 | |
WO2007082796A1 (en) | A method and system for protection and security of io devices using credentials | |
WO2006134515A2 (en) | A method and a device for performing state control relating to access to content protected by drm systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150429 |
|
WD01 | Invention patent application deemed withdrawn after publication |