CN103493022A - 多核处理器系统 - Google Patents

多核处理器系统 Download PDF

Info

Publication number
CN103493022A
CN103493022A CN201180069869.6A CN201180069869A CN103493022A CN 103493022 A CN103493022 A CN 103493022A CN 201180069869 A CN201180069869 A CN 201180069869A CN 103493022 A CN103493022 A CN 103493022A
Authority
CN
China
Prior art keywords
application
processor system
core processor
cpu
memory area
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
CN201180069869.6A
Other languages
English (en)
Other versions
CN103493022B (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN103493022A publication Critical patent/CN103493022A/zh
Application granted granted Critical
Publication of CN103493022B publication Critical patent/CN103493022B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种多核处理器系统。在混搭了高可靠应用(112)和低可靠应用(111)的状态下运用多核处理器系统(100)。多核处理器系统(100)处于CPU(#1)执行低可靠应用(111)并且CPU(#2)执行高可靠应用(112)的状态。存储器保护控制器(106#2)访问用户区域(121)内的高可靠应用存储器区域(123),并且访问保护区域(124)内的高可靠应用存储器区域(125)。在由于低可靠应用(111)进行不正确写入而破坏了高可靠应用存储器区域(123)的数据的情况下,CPU(#2)通过向高可靠应用存储器区域(123)复制高可靠应用存储器区域(125)的数据来复原数据。

Description

多核处理器系统
技术领域
本发明涉及保护软件的多核处理器系统。
背景技术
近年来,采用在1个系统内具有多个核的多核处理器系统的方式的设备逐渐增加。当使在1个系统内具有1个核的单核处理器系统用的应用程序软件(以下,称为“应用”)在多核处理器系统中动作的情况下,存在发生较多故障的可能性。此外,即便是面向新的多核处理器系统开发出来的软件,对于在多个核同时动作的并行动作状态下的验证,测试者也难于验证全部的时机。接着,参照图10、图11,对在多核处理器系统中会引起怎样的故障这样的问题进行说明。
图10是表示使面向单核处理器系统的软件在多核处理器系统中动作的情况的动作例的说明图。在以附图标记1001表示的说明图中,对使应用1003在单核处理器系统中动作的情况进行说明,在以附图标记1002表示的说明图中,对使应用1003在多核处理器系统中动作的情况进行说明。
首先,在以附图标记1001表示的说明图中,应用1003内的主线程1004调用函数f(x),并使用f(x)的结果。因此,主线程1004启动执行f(x)的卸载处理用的线程1005,在线程1005结束后,使用f(x)的结果,继续执行处理。其中,所谓线程,是指用于管理通过CPU进行的处理的基本单位。
在应用1003通过单核处理器系统动作的情况下,主线程1004在时刻t1起动线程1005。接着,线程1005在时刻t2结束f(x)的处理后,在时刻t3主线程1004使用结果。
接着,在以附图标记1002表示的说明图中,对应用1003在多核处理器系统中动作的情况进行说明。应用1003当在多核处理器系统环境中没有被动作验证就不安全的情况下,成为以附图标记1006表示的动作,当在多核处理器系统环境中被动作验证就安全的情况下,成为以附图标记1007表示的动作。另外,在以下的说明中,将在多核处理器系统环境中没有被动作验证就不安全的应用称为“低可靠应用”,将在多核处理器系统环境中被动作验证就安全的应用称为“高可靠应用”。另外,作为在多核处理器系统中,对对象的应用是否具有可靠性进行验证的方法,存在对各种时机进行验证的方法。
在应用1003为低可靠应用的情况下,通过CPU(CentralProcessing Unit:中央处理单元)#1执行的主线程1004在时刻t1,通过CPU#2起动线程1005。CPU#2假定分配了线程1005与其他线程的状态。线程1005在时刻t3,结束f(x)的处理。
此外,由于CPU#1仅执行主线程1004,因此主线程1004的分配时间相比于单核处理器系统时增多。结果,在比时刻t3更早的时刻t2,主线程1004使用f(x)的结果。由于在时刻t2,f(x)的处理还没有结束,因此主线程1004读入了预想之外的值,从而发生故障。
在应用1003为高可靠应用的情况下,主线程1004在使用f(x)的结果之前插入有同步处理。由此,主线程1004在时刻t2,在使用线程f(x)的结果前执行同步处理。执行了同步处理的主线程1004待机直到线程1005结束处理为止,从而能够安全地执行处理。
图11是在多核处理器系统中调用在单核处理器系统中所调用的程序库的情况的说明图。以附图标记1101表示的说明图表示程序库A在单核处理器系统中动作的情况,以附图标记1102表示的说明图表示程序库A在多核处理器系统中动作的情况。
在以附图标记1101表示的说明图中,应用X调用程序库A。此外,应用Y调用程序库A和程序库B。这样,在单核处理器系统中被调用的程序库A也可以不进行特殊的管理。
在以附图标记1102表示的说明图中,通过CPU#1执行应用X,通过CPU#2执行应用Y。在程序库A具有共享资源的情况下,程序库A采取对程序库A的内容(context)1103进行排他控制这样的对策。作为具体的对策,CPU#1上的程序库A通过接口1104#1,使用IPC(Inter-Processor Communication:进程间通信)1105#1、IPC1105#2,来进行与CPU#2的程序库A的排他控制。进行这种对策的程序库成为高可靠的程序库,没有进行对策的程序库成为低可靠的程序库。
作为这种执行高可靠应用、低可靠应用的情况的技术,例如公开了以下技术:对系统进行域分割,分割为成为进行安全动作的高可靠应用组的安全域和成为没有进行安全动作的保证的低可靠应用组的非安全域。安全域访问存储器内的非安全域无法访问的安全数据。(例如,参照下述专利文献1、2。)。
此外,作为保护数据的技术,例如公开了以下技术:作为闪存存储器的例子,找出未使用的预备块作为保护区域用的错误块。此外,作为保护数据的其他技术,例如公开了以下技术:设置备份存储器的区域,来防止重要的程序和数据的破坏(例如,参照下述专利文献3、4。)。
专利文献1:日本特表2006-506754号公报
专利文献2:日本特开2004-171563号公报
专利文献3:日本特开2004-310770号公报
专利文献4:日本特开平5-108493号公报
发明内容
在应用上述的现有技术执行高可靠应用、低可靠应用的情况下,多核处理器系统将高可靠应用、低可靠应用分开来进行运用。因此,存在应用了现有技术的多核处理器系统难以将高可靠应用和低可靠应用混搭来加以运用的这样问题。
本发明为了消除上述现有技术中的问题点,其目的在于,提供能够将高可靠应用和低可靠应用混搭来加以运用的多核处理器系统。
为了解决上述的课题实现目的,根据本发明的一个方式,提出了一种多核处理器系统,该多核处理器系统包括:多个CPU、存储器以及被配置在多个CPU与存储器之间的存储器保护控制器,存储器保护控制器在应用程序执行时根据多个CPU的访问要求来访问第1存储器区域,并且访问在系统启动时确保的第2存储器区域。
根据本发明的一个方式,取得了能够将高可靠应用和低可靠应用混搭来加以运用的这样的效果。
附图说明
图1是表示本实施方式所涉及的多核处理器系统100在故障发生时的动作例与复原处理的动作例的说明图。
图2是表示多核处理器系统100的硬件例的框图。
图3是表示多核处理器系统100的功能例的框图。
图4是表示存储器保护控制器106的内部功能例的说明图。
图5是表示存储器保护控制器106的登记例的说明图。
图6是表示多核处理器系统100在起动时的处理步骤的一例的流程图。
图7是表示多核处理器系统100在应用切换时的处理步骤的一例的流程图(其1)。
图8是表示多核处理器系统100在应用切换时的处理步骤的一例的流程图(其2)。
图9是表示多核处理器系统100在错误时的处理步骤的一例的流程图。
图10是表示使面向单核处理器系统的软件在多核处理器系统中动作的情况的动作例的说明图。
图11是在多核处理器系统中调用在单核处理器系统中所调用的程序库的情况的说明图。
具体实施方式
下面,参照附图来详细地说明公开的多核处理器系统的实施方式。
图1是表示本实施方式所涉及的多核处理器系统100在故障发生时的动作例和复原处理的动作例的说明图。在图1中,在以附图标记101表示的说明图中,表示多核处理器系统100在故障发生时的动作例,在以附图标记102表示的说明图中,表示多核处理器系统100的复原处理的动作例。
图1中的多核处理器系统100包括为多个核的CPUs103和存储器104。多核处理器系统100假定为手机这样的便携终端。在CPUs103中,包括CPU#1和CPU#2。以下,附加了接尾标记“#n”的标记表示与第n个CPU对应的标记。CPUs103与存储器104通过总线105而连接。此外,CPU#1、CPU#2能够分别与存储器保护控制器106#1、存储器保护控制器106#2通信。
存储器保护控制器106是进行与2个方式中所指示的方式对应的动作的装置,该2个方式是指双重访问方式和访问直通方式。在具有双重访问方式的指示的情况下,存储器保护控制器106具有一边访问应用原本的请求目的地地址一边访问受保护的存储器区域内的地址的功能。此外,在具有访问直通方式的指示的情况下,存储器保护控制器106访问应用原本的请求目的地地址。
此外,多核处理器系统100执行低可靠应用111和高可靠应用112。具体而言,CPU#1执行低可靠应用111,CPU#2执行高可靠应用112。此外,多核处理器系统100在用户区域121内,确保低可靠应用存储器区域122作为存放低可靠应用111的内容的区域。同样地,多核处理器系统100在用户区域121内,确保高可靠应用存储器区域123作为存放高可靠应用112的内容的区域。其中,所谓内容是指成为CPU的寄存器的值的程序计数器、栈指针等这样的应用所使用的数据。
另外,多核处理器系统100确保成为不同于用户区域121的区域的保护区域124,在保护区域124内,确保高可靠应用存储器区域125。高可靠应用存储器区域125存放与高可靠应用存储器区域123相同的数据。作为相同的数据的存放方法,CPU#2在高可靠应用112执行的时机,向存储器保护控制器106#2进行双重访问方式的登记。成为双重访问方式的存储器保护控制器106#2在写访问发生的情况下,一边将写入内容写入高可靠应用存储器区域123,一边还将该内容写入高可靠应用存储器区域125。
在以附图标记101表示的说明图中,假定当这样在高可靠应用存储器区域123受到保护的状态下,低可靠应用111进行不正确的写入,破坏了高可靠应用存储器区域123的数据的情况。CPU#2在执行高可靠应用112时打算并执行读入高可靠应用存储器区域123,但是高可靠应用存储器区域123的数据没有表示正确的值,从而强制结束高可靠应用112。例如,在高可靠应用存储器区域123的程序计数器被改写为不正确的地址的情况下,CPU#2打算执行不正确的值作为执行代码,从而强制结束高可靠应用112。
另外,除了由于进行不正确写入而强制结束高可靠应用112的情况之外,还存在OS挂起的情况。通过图9,对OS挂起的情况的动作进行说明。
接着,在以附图标记102表示的说明图中,表示数据破坏后的复原处理。当CPU#2检测到对高可靠应用112发生了错误时,判定高可靠应用112是否在执行中。当高可靠应用112在执行中的情况下,CPU#2对高可靠应用存储器区域123与高可靠应用存储器区域125进行比较,在存在差值的情况下,用高可靠应用存储器区域125覆写高可靠应用存储器区域123。由此,进行了不正确写入的数据复原为正常的数据,CPU#2能够继续执行高可靠应用112,因此能够保护高可靠应用112。
(多核处理器系统100的硬件)
图2是表示多核处理器系统100的硬件例的框图。在图2中,多核处理器系统100包括:搭载有多个CPU的CPUs103、ROM(Read OnlyMemory:只读存储器)201以及RAM(Random Access Memory:随机访问存储器)202。此外,多核处理器系统100包括:快闪ROM203、快闪ROM控制器204以及快闪ROM205。另外,存储器104可以是RAM202的全部,或者也可以是一部分。另外,存储器104也可以包括ROM201、快闪ROM203以及快闪ROM205。
此外,多核处理器系统100包括显示器206、I/F(Interface:接口)207以及键盘208,作为与用户、其他设备之间的输入输出装置。此外,各部分别通过总线105连接。
这里,CPUs103管理多核处理器系统100的整体控制。CPUs103是指将单核的处理器并列连接起来的全部的CPU。CPUs103包括CPU#1~CPU#x。其中,x是2以上的整数。此外,所谓多核处理器系统,是指包括搭载有多个核的处理器的计算机的系统。搭载有多个核即可,可以是安装有多个核的单一处理器,也可以是单核并列而成的处理器的处理器组。另外,在本实施方式中,以并列有作为单核的处理器的CPU为例进行说明。
此外,CPU#1~CPU#x能够分别与存储器保护控制器106通信。另外,CPU#1~CPU#x也可以分别具有专用的高速缓冲存储器。
ROM201存储有启动(boot)程序等程序。RAM202作为CPUs103的工作区域而使用。快闪ROM203存储有OS(Operating System:操作系统)等系统软件、应用程序软件等。例如,在更新OS的情况下,多核处理器系统100通过I/F207接收新的OS,并将存放在快闪ROM203中的旧的OS更新为所接收的新的OS。
快闪ROM控制器204伴随CPUs103的控制,控制对快闪ROM205的数据读/写。快闪ROM205存储通过快闪ROM控制器204的控制而写入的数据。作为数据的具体例,也可以存放使用多核处理器系统100的用户通过I/F207取得的图像数据、影像数据或执行本实施方式所涉及的软件保护方法的程序。快闪ROM205例如能够采用存储器卡、SD卡等。
显示器206以光标、图标或者工具栏为代表,显示文本、图像、功能信息等数据。例如,显示器206能够采用TFT液晶显示器等。
I/F207通过通信线路与LAN(Local Area Network:局域网),WAN(Wide Area Network:广域网)、因特网等网络209连接,并经由网络209与其他的装置连接。而且,I/F207对网络209与内部的接口进行管理,并控制来自外部装置的数据输入输出。在I/F207中,例如能够使用调制解调器或LAN适配器等。
键盘208具有用于数字、各种指示等输入的键,进行数据的输入。此外,键盘208也可以是触摸面板式的书写板或小键盘等。
(多核处理器系统100的功能例)
接着,对多核处理器系统100的功能例进行说明。图3是表示多核处理器系统100的功能例的框图。另外,多核处理器系统100能够访问高可靠白(white)列表301作为根据各功能访问的存储区域。
多核处理器系统100包括:确保部311、检测部312、比较部313、通知部314、登记部315、检测部316、检测部317、比较部318以及复原部319。关于成为该控制部的功能(确保部311~复原部319),通过CPU#1~CPU#x执行存储在存储装置中的程序来实现其功能。所谓存储装置,具体而言是指例如图2所示的ROM201、RAM202、快闪ROM203、快闪ROM205等。或者,也可以通过其他的CPU经由I/F207执行来实现其功能。
此外,在图3中,确保部311成为执行高可靠应用112的CPU#2的功能,但是也可以是CPU#1、CPU#3~CPU#x中任意一个CPU的功能。此外,检测部312~复原部319也可以是CPU#1~CPU#x的全部CPU所包含的功能。
另外,CPU#2执行管理程序#2、OS#2、内核#2。管理程序#2是在CPU#2等硬件上直接动作的程序。管理程序#2是能够执行特权指令的程序,该特权指令是直接参照CPU#2内的寄存器、或者读出CPU#2内的寄存器的信息、或者改写CPU#2内的寄存器的信息的指令。内核#2是OS#2的中核的功能,例如,能够管理多核处理器系统100的资源,使线程等软件能够访问硬件。
此外,虽然未图示,但是OS#2是控制CPU#2的程序。例如,向应用提供访问多核处理器系统100内的资源的程序库、API(ApplicationProgramming Interface:应用程序编程接口)等。
另外,虽然未图示,但是CPU#1、CPU#3~CPU#x也执行管理程序、OS、内核。确保部311~通知部314、检测部316被包含在内核#2的功能中,登记部315、检测部317~复原部319被包含在管理程序#2的功能中。
高可靠白列表301是登记规定应用的列表。所谓登记的规定应用,是指在多核处理器系统100中进行了动作验证的高可靠应用112。例如,高可靠应用112是预先安装在多核处理器系统100中的应用。此外,也可以将制造多核处理器系统100的制造商,提供网络209的通信运营商等所提供的应用登记为高可靠应用。例如,当从网络209下载应用时,在附带有表示制造商或者通信运营商所提供的情况的识别信息的情况下,多核处理器系统100也可以将下载的应用登记到高可靠白列表301。
另外,登记在高可靠白列表301的内容例如也可以是应用的名称,此外在存在文件系统的情况下,也可以是存放应用程序的文件路径。
确保部311具有在系统启动时确保第2存储器区域的功能,该第2存储器区域与在应用执行时多个CPU所访问的第1存储器区域对应并且在多个CPU访问第1存储器区域时,同样被访问。其中,第1存储器区域是成为执行中应用的访问目的地的存储器区域,为图3所示的用户区域121。此外,第2存储器区域是成为保护用户区域121的数据的区域的保护区域124。此外,作为确保第2存储器的时机,可以是系统启动时,也可以是应用被起动时。
此外,当在多核处理器系统100中同时执行的应用的个数为N,在应用执行时被分配的存储器区域为M[字节]的情况下,确保部311也可以根据N×M[字节]来确保第2存储器区域的大小。例如,在N=5,M=1[M字节]的情况下,确保部311确保N×M=5×1=5[M字节]的区域作为用户区域121。
此外,作为N的值,本实施方式所涉及的多核处理器系统100假定手机等,并且未假定同时起动多个应用。作为N的最大值,例如,为8、16这样的值。此外,N也可以是CPUs103的个数。其中,所确保的区域的地址被存储在CPU#2的寄存器、高速缓冲存储器、RAM202等存储区域中。
检测部312具有检测起动应用这样的事件、结束应用这样的事件、或者切换应用这样的事件中的任意一个事件的功能。例如,检测部312检测起动了高可靠应用112这样的事件。另外,所检测到的事件被存储在CPU#2的寄存器、高速缓冲存储器、RAM202等存储区域中。
比较部313具有:当通过检测部312检测到事件的情况下,比较所执行的应用与登记在规定应用列表中的应用的功能。例如,比较部313比较所执行的高可靠应用112与登记在高可靠白列表301中的应用。其中,比较结果被存储在CPU#2的寄存器、高速缓冲存储器、RAM202等存储区域中。
通知部314具有:当比较部313进行比较得到的比较结果表示一致时,针对来自所执行的应用的访问,向管理程序#2通知存储器保护控制器106#2访问第1存储器区域和第2存储器区域的指示的功能。例如,假定高可靠应用112与登记在高可靠白列表301中的应用表示一致的情况。这时,通知部314针对来自高可靠应用112的访问,向管理程序#2通知存储器保护控制器106#2访问高可靠应用存储器区域123和高可靠应用存储器区域125的指示。
此外,当比较部313进行比较得到的比较结果表示不一致时,通知部314也可以针对来自所执行的应用的访问,向管理程序#2通知存储器保护控制器106#2访问第1存储器区域的指示。
此外,当应用被起动且被起动的应用的由比较部313比较得到的比较结果表示一致时,通知部314也可以通知在第2存储器区域内增加被起动的应用所用的区域的指示。此外,当应用结束且所结束的应用的由比较部313比较得到的比较结果表示一致时,通知部314也可以通知解除第2存储器区域内结束了的应用所用的区域的指示。另外,也可以将通知的内容存储在CPU#2的寄存器、高速缓冲存储器、RAM202等存储区域。
登记部315具有向存储器保护控制器106#2登记由通知部314通知的指示的功能。例如,登记部315在通知了作为第1访问方式的双重访问方式的指示的情况下,向存储器保护控制器106#2登记双重访问方式。具体而言,登记部315向存储器保护控制器106#2内的寄存器进行登记。
此外,登记部315在通知了作为第2访问方式的访问直通方式的指示的情况下,向存储器保护控制器106#2登记访问直通方式。另外,具体的登记内容在图4中进行说明。另外,也可以将进行了登记这样的信息存储在CPU#2的寄存器、高速缓冲存储器、RAM202等存储区域中。
检测部316具有检测本CPU内的强制结束了应用情况的功能。例如,检测部316检测发生了表示访问了不能访问的存储器的情况的段错误等并且强制结束了高可靠应用112的情况。另外,强制结束了应用这样的信息被存储在CPU#2的寄存器、高速缓冲存储器、RAM202等存储区域中。
检测部317具有检测OS#2挂起的情况的功能。例如,检测部317对OS#2进行周期监视,在没有来自OS#2的响应的情况下,检测OS#2挂起的情况。另外,处于挂起中的OS成为异常状态,是没有对请求进行响应的状态。OS的挂起状态也被称为“内核恐慌(kernel panic)”。另外,OS#2挂起了的这样的信息被存储在CPU#2的寄存器、高速缓冲存储器、RAM202等存储区域中。
比较部318具有:在检测部316检测到应用的强制结束的情况下,或者在检测部317检测到OS#2的挂起的情况下,对第1存储器区域与第2存储器区域进行比较的功能。例如,比较部318对高可靠应用存储器区域123与高可靠应用存储器区域125的数据进行比较。此外,比较部318在执行中的应用被登记在高可靠白列表301中的情况下,也可以比较第1存储器区域与第2存储器区域。另外,比较结果被存储在CPU#2的寄存器、高速缓冲存储器、RAM202等存储区域中。
复原部319具有根据比较部318比较得到的比较结果来复原第1存储器区域的功能。例如,当比较部318比较得到的比较结果表示不一致时,复原部319通过将比较结果的差值覆写在第1存储器区域上,来复原第1存储器区域。另外,也可以将进行了复原这样的结果存储在CPU#2的寄存器、高速缓冲存储器、RAM202等存储区域中。
图4是表示存储器保护控制器106的内部的功能例的说明图。在图4中,以存储器保护控制器106#1为例进行说明,但是存储器保护控制器106#2~存储器保护控制器106#x也包括与存储器保护控制器106#1相同的功能。存储器保护控制器106#1包括存储部401#1、判定部402#1、转换部403#1。
存储部401存储对应于存储器保护控制器106的访问方式和应用的保护区域。具体而言,存储部401#1包括控制寄存器404#1、存放寄存器405#1_1~存放寄存器405#1_y。y为1以上的整数。
另外,作为具体的y的值,为CPU#1能够同时执行的应用的个数的最大值即可。本实施方式所涉及的多核处理器系统100假定手机等,并且未假定如个人计算机那样同时执行多个应用。因此,通过各CPU同时起动时的最大的应用个数也成为未假定同时起动多个应用的个数。其中,y为N以下的值。例如,y为4,或者8这样的值。
控制寄存器404#1包括访问方式标记、保护区域管理标号这样的2个字段。在访问方式标记字段中,存放表示对2处地址进行访问的双重访问方式或者进行通常访问的访问直通方式中的任意一个的访问方式信息的识别码。例如,作为具体的识别码,“1”也可以指代双重访问方式。当对2处地址进行访问的情况下,在保护区域管理标号字段中存放表示应用存放寄存器405#1_1~存放寄存器405#1_y中的哪个存放寄存器405#1的值。例如,当在保护区域管理标号字段中,存放了“1”的情况下,转换部403#1使用存放寄存器405#1_1的设定来进行转换。
存放寄存器405#1_1~存放寄存器405#1_y是按照每个应用来存放保护区域的寄存器。此外,存放寄存器405#1_1~存放寄存器405#1_y分别对应于管理标号_1~管理标号_y。接着,对存放寄存器405#1的各字段进行说明。存放寄存器405#1包括:使用中位、应用ID、掩码地址、保护地址这样的4个字段。
在使用中位字段中,存放表示该存放寄存器405#1是否在使用中的位。在应用ID字段中,存放通过CPU#1执行中的应用的识别信息。在掩码地址字段中,存放表示应用所访问的存储器范围的地址。通过OS所具有的存储器管理机构,来确定具体的存储器范围的大小。在保护地址字段中,存放通过CPU#1执行中的应用访问保护区域的地址。另外,控制寄存器404#1、存放寄存器405#1的具体的设定例之后在图5中叙述。
判定部402#1具有根据存储在存储部401#1中的访问方式信息来判定是否进行地址转换的功能。具体而言,如果访问方式标记字段是双重访问方式,则判定部402#1对2处地址进行访问,如果访问方式标记字段是访问直通方式,则判定部402直接访问地址而不进行地址转换。
转换部403#1具有在通过判定部402#1判定为双重访问方式的情况下,对一方的访问目的地进行地址转换的功能。具体而言,转换部403#1参照与保护区域管理标号字段中所设定的管理标号对应的存放寄存器405#1的掩码地址字段和保护地址字段,来进行地址转换。例如,转换部403通过下述(1)式来对转换后的地址进行转换。
转换后的地址=转换前的地址&掩码地址+保护地址...(1)
具体而言,假定来自成为转换前的地址的应用的访问目的地为0x05000100,掩码地址字段为0x0000ffff,保护地址字段为0x01000000的情况。这时,转换部403根据(1)式,如以下那样进行转换。
转换后的地址=0x05000100&0x0000ffff+0x01000000→转换后的地址=0x01000100
另外,存储器保护控制器106#1也可以对来自CPU#1的读请求访问与写请求访问中的写请求访问进行双重访问方式。其理由是,在没有发生错误的状态下,即便进行与读请求访问相关的双重访问方式,也返回同一个值,因此,针对未进行转换的地址的读访问就足够了。
图5是表示存储器保护控制器106的登记例的说明图。图5所示的多核处理器系统100执行登记在高可靠白列表301中并成为高可靠应用的应用A、应用C以及没有登记在高可靠白列表301中并成为低可靠应用的应用B、应用D、应用E。应用A和应用B被分配给CPU#1,应用C~应用E被分配给CPU#2。进而,CPU#1执行应用A,CPU#2执行应用D。其中,应用A~应用E的应用ID分别为0x0001、0x0002、0x0003、0x0004、0x0005。
内核#1在OS启动时,确保成为0x00000000~0x00500000的存储器区域作为内核占有区域501。接着,内核#1在确保成为应用的动作空间的用户区域121之前,确保保护区域124。例如,假定多核处理器系统100的应用同时执行个数为N=5,对于1个应用所允许的存储器大小M为1[M字节]。
这时,内核#1确保成为N×M=5×1=5[M字节]的0x01000000~0x0104ffff作为保护区域124。接着,内核#1确保0x05000000~0xffffffff作为用户区域121。此外,内核#1对0x05000000-0x01000000=0x04000000进行存储,作为从用户区域121向保护区域124的偏移地址(offset address)。另外,由于M=1[M字节],因此成为1个应用所访问的地址范围的掩码地址为0x0000fff。在本实施方式中,为了说明的简单化,假定1个应用访问的地址范围总是为固定的。
这时,保护区域124成为无法从应用访问的区域。因此,例如,在应用A、应用B想要通过OS#1访问保护区域124的情况下,内核#1发出表示访问OS#1的管理外区域的情况的段错误。这样,多核处理器系统100将保护区域124作为用户区域121以外的区域,由此能够防止通过低可靠应用对保护区域124的不正确写入。
另外,成为保护区域124的区域也可以不是连续范围且不固定,只要存储器保护控制器106能够进行管理即可,也可以通过分散来确保,还可以在多核处理器系统100的执行中动态地进行变化。在本实施方式中,为了说明的简单化,以连续范围且固定的方式对成为保护区域124的区域进行说明。
此外,多核处理器系统100在起动应用A~应用E时,在用户区域121内确保存放各应用的内容的区域。具体而言,内核#1在起动应用A时确保应用A存储器区域502,在起动应用B时确保应用B存储器区域503。此外,内核#2在起动应用C时确保应用C存储器区域504,在起动应用D时确保应用D存储器区域505,在驱动应用E时确保应用E存储器区域506。应用A存储器区域502~应用E存储器区域506的开头地址分别为0x05000000、0x05010000、0x05020000、0x05030000、0x05040000。
此外,多核处理器系统100在起动高可靠应用的情况下,在保护区域124内也确保存储器区域。具体而言,从内核#1接受到指示的管理程序#1在起动应用A时,确保应用A存储器区域507。
作为应用A存储器区域507的地址的设定方法,例如管理程序#1将从应用A存储器区域502的开头地址减去对用户区域121的偏移地址而得到的地址设定为应用A存储器区域507的开头地址。具体而言,管理程序#1将应用A存储器区域502的开头地址0x05000000-偏移地址0x04000000=0x01000000设定为应用A存储器区域507的开头地址。
接着,管理程序#1在存放寄存器405#1_1中设定值。具体而言,管理程序#1在使用中位字段中设定使用中,在应用ID字段中设定作为应用A的应用ID的0x0001。接着,管理程序#1在掩码地址字段中设定0x0000ffff,在保护地址字段中设定作为应用A存储器区域507的开头地址的0x01000000。
同样地,管理程序#2在起动应用C时,确保应用C存储器区域508。进而,管理程序#2在存放寄存器405#2_1中设定值。具体而言,管理程序#2在使用中位字段中设定使用中,在应用ID字段中设定作为应用C的应用ID的0x0003。接着,管理程序#2在掩码地址字段中设定0x0000ffff,在保护地址字段中设定作为应用C存储器区域508的开头地址的0x01020000。
在上述阶段中,多核处理器系统100结束起动应用的阶段,并转变到实际动作的状态。CPU#1按照应用A、应用B、应用A、...的顺序执行应用。当切换应用事件发生并且CPU#1执行应用A时,由于在高可靠白列表301中登记有应用A,因此内核#1向管理程序#1发出指示,将访问方式设定为双重访问方式。这时,内核#1也将切换后的应用ID包含在指示内容中。
接受了指示的管理程序#1向存储器保护控制器106#1登记双重访问方式。具体而言,管理程序#1将存储器保护控制器106#1的访问方式标记设定为双重访问方式。此外,管理程序#1将与所指示的应用ID一致的存放寄存器405#1的管理标号设定为保护区域管理标号字段。通过这样的动作,多核处理器系统100与通过OS#1进行应用A、应用B...的切换动作同步地,通过存储器保护控制器106#1进行双重访问方式、访问直通方式...的动作。
另外,通过该动作,当应用A在执行中的情况下,多核处理器系统100对0x05000000和0x01000000这2个地址空间进行访问。通过2重访问,存在总线访问的性能劣化的可能性,但是对64[位]系统的CPU通常进行128[位]带宽的总线设定等,CPU访问的带宽为不全部使用总线的带宽的大致的状态。因此,在总线105内,通过与将2个64[位]的访问集中为1个128[位]的数据压缩功能联动,能够避免总线访问的性能的劣化。
同样地,CPU#2按照应用C、应用D、应用E、应用C、...的顺序执行应用。例如,当CPU#2执行应用D时,由于在高可靠白列表301中没有登记应用D,因此发生切换应用事件,内核#2向管理程序#2发出指示,将访问方式设定为访问直通方式。这时,内核#2也将切换后的应用ID包含在指示内容中。接受到指示的管理程序#2向存储器保护控制器106#2登记访问直通方式。具体而言,管理程序#2将存储器保护控制器106#2的访问方式标记设定为访问直通方式。
接着,在图6~图9中,对进行图5中所说明的动作的流程图进行说明。另外,图6所示的执行起动时的处理步骤的一例的执行主体也可以是CPU#1~CPU#x中任意一个CPU,但是为了说明的简单化,假定CPU#1执行的情况来进行说明。此外,执行图7~图9所示的切换应用时的处理步骤和错误时的处理步骤的执行主体是通过CPU#1~CPU#x的全部的CPU而执行的,但是为了说明的简单化,假定CPU#1执行的情况来进行说明。
图6是表示多核处理器系统100在起动时的处理步骤的一例的流程图。当启动开始(步骤S601)时,内核#1起动存储器管理机构(步骤S602)。内核#1通过存储器管理机构,来确保N×M[字节]的地址空间(步骤S603)。
确保后,内核#1向管理程序#1通知所确保的地址空间(步骤S604),进行通常运用(步骤S605),并结束起动时的处理。另外,作为通常运用,是进行用户区域121的确保或者在启动开始时起动所要起动的应用。接受到地址空间的通知的管理程序#1将所通知的地址空间设定为保护区域124(步骤S606),并结束起动时的处理。由此,多核处理器系统100能够确保高可靠应用的存储器保护区域。
在图7、图8中表示多核处理器系统100在切换应用时的处理步骤的一例。在图7中表示内核#1的处理步骤的一例,在图8中表示管理程序#1的处理步骤的一例。
图7是表示多核处理器系统100在切换应用时的处理步骤的一例的流程图(其1)。内核#1判断是否发生了事件(步骤S701)。在没有发生事件的情况下(步骤S701:没有发生事件),内核#1在固定时间后,再次执行步骤S701。另外,内核#1也可以在固定时间中,执行内核#1的其他处理。
在发生了起动应用事件的情况下(步骤S701:起动应用事件),内核#1判断在高可靠白列表301中是否登记了已起动的应用(步骤S702)。在已登记的情况下(步骤S702:是),内核#1向管理程序#1通知管理标号的增加指示(步骤S704)。另外,在步骤S704的处理中,内核#1将已起动的应用的应用ID包含在指示内容中。
通知后,内核#1执行通常时的处理(步骤S703),并转移到步骤S701的处理。在没有登记的情况下(步骤S702:否),内核#1转移到步骤S703的处理。另外,作为起动应用事件在通常时的处理,例如是,在用户区域121内,确保存放已起动的应用的内容的区域的处理等。
在发生了结束应用事件的情况下(步骤S701:结束应用事件),内核#1判断在高可靠白列表301中是否登记有已结束的应用(步骤S705)。在登记的情况下(步骤S705:是),内核#1向管理程序#1通知管理标号的解除指示(步骤S706)。另外,在步骤S706的处理中,内核#1将已结束的应用的应用ID包含在指示内容中。
通知后或者在没有登记的情况下(步骤S705:否),内核#1转移到步骤S703的处理。另外,作为结束应用事件在通常时的处理,例如是,解除在用户区域121内确保的、存放已结束的应用的内容的区域的处理等。
在发生了切换应用事件情况下(步骤S701:切换应用事件),内核#1判断在高可靠白列表301中是否登记有切换后的应用(步骤S707)。在登记的情况下(步骤S707:是),内核#1向管理程序#1通知双重访问方式指示(步骤S708)。另外,在步骤S708的处理中,内核#1将切换后的应用的应用ID包含在指示内容中。通知后,内核#1转移到步骤S703的处理。在没有登记的情况下(步骤S707:否),内核#1向管理程序#1通知访问直通方式指示(步骤S709)。通知后,内核#1转移到步骤S703的处理。
另外,作为切换应用事件在通常时的处理,例如有分派(dispatch)处理。所谓分派处理,是指将CPU的寄存器等退避到存放切换前的应用的内容的区域中,并将被退避到存放切换后的应用的内容的区域中的寄存器的值设定在CPU的寄存器中。
由此,多核处理器系统100对应用的起动、结束、切换这样的事件,能够向存储器保护控制器106指示设定变更。
图8是表示多核处理器系统100在切换应用时的处理步骤的一例的流程图(其2)。另外,在图8中,假定管理程序#1设定存储器保护控制器106#1内的控制寄存器404#1、存放寄存器405#1。因此,在各步骤的说明中,为了说明的简单化,省略设定目的地的寄存器为存储器保护控制器106#1内的寄存器这样的记述。
管理程序#1确认指示内容(步骤S801)。在指示内容为管理标号的增加指示的情况下(步骤S801:管理标号的增加指示),管理程序#1判断在存放寄存器405#1_1~存放寄存器405#1_y中是否存在未使用的存放寄存器405#1(步骤S802)。
在存在未使用的存放寄存器405#1的情况下(步骤S802:是),管理程序#1将发现的存放寄存器405#1的使用中位字段设定为使用中(步骤S803)。接着,管理程序#1将发现的存放寄存器405#1的应用ID字段设定为包含在指示内容中的应用ID(步骤S804)。另外,管理程序#1向发现的存放寄存器405#1的保护地址字段设定未分配的地址(步骤S805),并转移到步骤S801的处理。在不存在存放寄存器405#1的情况下(步骤S802:否),管理程序#1转移到步骤S801的处理。
另外,所谓在步骤S805的处理中的未分配的地址,是指在保护区域124内没有被分配为其他的高可靠应用的存储器区域的存储器区域的地址。此外,在步骤S803~步骤S805的处理中,没有掩码地址字段的记述,但是假定本实施方式中的掩码地址总是为固定值。因此,作为掩码地址字段的设定场所,例如在前述的步骤S606中,管理程序#1在存放寄存器405#1_1~存放寄存器405#1_y的掩码地址字段中设定0x0000ffff。
在指示内容为管理标号的解除指示的情况下(步骤S801:管理标号的解除指示),管理程序#1在存放寄存器405#1_1~存放寄存器405#1_y中,选择应用ID字段与包含在指示内容中的应用ID一致的存放寄存器405#1(步骤S806)。选择后,管理程序#1将所选择的存放寄存器405#1的保护地址字段的值设定为未分配的地址(步骤S807)。接着,管理程序#1将所选择的存放寄存器405#1的使用中位字段设定为未使用(步骤S808),并转移到步骤S801的处理。
在指示内容为双重访问方式指示的情况下(步骤S801:双重访问方式指示),管理程序#1将应用ID字段与包含在指示内容中的应用ID一致的存放寄存器405#1的管理标号设定在保护管理标号字段中(步骤S809)。接着,管理程序#1将访问方式标记设定为双重访问方式(步骤S810),并转移到步骤S801的处理。
在指示内容为访问直通方式指示的情况下(步骤S801:访问直通方式指示),管理程序#1将访问方式标记设定为访问直通方式(步骤S811),并转移到步骤S801的处理。这样,多核处理器系统100对应于应用的起动、结束、切换这样的事件,来变更对存储器保护控制器106的设定,因此能够与应用的各事件同步地对访问方式进行变更。
接着,在图9中,对错误时的处理步骤的一例进行说明。在图9所示的流程图中,假定由于通过CPU#2执行的低可靠应用的动作验证不充分,因此向其他的存储器区域写入了低可靠应用,其结果发生了故障的情况。在由不良而引起的状态中,具有两种。
第1种状态是由于单纯的程序错误而使高可靠应用结束的状态。例如,在对于通过OS#1执行的高可靠应用,发生了错误的情况下,OS#1能够检测到错误的发生并向管理程序#1通知。第2种状态是OS#1挂起的情况。当OS#1挂起时,无法检测高可靠应用的故障状态。因此,与OS#1独立地动作的管理程序#1通过周期监视,来检测OS#1是否挂起。
图9是表示多核处理器系统100在错误时的处理步骤的一例的流程图。内核#2执行低可靠应用(步骤S901)。假定通过该执行在用户区域121中进行不正确写入从而发生了故障的情况。
在由于不正确写入,导致发生了应用强制结束等的轻微的故障的情况下,内核#1检测段错误(步骤S902)。检测后,内核#1暂时停止多核处理器系统100(步骤S903),并向管理程序#1指示恢复通知(步骤S904)。
当通过周期监视,检测到发生了OS挂起等的重大故障的情况下,或者在指示了恢复通知的情况下,管理程序#1判断在高可靠白列表301中是否登记有执行中应用(步骤S905)。在登记的情况下(步骤S905:是),管理程序#1对保护区域124内的执行中应用的存储器区域与用户区域121内的执行中应用的存储器区域的数据进行比较(步骤S906)。
接着,管理程序#1判断比较结果是否一致(步骤S907)。在不一致的情况下(步骤S907:否),管理程序#1对用户区域121内的执行中应用的数据进行复原(步骤S908)。具体而言,管理程序#1将比较结果的差值覆写在用户区域121内的执行中应用的存储器区域中。由此,进行了不正确写入的数据复原为正常的数据。
当在高可靠白列表301中没有登记的情况下(步骤S905:否)、在比较结果一致的情况下(步骤S907:是)或者数据复原后,管理程序#1判断OS#1是否在挂起中(步骤S909)。在挂起中的情况下(步骤S909:是),管理程序#1执行OS#1的热启动(步骤S910),并结束错误时的处理。作为具体的热启动的方法,能够应用检查点再启动技术或休眠技术。
当不在挂起中的情况下(步骤S909:否),管理程序#1向内核#1通知多核处理器系统100的暂时停止解除(步骤S911),并结束错误时的处理。受理了暂时停止解除的内核#1解除多核处理器系统100的暂时停止(步骤S912),并结束错误时的处理。这样,当由于不正确写入引起的存储器破坏的原因,而导致在高可靠应用中发生错误的情况下,多核处理器系统100能够复原数据并继续进行动作。
如以上说明的那样,通过多核处理器系统,确保与高可靠应用访问的第1存储器区域不同的第2存储器区域,并写入相同的内容。由此,即便低可靠应用破坏第1存储器区域而发生故障,多核处理器系统也能够使用第2存储器区域来恢复,因此能够将高可靠应用和低可靠应用混搭来进行执行。
此外,本实施方式所涉及的多核处理器系统执行的软件保护方法能够在多核处理器系统环境中安全地继承单核处理器系统中的软件资产。此外,本实施方式所涉及的多核处理器系统能够在通常动作状态下运用,而不使例如在高可靠应用执行中不执行低可靠应用等这样的、带有偏见的不利的调度发生。此外,本实施方式所涉及的多核处理器系统在发生了故障的情况下发生恢复处理,在通常动作状态不执行负载所花费的处理,因此整体的性能不会劣化。
此外,多核处理器系统能够访问存放规定的应用的列表,也可以将所执行的应用与存放在列表中的应用进行比较。由此,多核处理器系统能够判断所执行的应用是否为高可靠应用。
此外,多核处理器系统在所执行的应用与存放在列表中的应用一致的情况下,也可以按照访问第1存储器区域和第2存储器区域的方式,在对应于执行应用的CPU的存储器保护控制器中进行登记。由此,多核处理器系统能够保护高可靠应用的数据。
此外,多核处理器系统在所执行的应用与存放在列表中的应用不一致的情况下,也可以按照访问第1存储器区域的方式,在对应于执行应用的CPU的存储器保护控制器中登记。由此,多核处理器系统针对可不进行数据保护的低可靠应用不保护数据,能够有效地使用用于数据保护而确保的保护区域。
此外,多核处理器系统也可以对本系统的异常检测进行响应,并根据第1存储器区域和第2存储器区域的比较结果,来复原第1存储器区域。由此,多核处理器系统能够恢复存在故障的应用。
此外,多核处理器系统也可以将在多核处理器系统环境中进行了动作验证的应用作为高可靠应用来保护。低可靠应用存在自身破坏第1存储器区域的情况,这时,即便通过存储器保护控制器在第2存储器区域中保护数据,结果也破坏第2存储器区域。在这种状态下,即便复原第1存储器区域的数据,也会用被破坏的数据来覆写,多核处理器系统无法进行恢复。因此,多核处理器系统通过将验证为不存在不良的高可靠应用作为对象,因此能够恢复由于低可靠应用的动作而发生的高可靠应用的故障。
另外,在本实施方式所说明的多核处理器系统执行的软件保护方法中,说明了对象为应用的情况,但是即便对象为程序库,也能够应用本实施方式。
另外,本实施方式所说明的多核处理器系统执行的软件保护方法能够通过在个人计算机或工作站等计算机上执行预先准备的程序来实现。此外,执行软件保护方法的软件保护程序被记录在能够通过计算机读取的硬盘、CD-ROM、DVD、存储器卡等记录介质上,并通过计算机从记录介质中读出,由此来执行。此外也可以经由因特网等的网络来发布软件保护程序。
此外,本实施方式所说明的存储器保护控制器106也能够通过标准单元与结构化ASIC(Application Specific Integrated Circuit:专用集成电路)等面向特定用途的IC(以下,简单地称为“ASIC”。)或FPGA等PLD(Programmable Logic Device:可编程逻辑器件)来实现。具体而言,例如,通过HDL记述对上述的存储器保护控制器106的功能(存储部401~转换部403)进行功能定义,对该HDL记述进行逻辑合成,并给与ASIC和PLD,由此能够制造存储器保护控制器106。
附图标记说明:
#1、#2...CPU;100...多核处理器系统;104...存储器;105...总线;106...存储器保护控制器;111...低可靠应用;112...高可靠应用;121...用户区域;122...低可靠应用存储器区域;123...高可靠应用存储器区域;124...保护区域;125...高可靠应用存储器区域;301...高可靠白列表;311...确保部;312...检测部;313...比较部;314...通知部;315...登记部;316...检测部;317...检测部;318...比较部;319...复原部。

Claims (10)

1.一种多核处理器系统,其特征在于,包括:
多个CPU;
存储器;以及
存储器保护控制器,其被配置在所述多个CPU与所述存储器之间,
所述存储器保护控制器在执行应用程序时根据所述多个CPU的访问请求来访问第1存储器区域,并且访问在系统启动时被确保的第2存储器区域。
2.根据权利要求1所述的多核处理器系统,其特征在于,包括:
表,其存放规定应用程序的列表;和
比较部,其比较被执行的应用程序与所述列表的应用程序。
3.根据权利要求2所述的多核处理器系统,其特征在于,
当比较结果表示一致时,针对所述被执行的应用程序登记访问所述第1存储器区域和所述第2存储器区域的指示。
4.根据权利要求2所述的多核处理器系统,其特征在于,
当比较结果表示不一致时,针对所述被执行的应用程序登记仅访问所述第1存储器区域的指示。
5.根据权利要求1至4中任意一项所述的多核处理器系统,其特征在于,
响应于本系统的异常的检测,当所述被执行的应用程序正在执行时,根据所述第1存储器区域与所述第2存储器区域的比较结果来复原所述第1存储器区域。
6.根据权利要求1至5中任意一项所述的多核处理器系统,其特征在于,
所述规定应用程序是在多核处理器系统环境中进行了动作验证的应用程序。
7.根据权利要求1至6中任意一项所述的多核处理器系统,其特征在于,
当所述多个CPU的个数为N,应用程序执行时被分配的所述存储器的存储器区域为M字节时,所述第2存储器区域的大小为N×M,其中,N为2以上的整数,M为1以上的整数。
8.一种多核处理器系统,其特征在于,包括:
多个CPU;
存储器;以及
存储器保护控制器,其被配置在所述多个CPU与所述存储器之间,
所述存储器保护控制器在访问方式信息表示第1访问方式的情况下,执行应用程序中与对第1存储器区域的访问同样地访问第2存储器区域,
所述存储器保护控制器在访问方式信息表示第2访问方式的情况下,执行应用程序中仅访问所述第1存储器区域。
9.根据权利要求8所述的多核处理器系统,其特征在于,
根据所述应用程序与登记在列表中的应用程序的比较结果来设定所述访问方式信息。
10.根据权利要求9所述的多核处理器系统,其特征在于,
当所述比较结果表示一致时,所述访问方式信息被设定为第1访问方式,
当所述比较结果表示不一致时,所述访问方式信息被设定为第2访问方式。
CN201180069869.6A 2011-03-28 2011-03-28 多核处理器系统 Expired - Fee Related CN103493022B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/057715 WO2012131884A1 (ja) 2011-03-28 2011-03-28 マルチコアプロセッサシステム

Publications (2)

Publication Number Publication Date
CN103493022A true CN103493022A (zh) 2014-01-01
CN103493022B CN103493022B (zh) 2016-05-04

Family

ID=46929719

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180069869.6A Expired - Fee Related CN103493022B (zh) 2011-03-28 2011-03-28 多核处理器系统

Country Status (4)

Country Link
US (1) US20140025903A1 (zh)
JP (1) JP5716824B2 (zh)
CN (1) CN103493022B (zh)
WO (1) WO2012131884A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112462926A (zh) * 2020-12-09 2021-03-09 北京元心科技有限公司 移动终端中的电源管理方法、装置、电子设备及计算机存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9760712B2 (en) * 2014-05-23 2017-09-12 Vmware, Inc. Application whitelisting using user identification
US10387668B2 (en) 2014-07-08 2019-08-20 International Business Machines Corporation Data protected process cores
JP6360387B2 (ja) * 2014-08-19 2018-07-18 ルネサスエレクトロニクス株式会社 プロセッサシステム、エンジン制御システム及び制御方法
CN104199777B (zh) * 2014-09-11 2017-10-03 福州瑞芯微电子股份有限公司 一种中央处理器系统验证方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010052054A1 (en) * 1999-03-29 2001-12-13 Hubertus Franke Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems
US20050080999A1 (en) * 2003-10-08 2005-04-14 Fredrik Angsmark Memory interface for systems with multiple processors and one memory system
CN101923523A (zh) * 2009-06-17 2010-12-22 联发科技股份有限公司 存储器系统以及存取存储器的方法
CN201716716U (zh) * 2009-12-15 2011-01-19 深圳市杰和科技发展有限公司 一种基本输入输出系统只读存储器数据的备份系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108493A (ja) * 1991-10-17 1993-04-30 Shikoku Nippon Denki Software Kk メモリ制御方式
JPH05143467A (ja) * 1991-11-22 1993-06-11 Mitsubishi Electric Corp 冗長構成切替方法および冗長構成切替装置
JP3968227B2 (ja) * 2001-10-05 2007-08-29 ソフトバンクテレコム株式会社 情報処理方法および情報処理装置
JP2003316752A (ja) * 2002-04-25 2003-11-07 Nec Corp マルチプロセッサシステムおよびリソース割り当て方法
US7149862B2 (en) * 2002-11-18 2006-12-12 Arm Limited Access control in a data processing apparatus
EP1763744B1 (en) * 2004-04-30 2017-07-19 BlackBerry Limited System and method of owner application control of electronic devices
US7406711B2 (en) * 2005-09-02 2008-07-29 Motorola, Inc. Method and apparatus for enforcing independence of processors on a single IC
JP2009251967A (ja) * 2008-04-07 2009-10-29 Toyota Motor Corp マルチコアシステム
JP2009271597A (ja) * 2008-04-30 2009-11-19 Toshiba Corp プロセッサ
US7953914B2 (en) * 2008-06-03 2011-05-31 International Business Machines Corporation Clearing interrupts raised while performing operating system critical tasks
JP5244551B2 (ja) * 2008-11-14 2013-07-24 株式会社野村総合研究所 情報取得仲介プログラム、オペレーティングシステム、情報取得仲介方法
US8438338B2 (en) * 2010-08-15 2013-05-07 International Business Machines Corporation Flexible use of extended cache using a partition cache footprint

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010052054A1 (en) * 1999-03-29 2001-12-13 Hubertus Franke Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems
US20050080999A1 (en) * 2003-10-08 2005-04-14 Fredrik Angsmark Memory interface for systems with multiple processors and one memory system
CN101923523A (zh) * 2009-06-17 2010-12-22 联发科技股份有限公司 存储器系统以及存取存储器的方法
CN201716716U (zh) * 2009-12-15 2011-01-19 深圳市杰和科技发展有限公司 一种基本输入输出系统只读存储器数据的备份系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112462926A (zh) * 2020-12-09 2021-03-09 北京元心科技有限公司 移动终端中的电源管理方法、装置、电子设备及计算机存储介质

Also Published As

Publication number Publication date
WO2012131884A1 (ja) 2012-10-04
JPWO2012131884A1 (ja) 2014-07-24
CN103493022B (zh) 2016-05-04
JP5716824B2 (ja) 2015-05-13
US20140025903A1 (en) 2014-01-23

Similar Documents

Publication Publication Date Title
TWI530790B (zh) 系統啓動碼恢復方法、運算系統、及供於系統中使用之控制器
KR102408053B1 (ko) 시스템 온 칩, 모바일 기기 및 시스템 온 칩의 동작 방법
JP5203967B2 (ja) メモリ障害を処理するために、センサーネットワークで使用可能な方法及びシステム
US8001322B2 (en) Notifying software components using a shared physical storage medium
US7730249B2 (en) Device control apparatus that calls an operating system to control a device
EP3770765B1 (en) Error recovery method and apparatus
CN105164657A (zh) 程序数据至非易失性存储器的选择性备份
US20030163744A1 (en) Information processing system, and method and program for controlling the same
US10380336B2 (en) Information-processing device, information-processing method, and recording medium that block intrusion of malicious program to kernel
CN103493022A (zh) 多核处理器系统
CN108292342B (zh) 向固件中的侵入的通知
EP2280348B1 (en) Method and system for saving operational state of running applications when unexpected shutdown events occur
CN112199240A (zh) 一种节点故障时进行节点切换的方法及相关设备
US9612915B2 (en) Flash memory-hosted local and remote out-of-service platform manageability
CN111198832B (zh) 一种处理方法和电子设备
CN101295274B (zh) 用于降低共享存储器的数据讹误的方法和设备
WO2013008326A1 (ja) ソフトウェア検証方法、およびソフトウェア検証システム
JP5920509B2 (ja) コントローラの制御プログラム、およびコントローラの制御方法
Zheng et al. Achieving high reliability on Linux for k2 system
JP2013254354A (ja) コンピュータ装置及びソフトウェア管理方法及びプログラム
WO2000020973A2 (en) Method and arrangement for memory management
JP6646322B2 (ja) 多重系電子計算機および多重系電子計算機用プログラム
CN107315624B (zh) 信息处理方法及虚拟化管理器
JP2003337758A (ja) 二重化メモリシステム
WO2012001788A1 (ja) マルチコアプロセッサシステム、復元プログラム、および復元方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160504

Termination date: 20180328