CN103593320B - 多处理器系统、装置和方法 - Google Patents

多处理器系统、装置和方法 Download PDF

Info

Publication number
CN103593320B
CN103593320B CN201310180544.6A CN201310180544A CN103593320B CN 103593320 B CN103593320 B CN 103593320B CN 201310180544 A CN201310180544 A CN 201310180544A CN 103593320 B CN103593320 B CN 103593320B
Authority
CN
China
Prior art keywords
memory
memory access
processing component
code sequence
multicomputer system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310180544.6A
Other languages
English (en)
Other versions
CN103593320A (zh
Inventor
E·乌伊贡
P·庭达尔
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.)
U Blox AG
Original Assignee
U Blox AG
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 U Blox AG filed Critical U Blox AG
Publication of CN103593320A publication Critical patent/CN103593320A/zh
Application granted granted Critical
Publication of CN103593320B publication Critical patent/CN103593320B/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • G06F8/4442Reducing the number of cache misses; Data prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Abstract

本发明涉及多处理器系统、装置和方法。本发明的实施方式提供了多处理器系统中的方法和装置,从而在硬件部件中创建和实施与存储器访问有关的规则的集合。这些规则可以被动态地更新,例如通过用于控制多处理部件的顺序处理器(或者定序器)来动态地更新。

Description

