CN112506586A - 可编程电子设备及其操作方法 - Google Patents
可编程电子设备及其操作方法 Download PDFInfo
- Publication number
- CN112506586A CN112506586A CN202010974765.0A CN202010974765A CN112506586A CN 112506586 A CN112506586 A CN 112506586A CN 202010974765 A CN202010974765 A CN 202010974765A CN 112506586 A CN112506586 A CN 112506586A
- Authority
- CN
- China
- Prior art keywords
- memory
- bit
- value
- instructions
- location
- 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 26
- 230000015654 memory Effects 0.000 claims abstract description 173
- 238000012360 testing method Methods 0.000 description 14
- 230000008901 benefit Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 239000003607 modifier Substances 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- 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
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60L—PROPULSION OF ELECTRICALLY-PROPELLED VEHICLES; SUPPLYING ELECTRIC POWER FOR AUXILIARY EQUIPMENT OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRODYNAMIC BRAKE SYSTEMS FOR VEHICLES IN GENERAL; MAGNETIC SUSPENSION OR LEVITATION FOR VEHICLES; MONITORING OPERATING VARIABLES OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRIC SAFETY DEVICES FOR ELECTRICALLY-PROPELLED VEHICLES
- B60L3/00—Electric devices on electrically-propelled vehicles for safety purposes; Monitoring operating variables, e.g. speed, deceleration or energy consumption
- B60L3/10—Indicating wheel slip ; Correction of wheel slip
- B60L3/106—Indicating wheel slip ; Correction of wheel slip for maintaining or recovering the adhesion of the drive wheels
- B60L3/108—Indicating wheel slip ; Correction of wheel slip for maintaining or recovering the adhesion of the drive wheels whilst braking, i.e. ABS
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02D—CONTROLLING COMBUSTION ENGINES
- F02D41/00—Electrical control of supply of combustible mixture or its constituents
- F02D41/24—Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
- F02D41/2406—Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using essentially read only memories
- F02D41/2409—Addressing techniques specially adapted therefor
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02D—CONTROLLING COMBUSTION ENGINES
- F02D41/00—Electrical control of supply of combustible mixture or its constituents
- F02D41/24—Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
- F02D41/26—Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- 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/3476—Data logging
-
- 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/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- 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
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Mechanical Engineering (AREA)
- Chemical & Material Sciences (AREA)
- Combustion & Propulsion (AREA)
- Sustainable Energy (AREA)
- Power Engineering (AREA)
- Transportation (AREA)
- Sustainable Development (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Life Sciences & Earth Sciences (AREA)
- Debugging And Monitoring (AREA)
- Computing Systems (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Mathematical Physics (AREA)
Abstract
本公开的实施例涉及可编程电子设备及其操作方法。一种实施例方法包括从程序的指令的定位选择存储器区,指令各自占据一个或多个存储器位置,并且对于每个存储器位置,区包括相同数目的位,优选地等于一个或两个。
Description
相关申请的交叉引用
本申请要求2019年09月16日提交的法国申请号1910189的权益,该申请通过引用并入于此。
技术领域
本公开总体上涉及可编程电子设备,并且涉及用于执行程序的指令的方法。
背景技术
程序由指令的序列组成。指令例如被存储在存储器中,存储器被耦合到诸如微处理器的顺序数据处理单元。在执行程序时,指令可以被执行多次(例如,在程序包括循环时)。其他指令可以不被执行(例如在分支指令之后);也就是说,指令可以指示在分支指令之后待执行的程序的一部分。
发明内容
在程序的实施期间,需要知道程序的哪些指令被执行以及哪些指令未被执行。
一个实施例解决了通常的可编程电子设备和用于执行程序的指令的通常方法的缺点中的全部或一些缺点。
一个实施例使得可以减小信息存储存储器的大小,从而使得可以确定在程序的实施期间哪些指令已经被执行。
一个实施例提供了一种方法,该方法包括以下步骤:从程序的指令的定位选择存储器区,指令各自占据一个或多个存储器位置,并且对于每个存储器位置,该区包括相同数目的位,优选等于一个或两个。
根据一个实施例,方法包括:执行指令的至少一部分,并且对于每个执行的指令,将值存储在区中的、从执行的指令的定位选择的一个区中。
根据一个实施例,区中的每个区包括至少一个第一位和至少一个第二位,如果执行的指令具有对“真”值的谓词(predicate),则位在第一位的位置中包括值一;如果执行的指令具有对“假”值的谓词,则位在第二位的位置中包括值一;或者如果执行的指令不是具有谓词的指令,则位在第一位和第二位的位置中包括值一。
根据一个实施例,存储与执行并行地被完成。
根据一个实施例,对于同时执行的指令,存储同时被完成。
根据一个实施例,方法包括:在执行之后,用于验证在区中的每个区中存在值和/或检测在区中的一个区中不存在值的步骤。
根据一个实施例,存储包括:在包括区中的至少一个区的存储器字位置中写入字,该字在区中的至少一个区的外部具有存储器字位置在写入之前的内容。
根据一个实施例,区位于至少两个不同的存储体中。
根据一个实施例,存储器字位置具有位于两个存储体中的一个存储体中的最低有效位,并且具有位于两个存储体中另一存储体中的最高有效位。
另一个实施例提供一种设备,该设备被配置成实施如上文定义的方法。
另一个实施例提供了一种集成电路,其包括如上文定义的设备。
根据一个实施例,电路包括区,并且被配置成执行指令。
根据一个实施例,电路被配置成耦合到电路外部的存储器,并且将区的内容传送到外部存储器。
另一个实施例提供了一种设备,其包括如上文定义的电路的外部存储器,该设备被配置成接收区的内容,并且将区的内容写入在外部存储器中。
根据一个实施例,设备被配置成:验证在区中的每个区的内容中存在值和/或检测在内容中的一个内容中不存在值。
附图说明
在以下通过说明而非限制的方式给出的对特定实施例的描述中,将参考附图对上述特征和优点以及其他特征和优点进行详细描述,其中:
图1示意性地并且以框图的形式示出了包括可编程设备的系统的一个实施例;
图2通过两个存储器的局部和示意图示出了在程序的指令的执行期间实施的方法的一个实施例;
图3示意性地并且以框图的形式示出了可编程设备的一个实施例;
图4示意性地并且以框图的形式示出了包括可编程设备的系统的另一实施例;
图5通过两个存储器的局部和示意图示出了图2的方法的另一实施例;以及
图6通过两个存储器的局部和示意图示出了图2的方法的另一实施例。
具体实施方式
在各个附图中,相似的特征已经由相似的附图标记指定。特别地,在各个实施例之间共有的结构和/或功能特征可以具有相同的附图标记并且可以布置相同的结构、尺寸和材料特性。
为了清楚起见,仅图示和详细描述了对理解本文描述实施例有用的操作和元件。特别地,没有详细公开诸如数据处理单元的可编程设备的单元,所公开的实施例与这种通常的单元兼容。
除非另有指示,否则当提及连接在一起的两个元件时,这表示没有导体以外的任何中间元件的直接连接;并且当提及耦合在一起的两个元件时,这表示这两个元件可以连接或者它们可以经由一个或多个其他元件耦合。
在以下公开中,除非另有指示,否则当提及绝对位置修饰词(诸如术语“前”、“后”、“上”、“上”、“左”、“右”等)或相对位置修饰词(诸如,术语“上方”、“下方”、“上部”、“下部”等)时,或者当提及定向的修饰词(诸如,“水平”、“竖直”等)时,指的是图中所示的定向。
除非另有指定,否则表述“约”、“近似”、“基本”和“大约”表示在10%以内,优选在5%以内。
图1示意性地并且以框图的形式示出了包括可编程设备110的系统100的一个实施例。设备110可以包括现场可编程门阵列(FPGA)类型的电路或ASIC类型(专用集成电路)的门,或由其构成。
可编程设备110例如被用在汽车应用中。继而,可编程设备110可以被包括在诸如防抱死制动系统的组件或机动交通工具的驱动组件中。可编程设备还可以被用在诸如数据采集和查看检测到的数据的应用中,或被用在例如激光测距应用中。
可编程设备110包括程序执行电路112。电路112优选是集成电路。在一个变型中,电路112包括多个不同的集成电路。集成电路由包含一个或多个芯片(“裸片”)的封装限定。芯片或微芯片是指半导体晶片部分以及位于晶片中和晶片上的电子电路。封装包括从封装中出来的连接器表面或导电引脚。该表面或引脚被配置成电耦合到其他电路,其优选地被焊接在印刷电路板(PCB)上。优选地,电路112包括单个芯片。
电路112包括数据处理单元(PU)114。电路112通过具有连接的链路118耦合(优选地,连接)到设备110的存储器116(PROG)。存储器116包含程序的指令。根据图示的示例,存储器116在电路112的外部。“外部”意指通过分离地提供存储器116和电路112来制造设备110,电路112被配置成耦合(优选地,连接)到存储器116。根据一个优选示例,存储器116在电路112的内部存储器中,也就是说,存储器116被包括在集成电路的封装中,并且优选地与电路112在相同的芯片上。例如,存储器116是被称为紧密耦合存储器(TCM)的类型。在一个优选示例中,程序存储器116包含64位字,并且链路118是并行的64位链路。存储器的字是指二进制值,该字的位在存储器中的读取或写入模式中同时可访问。
优选地,电路112通过具有连接的链路122耦合(优选地,连接)到设备110的存储器120(DATA)。存储器120可以在电路112外部,或者优选地在电路112内部。存储器120可以是TCM类型的。优选地,存储器116和120是两个分离的存储体,优选地为TCM类型。链路118和122则优选地分离。存储器116和120还可以是相同存储体的一部分,并且链路118和122则是相同链路。在一个优选示例中,数据存储器120包含32位字,并且链路122是并行的32位链路。
电路112还包括单元130(TRACE GEN),单元130被配置成生成程序的踪迹(trace)。程序的踪迹是指信息集,该信息集使得可以在尚未被执行的指令和已经被程序执行的指令之间进行区分。在程序的执行期间生成程序的踪迹。然后,该踪迹使得可以在尚未被执行的指令和已经被程序执行的指令之间进行区分。
系统100还包括耦合(优选地,连接)到设备110的设备150。设备150使得可以在设备110被用在应用中之前测试设备110的操作。设备150可以是可编程设备110的测试平台或开发平台。作为示例,设备150还使得可以对可编程设备110进行编程。根据一个实施例,设备150包括存储器152(TRACE MEM),存储器152被配置成接收该踪迹。然后,存储器152在电路112外部。设备150还可以包括耦合(优选地,连接)到存储器152的电路153(TEST)。电路153优选地包括用于执行软件(即,另一个程序)以测试存储器116中包含的程序的单元。这种单元可以包括微处理器。在一个变型中,电路153使得可以例如通过通信网络将存储器152的内容传送到被配置成实施测试软件的另一电路(未示出)。
设备110和/或设备150还可以包括调试器单元(未示出),调试器单元通常被配置成允许逐步执行程序和/或生成关于程序的变量值的信息和/或在程序中建立停止点。
在操作期间,优选地利用程序使用的不同数据值来实施该程序一次或多次。程序的指令由单元114执行。由单元130在程序的(多个)实施期间生成踪迹。所获得的踪迹被存储在存储器152中。根据在存储器152中存储的踪迹,电路153例如通过实施测试软件,确定在程序的实施期间,指令中的一些指令是否尚未被执行,并且可选地,(如果适用),确定这些是什么指令。
图2通过图1的设备的程序116(PROG)和踪迹存储152(TRACE MEM)存储器的局部和示意图,示出了在程序的指令的执行期间实施的方法的一个实施例。特别地,该执行由电路112实施。更具体地,该程序被执行一次或多次,并且电路130以关于图1描述的方式生成踪迹。
存储器116包括程序的连续指令I。作为说明,示出了四个指令I(I1、I2、I3和I4),但是所描述的实施例适用于程序的任何数目的指令。
单元114通常包括程序计数器PC,也被称为指令指针或序数计数器。程序计数器PC在这里指定寄存器,该寄存器包含正在执行的指令的开头的存储器地址。然而,在一个变型中,该寄存器可以包含在正在被执行的指令之后待被执行的指令的开头的存储器地址。在所示的示例中,程序计数器PC包含指令I2的开头的存储器地址。
从指令I的定位选择存储器区154(154-1、154-2、154-3、154-4),其各自由存储器152的一个或多个位组成。指令的定位指代与存储器116中的指令的值具有相同顺序的值。因此,根据存储器中指令的定位确定存储器区154。因此,已经将区154中的一个区与程序的每个指令I相关联。分离的指令对应于分离且不连贯的区154。优选地,如所示的,将区154以与存储器116中的指令I相同的顺序放置在存储器152中。这不是限制性的,区154能够以不同的顺序被放置。
每个指令的定位可以由指令的开头的存储器地址定义。在程序的执行期间,然后可以根据执行的指令的开头的存储器地址来选择每个存储器区154。换句话说,可以从程序计数器PC确定与执行的指令相关联的区154的开头的存储器地址。
优选地,在程序的(多个)实施使得可以生成踪迹之前,踪迹存储器152填充有第一值,更优选地,填充有相同的第一值,例如低逻辑水平(0)。这不是限制性的,第一值可以是踪迹存储器中最初包含的值。
优选地,对于每个执行的指令,存储与第一值不同的第二值。在具有低逻辑水平的第一值的示例中,第二值优选地具有高逻辑水平(1)。因此,与尚未被执行的指令I相关联的区154(在图示的示例中,与指令I3和I4相关联的区154-3和154-4)包含第一值。与已经被执行的指令I相关联的区154(在图示示例中,与指令I1和I2相关联的区154-1和154-2)包含第二值。特别地,与已经被执行了多次的指令I相关联的区154包含第二值。这不是限制性的,特别地,可以使用与第一值不同的多个第二值以用于指令的各种执行。
优选地,在获得了踪迹之后,对于与程序的至少一部分相关联的区154中的每个区,电路153例如通过执行测试软件,来验证区154是否包含第二值或包含第二值中的一个第二值,或者检测区154是否包含第一值。如果区154中的一个区包含第一值,则意味着相关联的指令尚未被执行。因此,如果适用,电路153检测到未被执行的指令的存在。
可以想到通过记录程序计数器PC的连续定位来获得踪迹。然而,由于指令被重复的事实,因此与通过上文描述的方法获得的踪迹所占据的空间相比,所记录的踪迹在存储器中将占用更多的空间,例如多个千兆字节。
通过比较,在从程序指令的定位选择的存储器区中获得踪迹使得可以限制踪迹的大小。特别地,避免了必须将执行的指令的地址复制到踪迹的存储存储器中。因此,踪迹的大小可以小于例如100千字节,或甚至小于10千字节。更具体地,踪迹的大小仅取决于程序的大小,而不取决于测试的执行持续时间。在一个示例中,踪迹的大小等于程序的大小的八分之一。因此,已经有利地获得了踪迹存储存储器152,其大小显著小于用于通过记录执行的指令的连续定位而获得的踪迹的存储存储器的大小。
优选地,程序被设计,使得程序的指令中的所有指令都被执行。这特别地使得可以防止程序的未被执行的部分能够构成攻击进入或使程序进行未知行为的风险的切入点。例如,这种攻击旨在引起另一个程序的执行,从而允许攻击者控制设备110。为了验证实际上所获得的程序的指令中的所有指令都被执行,通常提供一个或多个验证测试,其中当在(多个)测试期间,利用由程序使用的预先定义的数据执行程序时,需要验证100%的指令被执行。
然后,电路153使得可以验证所获得的程序的指令中的所有指令实际上已经被执行。因此,通过上文描述方法获得的踪迹允许设备成功通过验证测试。
优选地,对于程序的至少一部分,指令I与所选择的区154双射地相关联,也就是说,每个所选择的区154与一个且仅一个指令I相关联。如果检测到与一个或多个未被执行的指令相关联的一个或多个区154,这使得可以从该区或这些区154中标识未被执行的(多个)指令。这使得未被执行的(多个)指令可以被电路153标志。例如,关于未被执行的(多个)指令的信息可以用于修改程序,或修改(多个)测试或定义新测试,使得其指令中的所有指令在修改之后被执行。该信息还可以用于确定由于未被执行的指令导致的攻击或程序的未知行为风险水平。
优选地,区154在存储器152中相邻。因此,与指令相关联的区154对应于存储器152的连续范围或全部。相对于其中区154被空间分离的变型,这使得可以在获得踪迹之后,使范围内包含第一值的区中的所有区与未被执行的指令相对应。因此,相对于分离的区154,对未被执行的指令的检测被促进。
优选地,与指令的执行并行地完成踪迹的存储,也就是说,对于每个执行的指令,区154的选择和第二值在存储器152中的存储在指令的执行期间被完成。有利地,这使得可以获得踪迹而不会减慢程序的执行。
图3示意性地并且以框图的形式示出了可编程设备300的实施例。设备300包括与图1的系统100的元件相同或相似的元件,这些元件被相同或相似地耦合。这里不再描述这些元件,仅突出显示差异。
设备300包括图1的设备110的元件,即存储器116和120以及电路112中包括的单元114和130。可编程设备300与图1的可编程设备110的不同之处在于,集成电路112包括存储器152和电路353(TEST)。电路353代替图1的电路153,并且被配置成实施电路153的功能中的全部或一些功能。
如上所述,存储器152具有减小的大小。这具有促进将存储器152集成到集成电路112中的优点。相对于外部存储器(如图1的外部存储器),电路112内部的这种存储器152使得可以简化数据的写入,特别地,无需设备110(图1)外部的被配置成同步踪迹在存储器152中的写入的时钟。这还使得可以避免丢失踪迹的一部分的风险,例如,在同步问题和/或电路130和存储器152之间的链路的混乱(cluttering)之后。例如,如果该链路包括多个电子设备之间的链路总线,则可能出现这种混乱。这还有利地使得可以减少集成电路112的封装上的引脚数目,因为电路130和存储器152之间的链路(允许多个位的并行传输)此时是集成电路112内部的链路310。
与程序的指令的执行并行的踪迹的存储可以在程序的验证测试外部完成,例如在应用中的可编程设备300的操作期间完成。这具有使得可以监控在应用中实施的程序的操作的优点。存储器152在电路112内部的事实使得可以在应用中实施程序时,简化对程序的踪迹的获取。
图4示意性地并且以框图的形式示出了包括可编程设备410的系统400的另一个实施例。系统400还包括设备450。设备450和410包括图1的系统100的元件,这些元件被相同或相似地耦合。这里不再描述这些元件,仅突出显示差异。
设备450对应于图1的设备150,其中存储器152已经被存储器452(MEM)代替,存储器452被配置成用于接收所获得的踪迹并且存储该踪迹。特别地,对于与程序的至少一部分相关联的存储器152的区154中每个区,设备450的电路153验证与区154相对应的存储器452的区是否包含第二值或包含第二值中的一个值,或者检测存储器452的该区是否包含第一值。
可编程设备410包括图1的设备110的元件,即存储器116和120以及电路112中包括的单元114和130。可编程设备410与图1的可编程设备110的不同之处在于,集成电路112包括存储器152。设备410被配置成在设备410外部耦合到存储器452。设备410被配置成:一旦耦合到存储器452之后并且一旦获得踪迹之后,就将踪迹(即区154的内容(图2))传送到存储器452。
设备450可以具有与图1的设备150相同的功能。此外,由于存储器152在电路112内部,因此具有关于图3提及的优势的益处,即避免了在同步之后丢失踪迹的一部分的风险和/或混乱问题。因此,人们既可以从该优势受益,也可以从测试平台的功能中受益。
在一个变型中,设备450还包括图3的设备300的电路353。
图5通过图1的设备的程序116和踪迹存储152存储器的实施例的局部和示意图,示出了图2的方法的另一个实施例。
存储器116包括连续的存储器位置510。存储器位置是指存储器的分离部分,每个部分具有预先定义数目的位,换句话说,具有预先定义的大小。所有位置优选地具有相同的大小。八个连续的位置510被示出。
优选地,位置510的大小被选择,使得每个指令的大小(也就是说,该指令在存储器116中占据的位的数目)是位置510的大小的倍数。在图示的示例中,指令520占据单个位置510,并且指令522占据两个位置510。指令可以占据大于二的数目的位置510。在图示的示例中,位置的大小是十六位。
位置形成位置的组530,示出了单个组530。连续组530具有相同数目的位置,在图示示例中具有八个位置。每个组530的位置被定位在相应的地址处。在图示示例中,以字节表示的这些地址具有值0x...0、0x...2、0x...4、0x...6、0x...8、0x...A、0x...C和0x...E,其中前缀“0x”意指以下数字采用十六进制表示法,并且“...”意指未详细描述的取决于所考虑的组530的数字。当执行被定位在地址0x...4处的指令时,程序计数器PC被另外示出。
踪迹存储存储器152包括位置540。单个位置540被示出。优选地,位置540是存储器字位置,也就是说,每个位置540具有存储器152的字的大小。在图示的示例中,每个位置540具有十六位的大小。因此,存储器152中的位置540的地址由程序计数器PC的位PC[>3]的值示出,其中秩严格地大于三,从最低有效位从零开始定义位的秩。
存储器152的每个区154至少部分地被包括在位置540中的一个位置中。从占据存储器116的相同组530的指令中选择的区154占据存储器152的相同位置540。更具体地,对于每个指令,与该指令相关联的区154包括针对由该指令所占据的位置510中的每个位置的相同数目N个位。换句话说,对于每个位置,区154包括具有N个位的子部分550。因此,对于每个指令,相关联的区154的大小是数目N乘以该指令所占据的位置的数目的结果。在未示出的一个示例中,数目N等于1。在图示的示例中,数目N等于2。因此,在图示的示例中,区154在位置540中的定位由程序计数器PC的三个最低有效位PC[3:1]定义。
在一个变型中,从不同大小的指令选择的区154具有相同数目的位。然而,相对于这种变型,为每个位置510提供相同数目的N位的区154使得可以简化如何从指令的定位选择区154,如上面使用计数器PC的位的示例中所说明的。
优选地,当执行占据多个位置的指令时,在区154中写入的值在子部分550中的每个子部分中包括相同的位。换句话说,相同的位值被写入在区154的子部分550中。例如,在子部分550具有单个位并且存储器152的内容在程序的执行之前具有nil值的情况下,区154的位中的所有位都被设置为值一。
在一个变型中,仅在区154的子部分550中的一个子部分(例如,所考虑的区154的最低有效子部分)中写入一个值。但是,相对于这种变型,在子部分550中写入相同的位使得可以防止包含nil值的存储器152的部分实际上对应于执行的指令的位置。因此,促进了使用踪迹来检测未被执行的指令。
为了在与执行的指令相关联的区154中写入值,在位置540中写入字,该字在所考虑的区154外部包括在写入之前位置540的内容。因此,在与执行的指令相关联的区154外部,位置540的内容在该写入期间未被修改。这允许在不修改其他区154的内容的情况下,在所考虑的区154中写入值。为此,在位置540的内容在程序的执行之前处于nil值的情况下,存储器152例如被配置成使得仅非隐藏位被写入在位置中的每个位置中。可以使用在待被写入的位外部具有nil位的掩码。然后通过以下操作来完成写入:使用在所考虑的区154外部包含nil位的字,并且将待被写入的字用作掩码。优选地,存储器被配置成使得:仅具有非nil值的位被写入在所考虑的位置540中,而其他位置被保留在nil值。在一个变型中,可以与位置540在写入之前的内容逐位地实施“或”函数。因此,所使用的字也起掩码的作用。然而,相对于这种变型,以上文描述的方式使用存储器允许避免以读取模式访问存储器,并且因此允许更快地将期望值写入在区154中。
根据一个实施例,相同组的多个指令被同时执行。然后,在与这些指令相关联的区154外部,写入包括位置540在写入之前的内容的字。优选地,每个字位置540包括多个区154。这使得可以在与同时执行的指令相关联的区154中的所有区中同时写入。因此,可以容易地在程序执行的同时获得踪迹。
尽管已经利用十六个位示出了字位置540,但是所公开的实施例与位置540的其他大小兼容。然后,根据位置540的大小和数目N定义每个组530的位置510的数目,使得与相同组的指令相关联的区154完全占据单个位置540。特别地,在一个优选实施例中,与图示的示例不同,每个位置540具有32位,并且每个组530具有16个位置。
对于指令中的一些指令(G?I),指令的执行可以取决于谓词的布尔值(也被称为保护)。该指令然后被称为谓词指令(predicated instruction)或保护指令。这种谓词指令例如使得程序的多个部分的执行可以依赖于条件测试结果,而这不会影响程序的多个部分之间的条件跳转。对于程序(I)的其他指令,执行不依赖于谓词。
在包括谓词指令的程序的情况下,优选的是使数目N等于2,如在图示示例中那样。因此,对于每个子部分550,在与执行的指令相关联的区154中写入的值包括第一位和第二位,例如,最低有效位和最高有效位。优选地,如果谓词为“真”值,则第一位被设置为值一,并且如果谓词为“假”值,则第二位被设置为值一。优选地,对于非谓词指令,第一位和第二位都被设置为值一。
优选地,为了在区154中写入该值,在位置540中写入字,该字在被设置为值一的位外部包括位置540在写入之前的内容。为此,优选地,在写入之后的位置的内容是由在写入之前的该位置的内容与掩码之间的逐位“或”函数产生的,该掩码在待被设置为值一的位外部包括处于值零的位。
因为子部分550由两个位组成,所以可以获得踪迹,使得可以在尚未被执行的指令、仅针对其谓词为“真”值已经执行的指令、仅针对其谓词为“假”值已经执行的指令,以及针对其谓词的两个值已经执行的指令之间进行区分。同时,可以从谓词指令的优势受益,诸如程序的某些循环的执行速度的提高以及程序的条件分支的管理的简化。
图6通过图1的设备的程序116和踪迹存储152存储器的实施例的局部和示意图,示出了图2的方法的另一个实施例。图6的实施例重复与图5的实施例的元件相同或相似的元件。这里不再描述这些元件,仅突出显示差异。
存储器152包括两个不同的存储体152H(TRACE MSB)和152L(TRACE LSB)。更优选地,存储体152H和152L分别对应于存储器152的位置540的最高有效位和最低有效位。与图5中类似,已经示出了八位的示例位置540。然而,位置540优选地具有16位。
如在图5的实施例中一样,程序可以包括多个不同大小的指令,例如16位、32位和48位,其占据程序存储器116的多个位置510。此外,可以并行地执行指令。换句话说,程序存储器116的部分610均包括一个或多个位置510,并且在包括多个指令的每个部分610中,这些指令被同时执行。然后,每个部分610与存储器152的希望在其中同时写入值的一个或多个区154相关联。
在多个部分610中间示出的是部分610A,其跨存储器116的位置510的分离的组530(530-1和530-2)定位。与部分610A相关联的(多个)区154在存储器152的部分620中,部分620跨分离的位置540(540-1和540-2)定位。
位于位置540-1中的部分620的位被定位在存储体152H中,并且位于位置540-2中的部分620的位被定位在存储体152L中。因为这些存储体是分离的,所以可以同时将值写入在分离的位置540-1和540-2中,该值与正被执行的部分610A相关联的区154对应。
相对于图5的实施例,在分离的位置540-1和540-2中同时执行存储使得可以避免在执行部分610A的指令时顺序地执行两个存储操作。因此,有利地,可以使用不如存储器152那么快的存储器和/或不必需提供:程序不包含跨位置510的两个组530的部分610A。
尽管已经描述了包括两个存储体的实施例,但是该实施例与更大数目的存储体兼容,每个存储体在位置540的位之间包括不同的有效位。
已经描述了各种实施例和备选实施例。本领域技术人员将理解,可以组合这些实施例的某些特征,并且本领域技术人员将容易想到其他变型。
最后,基于上文提供的功能描述,本文描述的实施例和备选实施例的实际实施方式在本领域技术人员的能力之内。
Claims (20)
1.一种方法,包括:
从程序的指令的相应定位选择存储器区,
所述指令各自占据一个或多个存储器位置,并且
对于每个存储器位置,所述存储器区包括相同数目的位。
2.根据权利要求1所述的方法,还包括:
至少执行所述指令的子集;以及
对于每个执行的指令,将值存储在所述存储器区中的、从所述执行的指令的所述相应定位选择的一个存储器区中。
3.根据权利要求2所述的方法,其中所述存储器区中的每个存储器区包括至少一个第一位和至少一个第二位,所述至少一个第一位和所述至少一个第二位包括:
基于所述执行的指令具有对“真”值的谓词,在所述第一位的位置中存储1作为所述值;
基于所述执行的指令具有对“假”值的谓词,在所述第二位的位置中存储1作为所述值;或
基于所述执行的指令不具有谓词,在所述第一位和所述第二位的所述位置中存储1作为所述值。
4.根据权利要求3所述的方法,其中所述存储与所述执行并行地被执行。
5.根据权利要求3所述的方法,其中对于同时执行的指令,所述存储被同时执行。
6.根据权利要求2所述的方法,还包括:在所述执行之后,验证在所述存储器区中的每个存储器区中所述值的存在,或者检测在所述存储器区中的一个存储器区中所述值的不存在。
7.根据权利要求2所述的方法,其中所述存储包括:在包括所述存储器区中的至少一个存储器区的存储器字位置中写入字,所述字在所述存储器区中的所述至少一个存储器区外部具有所述存储器字位置在所述写入之前的内容。
8.根据权利要求7所述的方法,其中所述存储器区位于至少两个不同的存储体中,并且所述存储器字位置具有位于所述两个不同的存储体中的一个存储体中的最低有效位,并且具有位于所述两个不同的存储体中的另一存储体中的最高有效位。
9.根据权利要求1所述的方法,其中所述存储器区位于至少两个不同的存储体中。
10.一种集成电路,包括:
设备,被配置成从程序的指令的相应定位选择存储器区,
其中所述指令各自占据一个或多个存储器位置,并且
其中对于每个存储器位置,所述存储器区包括相同数目的位。
11.根据权利要求10所述的集成电路,还包括所述存储器区,其中所述集成电路被配置成执行所述指令。
12.根据权利要求11所述的集成电路,其中所述集成电路被配置成:
耦合到外部存储器,所述外部存储器被设置在所述集成电路外部;以及
将所述存储器区的内容传送到所述外部存储器。
13.根据权利要求11所述的集成电路,其中所述设备被配置成:对于每个执行的指令,将值存储在所述存储器区中的、从所述执行的指令的所述相应定位选择的一个存储器区中。
14.根据权利要求13所述的集成电路,其中所述存储器区中的每个存储器区包括至少一个第一位和至少一个第二位,所述至少一个第一位和至少一个第二位包括:
基于所述执行的指令具有对“真”值的谓词,在所述第一位的位置中存储1作为所述值;
基于所述执行的指令具有对“假”值的谓词,在所述第二位的位置中存储1作为所述值;或
基于所述执行的指令不具有谓词,在所述第一位和所述第二位的所述位置中存储1作为所述值。
15.根据权利要求14所述的集成电路,其中所述存储与所述执行并行地被执行。
16.根据权利要求14所述的集成电路,其中对于同时执行的指令,所述存储被同时执行。
17.一种设备,包括:
集成电路,包括存储器区,其中所述集成电路被配置成:
从程序的指令的相应定位选择所述存储器区,所述指令各自占据一个或多个存储器位置,其中对于每个存储器位置,所述存储器区包括相同数目的位,并且其中所述集成电路被配置成执行所述指令;以及
将所述存储器区的内容传送到外部存储器,所述外部存储器被耦合到所述集成电路;以及
所述外部存储器,被配置成:
接收所述存储器区的所述内容;以及
在所述外部存储器中写入所述存储器区的所述内容。
18.根据权利要求17所述的设备,其中所述集成电路被配置成对于每个执行的指令,将值存储在所述存储器区中的、从所述执行的指令的所述相应定位选择的一个存储器区中。
19.根据权利要求18所述的设备,其中所述存储器区中的每个存储器区包括至少一个第一位和至少一个第二位,所述至少一个第一位和所述至少一个第二位包括:
基于所述执行的指令具有对“真”值的谓词,在所述第一位的位置中存储1作为所述值;
基于所述执行的指令具有对“假”值的谓词,在所述第二位的位置中存储1作为所述值;或
基于所述执行的指令不具有谓词,在所述第一位和所述第二位的所述位置中存储1作为所述值。
20.根据权利要求19所述的设备,其中所述设备被配置成:验证在所述存储器区中的每个存储器区的所述内容中所述值的存在,和/或检测在所述存储器区中的一个存储器区中所述值的不存在。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1910189A FR3100907B1 (fr) | 2019-09-16 | 2019-09-16 | Test de programme |
FR1910189 | 2019-09-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112506586A true CN112506586A (zh) | 2021-03-16 |
Family
ID=69104654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010974765.0A Pending CN112506586A (zh) | 2019-09-16 | 2020-09-16 | 可编程电子设备及其操作方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210081206A1 (zh) |
EP (1) | EP3792771A1 (zh) |
CN (1) | CN112506586A (zh) |
FR (1) | FR3100907B1 (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030135719A1 (en) * | 2002-01-14 | 2003-07-17 | International Business Machines Corporation | Method and system using hardware assistance for tracing instruction disposition information |
US20080010555A1 (en) * | 2006-06-16 | 2008-01-10 | Phillip Emma | Method and Apparatus for Measuring the Cost of a Pipeline Event and for Displaying Images Which Permit the Visualization orf Said Cost |
CN101965554A (zh) * | 2008-03-11 | 2011-02-02 | 高通股份有限公司 | 选择性地提交已执行指令的结果的系统和方法 |
US20130246770A1 (en) * | 2012-03-16 | 2013-09-19 | International Business Machines Corporation | Controlling operation of a run-time instrumentation facility from a lesser-privileged state |
CN103777924A (zh) * | 2012-10-23 | 2014-05-07 | 亚德诺半导体技术公司 | 用于简化寄存器中对单指令多数据编程的处理器体系结构和方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03185530A (ja) * | 1989-12-14 | 1991-08-13 | Mitsubishi Electric Corp | データ処理装置 |
US5918035A (en) * | 1995-05-15 | 1999-06-29 | Imec Vzw | Method for processor modeling in code generation and instruction set simulation |
JP2003076578A (ja) * | 2001-09-03 | 2003-03-14 | Mitsubishi Electric Corp | マイクロコンピュータ及びデバッグシステム並びにトレース情報収集方法 |
US9588766B2 (en) * | 2012-09-28 | 2017-03-07 | Intel Corporation | Accelerated interlane vector reduction instructions |
-
2019
- 2019-09-16 FR FR1910189A patent/FR3100907B1/fr active Active
-
2020
- 2020-09-15 EP EP20196222.2A patent/EP3792771A1/fr active Pending
- 2020-09-15 US US17/021,819 patent/US20210081206A1/en active Pending
- 2020-09-16 CN CN202010974765.0A patent/CN112506586A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030135719A1 (en) * | 2002-01-14 | 2003-07-17 | International Business Machines Corporation | Method and system using hardware assistance for tracing instruction disposition information |
US20080010555A1 (en) * | 2006-06-16 | 2008-01-10 | Phillip Emma | Method and Apparatus for Measuring the Cost of a Pipeline Event and for Displaying Images Which Permit the Visualization orf Said Cost |
CN101965554A (zh) * | 2008-03-11 | 2011-02-02 | 高通股份有限公司 | 选择性地提交已执行指令的结果的系统和方法 |
US20130246770A1 (en) * | 2012-03-16 | 2013-09-19 | International Business Machines Corporation | Controlling operation of a run-time instrumentation facility from a lesser-privileged state |
CN103777924A (zh) * | 2012-10-23 | 2014-05-07 | 亚德诺半导体技术公司 | 用于简化寄存器中对单指令多数据编程的处理器体系结构和方法 |
Also Published As
Publication number | Publication date |
---|---|
FR3100907A1 (fr) | 2021-03-19 |
EP3792771A1 (fr) | 2021-03-17 |
US20210081206A1 (en) | 2021-03-18 |
FR3100907B1 (fr) | 2022-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060095975A1 (en) | Semiconductor device | |
US7949909B2 (en) | Address controlling in the MBIST chain architecture | |
US7366042B2 (en) | Defective column(s) in a memory device/card is/are skipped while serial data programming is performed | |
US20100195411A1 (en) | Semiconductor memory device and fail bit detection method in semiconductor memory device | |
KR100407548B1 (ko) | 트레이스 제어 회로 | |
US6526511B1 (en) | Apparatus and method for modifying microprocessor system at random and maintaining equivalent functionality in spite of modification, and the same microprocessor system | |
US20140089548A1 (en) | Systems, Methods, and Articles of Manufacture To Stream Data | |
US20080077733A1 (en) | Data transfer apparatus | |
US6704850B1 (en) | Method and apparatus for determining the width of a memory subsystem | |
US11055237B2 (en) | Method of access to a memory | |
CN112506586A (zh) | 可编程电子设备及其操作方法 | |
US20050086456A1 (en) | Addressing scheme to load configuration registers | |
US7720669B2 (en) | Method, system and computer program product for register management in a simulation environment | |
US11360713B2 (en) | Semiconductor device and debug system | |
CN103871476B (zh) | 嵌入式存储器测试系统 | |
KR20000076351A (ko) | 집적 회로 및 상기 회로의 테스트 방법 | |
US7472369B1 (en) | Embedding identification information on programmable devices | |
US6367066B1 (en) | System for synthesizing a circuit by re-writing signed variables into unsigned variables and sharing resources for identical operations having different timing | |
JP6143646B2 (ja) | 半導体装置 | |
US20210192089A1 (en) | Security measures for signal paths with tree structures | |
US20200026662A1 (en) | Direct memory access | |
JP4637707B2 (ja) | 回路設計方法、回路設計システム、及びその回路設計方法での処理をコンピュータに行わせるためのプログラム | |
CN116541897B (zh) | 基于离散分布式芯片唯一序列号的flash加密方法和装置 | |
US7340586B2 (en) | Data transfer for debugging in data driven type processor processing data packet with data flow program including transfer control bit setting instruction | |
JPH04148258A (ja) | バス線試験方法および該方法を実施する装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |