CN103593320A - 多处理器系统、装置和方法 - Google Patents
多处理器系统、装置和方法 Download PDFInfo
- Publication number
- CN103593320A CN103593320A CN201310180544.6A CN201310180544A CN103593320A CN 103593320 A CN103593320 A CN 103593320A CN 201310180544 A CN201310180544 A CN 201310180544A CN 103593320 A CN103593320 A CN 103593320A
- Authority
- CN
- China
- Prior art keywords
- processing element
- memory access
- aforementioned
- storer
- access
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 49
- 230000009471 action Effects 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims description 2
- 230000000454 anti-cipatory effect Effects 0.000 claims 1
- 238000013461 design Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
- G06F8/4442—Reducing the number of cache misses; Data prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/3471—Address tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
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定义的操作序列的代码来编程并生成信号(还被称作动作启用(Action Innovation))以触发各个处理部件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。也就是说,在很多嵌入式系统中(例如,基于来自ARMLimited的处理器和总线技术的那些系统),通常具有被称为跟踪模块的IP块。在ARM技术中,这可以是“系统跟踪模块”(System Trace Module,STM)或者“扩展跟踪模块”(Extended Trace Module,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.根据前述权利要求中的任一项所述的方法,所述方法进一步包含以下步骤:
在生成所述警告信号时,采取动作来处理所述一个或多个违反规则的后果。
5.根据权利要求4所述的方法,其中,所述动作包括以下中的一个或多个:
暂停执行所述代码序列的一部分或者全部;
输出在所述违反之前的存储器访问的跟踪数据;以及
触发异常处理例程。
6.根据前述权利要求中的任一项所述的方法,其中,如果处理部件的存储器访问指定了禁止该处理部件访问的存储器地址,则认为出现违反。
7.根据前述权利要求中的任一项所述的方法,其中,如果存储器访问指定了对只读的存储器地址的写动作,则认为出现违反。
8.根据前述权利要求中的任一项所述的方法,其中,如果存储器访问指定了与所述存储器访问规则中的一条所指定的值不同的数据值,则认为出现违反。
9.根据前述权利要求中的任一项所述的方法,所述方法进一步包括以下步骤:
在连接到所述存储器的一条或多条总线上检测存储器访问。
10.根据前述权利要求中的任一项所述的方法,其中,从所述定序器接收所述多个信号。
11.根据权利要求10所述的方法,其中,随着所述代码序列执行的进行,所述多个信号动态地更新所述存储器访问规则。
12.根据前述权利要求中的任一项所述的方法,在为了调试而提供的跟踪数据获取电路上执行所述方法。
13.一种在多处理器系统中使用的硬件部件,所述硬件部件适于执行根据前述权利要求中的任一项所述的方法。
14.一种多处理器系统,所述多处理器系统包括:
多个处理部件;
各所述处理部件所访问的存储器;
适于生成所述多个处理部件要执行的代码序列的定序器;以及
权利要求13所述的硬件部件。
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 true CN103593320A (zh) | 2014-02-19 |
CN103593320B 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)
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 (5)
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 |
US20080127035A1 (en) * | 2006-06-09 | 2008-05-29 | Sun Microsystems, Inc. | Watchpoints on transactional variables |
CN101499020A (zh) * | 2008-01-28 | 2009-08-05 | 财团法人工业技术研究院 | 具有动态工作管理能力的多处理器界面及其程序载卸方法 |
US20090282304A1 (en) * | 2008-05-08 | 2009-11-12 | Arm Limited | Debug circuitry |
US20100318746A1 (en) * | 2009-06-12 | 2010-12-16 | Seakr Engineering, Incorporated | Memory change track logging |
Family Cites Families (60)
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 |
DE3856175T2 (de) * | 1987-06-05 | 1998-12-17 | Mitsubishi Electric Corp | Digitales Signalverarbeitungssystem in dem ein Prozessor unter Kontrolle eines Hosts auf zwei Befehlsspeicher zugreift |
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 |
US5206940A (en) * | 1987-06-05 | 1993-04-27 | Mitsubishi Denki Kabushiki Kaisha | Address control and generating system for digital signal-processor |
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 |
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 |
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 |
AU5368696A (en) * | 1995-03-22 | 1996-10-08 | 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 |
WO2001063434A1 (en) * | 2000-02-24 | 2001-08-30 | Bops, Incorporated | Methods and apparatus for dual-use coprocessing/debug interface |
WO2001063438A1 (en) * | 2000-02-24 | 2001-08-30 | Bops Incorporated | Methods and apparatus for providing bit-reversal and multicast functions utilizing dma controller |
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 |
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) |
US20100070955A1 (en) * | 2008-07-08 | 2010-03-18 | Nec Laboratories America | Alias analysis for concurrent software programs |
CN102089752B (zh) * | 2008-07-10 | 2014-05-07 | 洛克泰克科技有限公司 | 依赖性问题的有效率的并行计算 |
US8266604B2 (en) * | 2009-01-26 | 2012-09-11 | Microsoft Corporation | Transactional memory compatibility management |
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 |
-
2012
- 2012-03-30 GB GB1205737.8A patent/GB2500707B/en active Active
- 2012-11-30 US US13/691,630 patent/US9600422B2/en active Active
-
2013
- 2013-03-27 EP EP13161476.0A patent/EP2645258B1/en active Active
- 2013-03-29 CN CN201310180544.6A patent/CN103593320B/zh active Active
- 2013-03-29 JP JP2013072004A patent/JP6104671B2/ja active Active
Patent Citations (5)
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 |
US20080127035A1 (en) * | 2006-06-09 | 2008-05-29 | Sun Microsystems, Inc. | Watchpoints on transactional variables |
CN101499020A (zh) * | 2008-01-28 | 2009-08-05 | 财团法人工业技术研究院 | 具有动态工作管理能力的多处理器界面及其程序载卸方法 |
US20090282304A1 (en) * | 2008-05-08 | 2009-11-12 | Arm Limited | Debug circuitry |
US20100318746A1 (en) * | 2009-06-12 | 2010-12-16 | Seakr Engineering, Incorporated | Memory change track logging |
Also Published As
Publication number | Publication date |
---|---|
GB2500707B (en) | 2014-09-17 |
EP2645258B1 (en) | 2016-05-18 |
CN103593320B (zh) | 2018-03-09 |
JP6104671B2 (ja) | 2017-03-29 |
JP2013218680A (ja) | 2013-10-24 |
US9600422B2 (en) | 2017-03-21 |
EP2645258A1 (en) | 2013-10-02 |
GB201205737D0 (en) | 2012-05-16 |
GB2500707A (en) | 2013-10-02 |
US20130262806A1 (en) | 2013-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1894662B (zh) | 作为用于执行引导码的ram的处理器缓存存储器 | |
JP2013524386A (ja) | ランスペース方法、システムおよび装置 | |
US9292265B2 (en) | Method for convergence analysis based on thread variance analysis | |
JP4766487B2 (ja) | プログラム改ざん検出装置 | |
CN104205064A (zh) | 将程序事件记录事件向运行时间检测事件的变换 | |
Meloni et al. | System adaptivity and fault-tolerance in NoC-based MPSoCs: the MADNESS project approach | |
Wang et al. | Enabling cross-isa offloading for cots binaries | |
CN112015491A (zh) | 实现函数跳转的方法、装置及计算机存储介质 | |
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 | |
Chang et al. | Implementation of JVM tool interface on Dalvik virtual machine | |
CN103593320A (zh) | 多处理器系统、装置和方法 | |
CN115176229A (zh) | 一种多核处理器、多核处理器处理方法及相关设备 | |
Diaz et al. | VIPPE, parallel simulation and performance analysis of multi-core embedded systems on multi-core platforms | |
Shannon et al. | Performance monitoring for multicore embedded computing systems on FPGAs | |
Chen et al. | Low-overhead online assessment of timely progress as a system commodity | |
Harvey et al. | A scalable runtime for the ecoscale heterogeneous exascale hardware platform | |
Li et al. | A Rule-based Methodology for Hardware Configuration Validation in Embedded Systems | |
Fox et al. | A gem5 implementation of the sequential codelet model: Reducing overhead and expanding the software memory interface | |
Wahler et al. | Real-time multi-core components for cyber-physical systems | |
He et al. | Efficient dynamic program monitoring on multi-core systems | |
Jämbäck | Evaluation of Real-Time Linux on RISC-V processor architecture | |
Girbal et al. | BB-RTE: a budget-based runtime engine for mixed and safety critical systems | |
Kicherer | Reducing the Complexity of Heterogeneous Computing: A Unified Approach for Application Development and Runtime Optimization | |
Jang et al. | Hybrid booting with incremental hibernation for the baseboard management controllers |
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 |