多处理器系统、装置和方法
技术领域
本发明涉及多处理器系统中的方法和装置。
背景技术
本申请人的在先申请(GB2482141A)描述了在计算必须满足严格的实时约束的情况下在具有多处理器或处理部件的系统中控制任务执行的系统和方法。该文献描述了使用应用建模(例如使用统一建模语言(Unified Modeling Language,UML))来描述无线物理层的设计。
在上述申请中描述了如下装置,该装置由顺序处理器(即具备实现UML原语的指令集的可编程处理器)组成,该顺序处理器可用表示由UML定义的操作序列的代码来编程并生成控制信号以触发各个处理部件中的操作;并且其中来自处理部件的表示任务完成的信号还与控制原语结合使用,以控制后续任务的执行。所述系统还允许使用由系统时钟生成的、将要作为触发信号被包括在内的时间事件,使得严格的实时约束能够被应用到系统。所描述的装置和方法的优点是可以非常有效地控制多处理器集合中的任务执行,并且由UML定义的任务序列可以被自动编译成微代码,以控制顺序处理器的操作。
因此,建模工具根据以专用硬件顺序处理器为对象的模型生成代码。该硬件顺序处理器保证在处理器上执行的任务(以及实际上在专用硬件块上运行的任务/功能)满足它们的截止期限以及它们的控制和数据依赖性。
在多处理器系统中,存储器的访问是复杂的,因为在各个时间很多处理部件都能访问存储器。如果存储器也被频繁地循环利用(以缩小尺寸),那么系统的调试和验证极其困难。
此外,在能够支持多个空中接口模式(诸如未来的蜂窝手机中所需要的模式,其中可以在现场加载和更新的软件中定义模式)的调制解调器中,在软件访问存储器的方式上可能存在意料之外的交互,这将会引起系统必须自动恢复的操作故障。
因此,期望具有能够识别和管理多处理器系统中的存储器访问中、或者在开发/调试阶段或在正常操作中的问题的系统。
发明内容
根据本发明的第一个方面,提供了如所附权利要求书中阐述的、监控多处理器系统中的存储器访问的方法。
根据本发明的另一个方面,公开了配置为执行根据第一个方面的方法的硬件部件(还被称为存储器监视单元),以及多处理器系统,该多处理器系统包括上述硬件部件;多个处理部件;各处理部件所访问的存储器;以及用于生成要被多个处理部件执行的代码序列的定序器。
附图说明
为了更好地理解本发明,并且更清楚地示出可以如何实施本发明,现在将以示例的方式参考以下附图,在附图中:
图1是根据本发明实施方式的多处理器系统的示意图;以及
图2是生成用于图1所示的系统的代码的处理流程的示意图。
具体实施方式
图1是根据本发明实施方式的多处理器系统10的示意图。
系统10包括多个处理部件1-n12,其中n是大于1的正整数。虽然示例性实施方式示出了三个处理部件12,但系统10可以包括如两个这样少的处理部件。
处理部件12可以包括任何处理器或专用处理器。例如,多个处理部件12可以包括如下每个的一个或更多个:矢量信号处理器,其能够在同一处理器周期中对数据阵列的每个元素执行矩阵矢量算术运算;硬件块,其专用于例如直接存储器访问或turbo译码这样的单一类型的操作;中央处理单元(CPU);或者许多其它类型的处理块中的一种。
系统10进一步包括提供系统时钟的定时器14、控制处理器15和顺序处理器16。处理部件12、定时器14、控制处理器15和顺序处理器16经由系统总线或互连器18来彼此互连。
顺序处理器16是具备实现UML原语的指令集的可编程处理器。顺序处理器16可用表示由UML定义的操作序列的代码来编程并生成信号(还被称作动作启用(ActionInnovation))以触发各个处理部件12中的操作。来自处理部件的指示任务完成的信号(还被称作动作指示)还与控制原语结合使用以控制后续任务的执行。因此由UML定义的任务序列能够被自动地编译成微代码,以控制顺序处理器16的操作,该顺序处理器16产生动作启用(Action Invocation,AI)来触发处理部件12中的操作。
每个AI都是包括以下内容中的一部分或全部的消息:执行该动作所要求的资源的定义,包括要求的处理部件的类型、任何存储器要求和/或任何功率或电流要求;关于所要求的处理部件能否被先占有的指示;指向对处理部件进行编程的代码(如果需要)的指针;指向输入数据和输出数据缓冲区的指针;关于如果数据依赖则执行该动作要求的最小和最大执行循环的数据;动作的优先级的定义;任何最早开始或最晚结束时间(即,动作决不能在特定时间之前开始、或必须在特定时间完成)的定义;以及操作序列中在动作完成时控制必须交返回的位置的定义。
设置有每个处理部件12和顺序处理器16都具有访问权的存储器20。存储器20可以是片上存储器、片外存储器或二者的组合。可以通过单个存储体提供存储器20,但是更通常期望存储器将包括排列在系统10周围不同位置的多个存储体。存储器20可以经由存储总线21或多条总线(例如存储地址总线、存储数据总线和/或一条或多条控制线)连接到系统10的其它部件。
根据本发明的实施方式,系统还包括存储器监视单元22。该存储器监视单元22是专用硬件部件,与存储器20同样耦接到互连器或总线21。其可以是专用存储总线(如图1所示实施方式)或更通用的系统互连器18。因此,存储器监视单元22能监控处理部件12和/或顺序处理器16进行的每个存储器访问。下面给出存储器监视单元22的操作的进一步细节。
图2是示出在设计过程期间创建多处理器系统(例如前面所述的多处理器系统10)的模型的技术的示意图。这种系统的一个具体示例是(如GB2482141A描述的)调制解调器物理层的软件实例化。该模型允许表达和可视化各种设计考虑(例如,功率、性能、面积等),并且允许在生成用于控制多处理器系统的代码之前进行对模型的分析。虽然这些设计考虑(以及其它)并不是彼此孤立的,但是当其被表达和可视化时将它们分开是有用的,不只是对于设计人员而言降低复杂性。在处理的分析阶段,各种考虑可以被一起交叉搭配和分析。在这个阶段,可以定义策略以便可以影响代码生成阶段。
在模型103中表达了存储器101的考虑或约束或其它考虑102(可以使用UML或任何其它适合的建模语言来表达)。如GB2482141A所描述地,模型103的主要目的是表达系统的多处理部件执行的任务之间的依赖性。
使用模型中描述的行为生成存储器使用情况104。可以通过在模型中创建缓冲区并将其隶属于处理器中运行的任务,对存储器使用情况进行建模,以创建控制和数据流。该模型可进一步被注释以描述存储器的属性-例如在系统中可以从何处分配存储器、其对齐类型等。还可以对缓冲区进行注释,以描述其预期寿命,允许随着代码执行的进行存储器重复用于其它用途。因此该模型获知全部关键方面:存储器位置、存储器地址、数据流(即,哪个处理正在访问什么和何时访问)和存储器寿命。
可以通过可视化工具105显示存储器使用情况:可视辅助工具,其向设计人员呈现存储器在使用时如何布局。
可以应用策略107以允许分析关于不同方面之间交互的“交叉考虑”并且优化系统。例如,策略可以是尽可能将访问限于一个存储器存储体,使得可以关闭其它存储体,即本示例中的策略优先考虑节电。在这种情况下,开发工具能推断出一个存储器子系统未使用,然后可以生成代码将其关闭。在另一个示例中,策略可优先考虑访问速度,并生成代码以优先于片外存储器来使用片上存储器。在再一个示例中,策略可以优先考虑性能,由此在多个存储器子系统上来展开存储器分配,以便多个处理部件可以并行地访问存储器子系统。然而,本发明并不限于任何特定的策略。
接下来,基于在步骤106中执行的分析,针对系统中的各个处理器生成108代码。在代码生成阶段,可以静态地分配(即,被管理为使得在设计时进行分配)存储器;动态地分配存储器,其中生成代码来访问存储器分配API(由目标主机的操作系统来提供);或者静态和动态分配的组合。在一个实施方式中,控制处理器15与操作系统通信,并因而与存储器分配API通信;但是,在其它实施方式中,任何处理部件12都可以直接与存储器分配API通信。
生成的代码包括针对顺序处理器16的目标代码109和存储器监视列表110。该目标代码包括在顺序处理器16控制下多个处理部件要执行的程序或者动作的列表。
当生成并运行针对顺序处理器16和其它系统部件的代码时,可能出现意料之外的行为,其中存储器20的特定区域被分配给不同并且无关的处理。这可能是因为程序员失误,或者因为顺序处理器16正在运行来自无关的并且可能异步的协议的代码。这样的行为可能很难被追踪,尤其是如果其不是在开发阶段出现而是随后在现场部署产品时出现。
因此,顺序处理器16被提供有在图2中概示的流程中生成的程序或者动作的列表,并由此可以生成上述的将要发送到处理部件12的动作启用。经由图2的流程还生成存储器监视列表110,其包含系统操作中各个点上的存储器地址、存储器数据内容和存储器控制信号(例如读或写信号)的集合。顺序处理器16使用该存储器监视列表以利用关于对存储器20的访问的一条或多条规则对存储器监视单元22编程。
因此,随着程序执行的进行,顺序处理器16提供多个信号来对存储器监视单元22动态编程。例如,在处理部件完成任务时,可以规定新规则或者改变旧规则。这些信号可以包括在执行控制处理部件12的代码序列期间在各个点上期望出现(或者不应当出现)的存储器地址、存储器位置数据内容和存储器控制信号。
存储器监视单元22经由总线21(其可以是许多总线和/或事实上其它互连器)连接到存储器20,并由此能够检测处理部件进行的存储器访问,并且应用存储器监视列表110中规定的规则。如果规则中的一条或更多条被违反,则可以按照以下描述的生成警告信号。
例如,可以被编程以应用禁止对一个或者一组存储器地址的访问的规则。因此,存储器监视单元22可以检测存储器访问中规定的地址,并且如果该地址与被禁止地址列表中的一个地址相匹配时将该存储器访问标志为违反规则。可以通过分析地址的最高有效位中的仅仅一位或更多位,检测对一组地址中的任意地址的访问。而且,这些地址可以仅仅针对特定类型的处理部件被禁止访问。因此,如果存储器访问源自第一类型的处理部件(允许该类型的处理部件访问该地址),则可以授权存储器访问;如果存储器访问源自第二类型的处理部件(其对该地址的访问被禁止),则可以认为存储器访问违反了规则。
在另一个实施方式中,可以应用规则,从而如果对特定地址的存储器访问为特定类型,则其被禁止。例如,存储器控制线可以标识访问是读操作还是写操作。特定地址可以被指定为只读,因此对这些地址的任何写操作可以认为是违反了存储器访问规则。
在进一步的实施方式中,存储器监视单元22可以通过监控任何存储器访问中的指定存储器位置处的数据来实施规则。例如,规则可以规定在特定存储器地址的数据采用特定值。该值可以是用于使系统正确运行而要求的控制值,或者用来测试系统是否正确运行的任意值(用于防止恶意程序对存储器覆写的技术)。如果存储器访问向该存储器地址写入不同的值,或者从该存储器地址读取不同的值,则可以认为已经违反了规则。
为了实施这些规则,存储器监视单元22可以包含多个比较器,以便将数据、地址、始发处理部件和/或存储器访问类型与可能违反存储器监视列表110中规定的规则的那些参数的值进行比较。存储器监视单元22可以包含一个或多个比较器组,其可以逻辑组合以给出复杂的触发。
如果存储器监视单元22发现存储器访问已经违反了规则中的一条(例如,比较器检测到与被禁止访问相匹配的存储器访问),则其可以生成在系统10中可以以各种方式使用的警告信号(也被称为存储器违规触发)。
例如,警告信号可以被施加给断点模块,其将“中断”软件执行并且在系统“调试”阶段向外部系统输出跟踪数据,使得程序员能够发现问题。在进一步的实施方式中,警告信息可以被传递到中断控制器以生成系统中断(其可以被传递到控制处理器)和/或顺序处理器16以触发异常处理例程来按照可控的方式处理存储器违规。
根据本发明的实施方式,可以在开发期间为了调试而提供的预先存在的跟踪模块中实现存储器监视单元22。也就是说,在很多嵌入式系统中(例如,基于来自ARM Limited的处理器和总线技术的那些系统),通常具有被称为跟踪模块的IP块。在ARM技术中,这可以是“系统跟踪模块”(System Trace Module,STM)或者“扩展跟踪模块”(Extended TraceModule,ETM)。这些IP块通常包含可以由外部调试器来编程的一组比较器,以与一组条件相匹配接着导致系统断点(即,暂停软件执行以允许程序员检查直至断点的跟踪数据)。通常,跟踪模块由外部调试系统经由符合IEEE 1149.1标准测试访问端口和边界扫描架构的JTAG端口来编程。现代嵌入式系统设计的一个重要方面是这类跟踪硬件被理所当然地并入,然而可以通过在已编程控制下将其关闭,来使功耗最小。也就是说,通过JTAG端口上的信号来使能跟踪硬件,并且通过该端口向所附接的诸如ARM D-Stream JTAG接口模块和DS5跟踪和调试软件这样的监控系统传输跟踪信息。当开发完成时,该硬件被关闭。
根据本发明的实施方式,可以改造该预先存在的跟踪电路,以被系统10自身内部地访问。例如,可以将跟踪电路的输入和输出送往系统互连器18,使得该电路可以被顺序处理器16访问,或许还有通常所使用的JTAG端口。按此方式,跟踪电路可以被顺序处理器16编程,或者被适于实现存储器监视列表110中列出的规则的任何其它硬件部件来编程。由此跟踪电路可以适于执行存储器监视单元22要求的功能,并且可以在基本上不增加系统10中要求的硬件数量的情况下提供本发明的功能。
因此,本发明的实施方式提供了多处理器系统中的方法和装置,从而在硬件部件中创建和实施与存储器访问有关的规则的集合。这些规则可以被动态地更新,例如在这些处理部件执行的任务完成之后,通过用于控制多处理部件的顺序处理器(或者定序器)16来动态更新。
本领域技术人员将认识到,在不脱离所附权利要求书所限定的本发明的范围的前提下,可以对上述实施方式作出各种修改和替换。

Claims (14)

1.一种用于多处理器系统中的方法,所述多处理器系统包含多个处理部件、定序器以及各个所述处理部件和所述定序器所访问的存储器,所述方法包括以下步骤:
在执行代码序列期间接收多个信号,所述多个信号指示在进一步执行所述代码序列期间在实例中将要应用的多个存储器访问规则;
在所述实例中,针对所述多个处理部件的存储器访问应用所述存储器访问规则;以及
在所述处理部件的存储器访问违反所述存储器访问规则中的一条或多条的情况下,生成警告信号,
其中,所述定序器是适于生成所述多个处理部件要执行的所述代码序列的顺序处理器,以及
其中,所生成的代码序列包括在所述顺序处理器控制下所述多个处理部件要执行的动作。
2.根据权利要求1所述的方法,其中,所述多个信号包括指示一个或多个存储器地址以及在这些一个或多个存储器地址处的预期数据内容的一个或多个信号。
3.根据权利要求1或2所述的方法,其中,所述多个信号包括指示特定存储器地址和期望访问所述特定存储器地址的处理部件的一个或多个信号。
4.根据权利要求1或2所述的方法,所述方法进一步包含以下步骤:
在生成所述警告信号时,采取动作来处理所述一条或多条违反规则的后果。
5.根据权利要求4所述的方法,其中,所采取的用来处理所述一条或多条违反规则的后果的动作包括以下中的一个或多个:
暂停执行所述代码序列的一部分或者全部;
输出在所述违反之前的存储器访问的跟踪数据;以及
触发异常处理例程。
6.根据权利要求1或2所述的方法,其中,如果处理部件的存储器访问指定了禁止该处理部件访问的存储器地址,则认为出现违反。
7.根据权利要求1或2所述的方法,其中,如果存储器访问指定了对只读的存储器地址的写动作,则认为出现违反。
8.根据权利要求1或2所述的方法,其中,如果存储器访问指定了与所述存储器访问规则中的一条所指定的值不同的数据值,则认为出现违反。
9.根据权利要求1或2所述的方法,所述方法进一步包括以下步骤:
在连接到所述存储器的一条或多条总线上检测存储器访问。
10.根据权利要求1或2所述的方法,其中,从所述定序器接收所述多个信号。
11.根据权利要求10所述的方法,其中,随着所述代码序列执行的进行,所述多个信号动态地更新所述存储器访问规则。
12.根据权利要求1或2所述的方法,在为了调试而提供的跟踪数据获取电路上执行所述方法。
13.一种在多处理器系统中使用的硬件部件,所述硬件部件适于执行根据权利要求1-12中的任一项所述的方法。
14.一种多处理器系统,所述多处理器系统包括:
权利要求13所述的硬件部件。
CN201310180544.6A 2012-03-30 2013-03-29 多处理器系统、装置和方法 Active CN103593320B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1205737.8A GB2500707B (en) 2012-03-30 2012-03-30 Multiprocessor system, apparatus and methods
GB1205737.8 2012-03-30

Publications (2)

Publication Number Publication Date
CN103593320A CN103593320A (zh) 2014-02-19
CN103593320B true CN103593320B (zh) 2018-03-09

Family

ID=46160075

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310180544.6A Active CN103593320B (zh) 2012-03-30 2013-03-29 多处理器系统、装置和方法

Country Status (5)

Country Link
US (1) US9600422B2 (zh)
EP (1) EP2645258B1 (zh)
JP (1) JP6104671B2 (zh)
CN (1) CN103593320B (zh)
GB (1) GB2500707B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2500707B (en) 2012-03-30 2014-09-17 Cognovo Ltd Multiprocessor system, apparatus and methods
US11714676B2 (en) * 2020-01-03 2023-08-01 International Business Machines Corporation Software-directed value profiling with hardware-based guarded storage facility

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7111307B1 (en) * 1999-11-23 2006-09-19 Microsoft Corporation Method and system for monitoring and verifying software drivers using system resources including memory allocation and access
CN101499020A (zh) * 2008-01-28 2009-08-05 财团法人工业技术研究院 具有动态工作管理能力的多处理器界面及其程序载卸方法

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2457521B1 (fr) * 1979-05-23 1985-12-27 Thomson Csf Systeme multiprocesseur de traitement de signal
US4819152A (en) * 1985-04-05 1989-04-04 Raytheon Company Method and apparatus for addressing a memory by array transformations
US5222241A (en) * 1987-06-05 1993-06-22 Mitsubishi Denki Kabushiki Kaisha Digital signal processor having duplex working registers for switching to standby state during interrupt processing
EP0551934A2 (en) * 1987-06-05 1993-07-21 Mitsubishi Denki Kabushiki Kaisha Digital signal processor
US5247627A (en) * 1987-06-05 1993-09-21 Mitsubishi Denki Kabushiki Kaisha Digital signal processor with conditional branch decision unit and storage of conditional branch decision results
US5237667A (en) * 1987-06-05 1993-08-17 Mitsubishi Denki Kabushiki Kaisha Digital signal processor system having host processor for writing instructions into internal processor memory
US5206940A (en) * 1987-06-05 1993-04-27 Mitsubishi Denki Kabushiki Kaisha Address control and generating system for digital signal-processor
JPH06231007A (ja) * 1993-01-28 1994-08-19 Mitsubishi Electric Corp 計算機の不正アドレス検知回路
US6128720A (en) * 1994-12-29 2000-10-03 International Business Machines Corporation Distributed processing array with component processors performing customized interpretation of instructions
WO1996029652A1 (en) * 1995-03-22 1996-09-26 Ast Research, Inc. Rule-based dram controller
US5784636A (en) * 1996-05-28 1998-07-21 National Semiconductor Corporation Reconfigurable computer architecture for use in signal processing applications
FR2767939B1 (fr) * 1997-09-04 2001-11-02 Bull Sa Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur
US6374286B1 (en) * 1998-04-06 2002-04-16 Rockwell Collins, Inc. Real time processor capable of concurrently running multiple independent JAVA machines
GB9825102D0 (en) * 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
US6769116B1 (en) * 1999-10-21 2004-07-27 Oracle International Corporation Diagnostic technique for debugging memory corruption
US7143401B2 (en) * 2000-02-17 2006-11-28 Elbrus International Single-chip multiprocessor with cycle-precise program scheduling of parallel execution
WO2001063438A1 (en) * 2000-02-24 2001-08-30 Bops Incorporated Methods and apparatus for providing bit-reversal and multicast functions utilizing dma controller
WO2001063434A1 (en) * 2000-02-24 2001-08-30 Bops, Incorporated Methods and apparatus for dual-use coprocessing/debug interface
US7181730B2 (en) * 2000-06-21 2007-02-20 Altera Corporation Methods and apparatus for indirect VLIW memory allocation
US7028286B2 (en) * 2001-04-13 2006-04-11 Pts Corporation Methods and apparatus for automated generation of abbreviated instruction set and configurable processor architecture
US6912608B2 (en) * 2001-04-27 2005-06-28 Pts Corporation Methods and apparatus for pipelined bus
JP3661614B2 (ja) * 2001-07-12 2005-06-15 日本電気株式会社 キャッシュメモリ制御方法及びマルチプロセッサシステム
GB0125628D0 (en) * 2001-10-25 2001-12-19 Ibm Computer system with watchpoint support
US20030140337A1 (en) * 2001-12-21 2003-07-24 Celoxica Ltd. System, method, and article of manufacture for data transfer reporting for an application
US20030167381A1 (en) * 2002-03-04 2003-09-04 Israel Herscovich System and method for dynamic memory access management
US7669189B1 (en) * 2002-06-26 2010-02-23 Oracle International Corporation Monitoring memory accesses for computer programs
JP2004192052A (ja) * 2002-12-06 2004-07-08 Matsushita Electric Ind Co Ltd ソフトウェア処理方法およびソフトウェア処理システム
US7930484B2 (en) * 2005-02-07 2011-04-19 Advanced Micro Devices, Inc. System for restricted cache access during data transfers and method thereof
US8161461B2 (en) * 2005-03-24 2012-04-17 Hewlett-Packard Development Company, L.P. Systems and methods for evaluating code usage
GB0509738D0 (en) * 2005-05-12 2005-06-22 Cambridge Consultants Processor and interface
US7350034B2 (en) * 2005-06-20 2008-03-25 International Business Machines Corporation Architecture support of best-effort atomic transactions for multiprocessor systems
US7350036B2 (en) * 2005-08-01 2008-03-25 Intel Corporation Technique to perform concurrent updates to a shared data structure
US7779307B1 (en) * 2005-09-28 2010-08-17 Oracle America, Inc. Memory ordering queue tightly coupled with a versioning cache circuit
US7620938B2 (en) * 2005-10-31 2009-11-17 Microsoft Corporation Compressed program recording
US7962923B2 (en) * 2005-12-30 2011-06-14 Level 3 Communications, Llc System and method for generating a lock-free dual queue
US20080034350A1 (en) * 2006-04-05 2008-02-07 Conti Gregory R System and Method for Checking the Integrity of Computer Program Code
US7752605B2 (en) * 2006-04-12 2010-07-06 Microsoft Corporation Precise data-race detection using locksets
US20070250820A1 (en) * 2006-04-20 2007-10-25 Microsoft Corporation Instruction level execution analysis for debugging software
US8316352B2 (en) * 2006-06-09 2012-11-20 Oracle America, Inc. Watchpoints on transactional variables
US8606998B2 (en) * 2006-08-24 2013-12-10 Advanced Micro Devices, Inc. System and method for instruction-based cache allocation policies
DE102006041002B4 (de) * 2006-08-31 2009-01-02 Infineon Technologies Ag Verfahren, um ein Programm an einen Zwischenspeicher anzupassen, und Schaltungsanordnung
US8185874B2 (en) * 2006-11-07 2012-05-22 Microsoft Corporation Automatic and systematic detection of race conditions and atomicity violations
GB0623276D0 (en) * 2006-11-22 2007-01-03 Transitive Ltd Memory consistency protection in a multiprocessor computing system
US7823013B1 (en) * 2007-03-13 2010-10-26 Oracle America, Inc. Hardware data race detection in HPCS codes
US8688920B2 (en) * 2007-05-14 2014-04-01 International Business Machines Corporation Computing system with guest code support of transactional memory
US7814378B2 (en) * 2007-05-18 2010-10-12 Oracle America, Inc. Verification of memory consistency and transactional memory
US8839218B2 (en) * 2007-06-04 2014-09-16 International Business Machines Corporation Diagnosing alias violations in memory access commands in source code
GB2450505A (en) * 2007-06-26 2008-12-31 Symbian Software Ltd Authorised debugging
JP4888272B2 (ja) * 2007-07-30 2012-02-29 富士通セミコンダクター株式会社 ソフトウェアのシミュレーション方法、ソフトウェアのシミュレーションのためのプログラム、及びソフトウェアのシミュレーション装置
US8627030B2 (en) * 2007-11-07 2014-01-07 Intel Corporation Late lock acquire mechanism for hardware lock elision (HLE)
US7823019B2 (en) * 2008-05-08 2010-10-26 Arm Limited Debug circuitry
US20100070955A1 (en) * 2008-07-08 2010-03-18 Nec Laboratories America Alias analysis for concurrent software programs
WO2010004474A2 (en) * 2008-07-10 2010-01-14 Rocketic Technologies Ltd Efficient parallel computation of dependency problems
US8266604B2 (en) * 2009-01-26 2012-09-11 Microsoft Corporation Transactional memory compatibility management
US20100318746A1 (en) * 2009-06-12 2010-12-16 Seakr Engineering, Incorporated Memory change track logging
JP5283128B2 (ja) * 2009-12-16 2013-09-04 学校法人早稲田大学 プロセッサによって実行可能なコードの生成方法、記憶領域の管理方法及びコード生成プログラム
US8806446B2 (en) * 2010-03-22 2014-08-12 Analog Devices, Inc. Methods and apparatus for debugging programs in shared memory
US10241894B2 (en) * 2010-06-25 2019-03-26 Microsoft Technology Licensing, Llc Data-scoped dynamic data race detection
US20120011490A1 (en) * 2010-07-09 2012-01-12 Kabushiki Kaisha Toshiba Development system
GB2482141B (en) * 2010-07-20 2012-07-18 Cognovo Ltd Digital data processing systems
CN102736974A (zh) * 2011-04-13 2012-10-17 鸿富锦精密工业(深圳)有限公司 程序除错系统及方法
US9329877B2 (en) * 2012-03-18 2016-05-03 Microsoft Technology Licensing, Llc Static verification of parallel program code
GB2500707B (en) 2012-03-30 2014-09-17 Cognovo Ltd Multiprocessor system, apparatus and methods

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7111307B1 (en) * 1999-11-23 2006-09-19 Microsoft Corporation Method and system for monitoring and verifying software drivers using system resources including memory allocation and access
CN101499020A (zh) * 2008-01-28 2009-08-05 财团法人工业技术研究院 具有动态工作管理能力的多处理器界面及其程序载卸方法

Also Published As

Publication number Publication date
JP2013218680A (ja) 2013-10-24
EP2645258B1 (en) 2016-05-18
JP6104671B2 (ja) 2017-03-29
EP2645258A1 (en) 2013-10-02
US20130262806A1 (en) 2013-10-03
GB2500707B (en) 2014-09-17
US9600422B2 (en) 2017-03-21
CN103593320A (zh) 2014-02-19
GB201205737D0 (en) 2012-05-16
GB2500707A (en) 2013-10-02

Similar Documents

Publication Publication Date Title
CN1894662B (zh) 作为用于执行引导码的ram的处理器缓存存储器
US7225431B2 (en) Method and apparatus for setting breakpoints when debugging integrated executables in a heterogeneous architecture
US20090037888A1 (en) Simulation of program execution to detect problem such as deadlock
CN104205064A (zh) 将程序事件记录事件向运行时间检测事件的变换
US20130305021A1 (en) Method for convergence analysis based on thread variance analysis
Meloni et al. System adaptivity and fault-tolerance in NoC-based MPSoCs: the MADNESS project approach
US20110029819A1 (en) System and method for providing program tracking information
US8095829B1 (en) Soldier-on mode to control processor error handling behavior
WO2008082455A1 (en) Reconfiguring a secure system
US20180239905A1 (en) Method, checking device, and system for determining security of a processor
US7676774B2 (en) System LSI verification system and system LSI verification method
Derin et al. A system-level approach to adaptivity and fault-tolerance in NoC-based MPSoCs: The MADNESS project
CN103593320B (zh) 多处理器系统、装置和方法
Farrelly et al. Ember-IO: effective firmware fuzzing with model-free memory mapped IO
US8707267B1 (en) Debugging a computer program by interrupting program execution in response to access of unused I/O port
US9038077B1 (en) Data transfer protection in a multi-tasking modeling environment
US10802901B2 (en) Obtaining state information of threads of a device
Bertolotti et al. Embedded software development: the open-source approach
Mancuso Next-generation safety-critical systems on multi-core platforms
Alonso et al. Towards model-driven engineering for mixed-criticality systems: Multipartes approach
Colnaric State of the art review paper: advances in embedded hard real-time systems design
Alcaide Portet Hardware/software solutions to enable the use of high-performance processors in the most stringent safety-critical systems
Li A Traced-based Automated System Diagnosis and Software Debugging Methodology for Embedded Multi-core Systems
Lee et al. Embedded Firmware Rehosting System through Automatic Peripheral Modeling
Staroletov Towards Model Checking Linux Interrupts Behavior for SMP Systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20151116

Address after: Swiss Tulsa

Applicant after: Ublox AG

Address before: Hertfordshire

Applicant before: U-BLOX MELBOURN LTD

GR01 Patent grant
GR01 Patent grant