CN104002685A - 共享存储结构 - Google Patents
共享存储结构 Download PDFInfo
- Publication number
- CN104002685A CN104002685A CN201410252271.6A CN201410252271A CN104002685A CN 104002685 A CN104002685 A CN 104002685A CN 201410252271 A CN201410252271 A CN 201410252271A CN 104002685 A CN104002685 A CN 104002685A
- Authority
- CN
- China
- Prior art keywords
- application
- pointer
- code
- function
- sharing function
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/12—Recording operating variables ; Monitoring of operating variables
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01M—PROCESSES OR MEANS, e.g. BATTERIES, FOR THE DIRECT CONVERSION OF CHEMICAL ENERGY INTO ELECTRICAL ENERGY
- H01M10/00—Secondary cells; Manufacture thereof
- H01M10/42—Methods or arrangements for servicing or maintenance of secondary cells or secondary half-cells
- H01M10/48—Accumulators combined with arrangements for measuring, testing or indicating the condition of cells, e.g. the level or density of the electrolyte
-
- 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
- B60L2240/00—Control parameters of input or output; Target parameters
- B60L2240/40—Drive Train control parameters
- B60L2240/54—Drive Train control parameters related to batteries
- B60L2240/545—Temperature
-
- 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
- B60L2240/00—Control parameters of input or output; Target parameters
- B60L2240/40—Drive Train control parameters
- B60L2240/54—Drive Train control parameters related to batteries
- B60L2240/549—Current
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/36—Arrangements for testing, measuring or monitoring the electrical condition of accumulators or electric batteries, e.g. capacity or state of charge [SoC]
- G01R31/382—Arrangements for monitoring battery or accumulator variables, e.g. SoC
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02E—REDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
- Y02E60/00—Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
- Y02E60/10—Energy storage using batteries
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/60—Other road transportation technologies with climate change mitigation effect
- Y02T10/70—Energy storage systems for electromobility, e.g. batteries
Abstract
本发明公开了一种共享存储结构,其支持与执行来自共享存储空间的共享函数相关的操作,使得单独的软件段可执行共享函数。
Description
本申请是申请日为2011年6月8日,申请号为201110156252.X,发明名称为“共享存储结构”的申请的分案申请。
相关申请的交叉引用
本申请涉及于2010年6月9日提交的题为“Method and System ofUpdating Shared Memory Architecture”的同时提交并共同拥有的第12/796,774号美国申请,其公开通过引用被全部并入本文。
技术领域
本发明涉及共享存储结构,其中足以支持共享功能的代码或其它数据被储存到共享存储块。
背景技术
诸如用于支持由中央处理单元(CPU)执行的函数的类型的软件代码通常被编写以执行特定操作。与一段软件相关的代码可能不可与为另一段软件编写的代码一起使用。当存储器承担储存多段软件的代码的任务时,每段软件的代码必须完全储存到存储器。如果两段或更多段软件促进相同或相似函数的执行,则存储空间被分配以储存所述两段或更多段软件的每段的相应代码。就为相同或相似函数存储重复的代码而言,这产生了冗余。
发明内容
本发明提供了一种用于电池监测系统(BMS)的方法,所述BMS具有可操作来测量交通工具电池的电流的应用和可操作来启动由所述应用利用的驱动器的加载器,所述BMS具有用于储存代码的非易失性存储器和易失性存储器,所述方法包括:
将能够由所述应用调用的应用函数的应用代码储存到所述非易失性存储器的应用存储块;
将能够由所述加载器调用的加载器函数的加载器代码储存到所述非易失性存储器的加载器存储块;
将能够由所述加载器和所述应用调用的n个共享函数的共享代码储存到具有所述非易失性存储器的n个位置的共享存储块;
重新编译所述共享代码一次或多次,其中,至少相同的n个共享函数仍然可利用;以及
对于所述n个共享函数的每一个,将n个共享函数指针中的一个储存在所述共享存储块内,其中,在重新编译所述共享代码的每次操作之后,所述共享存储块内的所述n个位置的每一个保持专用于储存所述n个共享函数指针中的同一个。
本发明所提供的方法还可包括重新编译共享存储代码,以便(i)储存所述共享函数的至少一个的所述共享代码所需要的存储量在大小上增加,(ii)所述n个共享函数指针的每个在所述重新编译之后保持在所述n个位置的同一个中。
本发明所提供的方法还可包括在所述重新编译之前和之后,使所述共享存储块内的相同存储量专用于储存所述n个共享函数指针。
本发明所提供的方法还可包括:
当所述加载器是操作的时,将加载器回调函数的加载器指针储存在所述易失性存储器的共享回调函数存储块中,所述加载器指针指向对于所述n个共享函数的每一个将被执行的、n个加载器回调函数的至少一个;以及
当所述应用是操作的时,将应用回调函数的应用指针储存在所述易失性存储器的共享回调函数存储块中,所述应用指针指向对于所述n个共享函数的每一个将被执行的n个应用回调函数的至少一个。
本发明所提供的方法还可包括给所述n个共享函数的每一个分配唯一参考标签,并且给所述共享函数指针、所述加载器指针以及所述应用指针的每个分配被分配给所述共享函数的所述唯一参考标签。
本发明所提供的方法还可包括根据分配给所述加载器指针和所述应用指针的所述唯一标签布置所述加载器指针和所述应用指针在所述共享回调函数存储块内的存储,以便被分配了同一唯一参考标签的所述加载器指针和所述应用指针被储存在所述共享回调函数存储块的同一位置处。
本发明所提供的方法还可包括当将所述应用指针储存到所述共享回调存储块时,改写所述加载器指针的每一个。
本发明还提供了一种存储结构,包括:
非易失性第一应用存储块,其具有能够由第一应用调用的应用函数的第一应用代码;
非易失性第二应用存储块,其具有能够由第二应用调用的应用函数的第二应用代码;
非易失性共享存储块,其具有n个共享函数的共享代码;以及
n个固定存储位置,其在所述共享存储块内专用于储存n个共享函数指针的一个。
本发明所提供的存储结构还可包括储存n个回调指针的易失性存储器,所述n个回调指针的每一个与所述n个共享函数的每一个相关。
在本发明所提供的存储结构中,所述n个回调指针(i)当所述第一应用正在执行时可指向储存在所述第一应用存储块内的回调函数代码,(ii)当所述第二应用正在执行时可指向储存在所述第二应用存储块内的回调函数代码。
在本发明所提供的存储结构中,所述易失性存储器可不同时存储对储存在所述第一应用存储块和所述第二应用存储块内的回调函数代码的指针。
在本发明所提供的存储结构中,所述n个回调指针可被储存在所述易失性存储器的固定位置中,使得对于所述第一应用和所述第二应用的每个应用,所述n个共享函数的每个的所述回调指针被储存在同一位置处。
在本发明所提供的存储结构中,储存在所述共享存储块中的对所述n个共享函数的每个的代码可包括对与每个共享函数相关的所述n个回调指针中的一个的所述固定位置的指针。
在本发明所提供的存储结构中,在所述共享代码的每次编译之后,所述n个固定存储位置可储存所述n个共享函数指针中的同一个,其中,至少相同的n个共享函数仍然是可用的。
在本发明所提供的存储结构中,在编译之后,储存所述n个共享函数的至少一个的所述共享代码所需要的存储量在大小上可增加,并且其中,在所述编译之后,所述n个共享函数指针的每个可保持在所述n个固定存储位置的同一个中。
本发明还提供了一种电池监测系统(BMS)控制器,包括:
非易失性应用存储块,其具有可操作来执行电池监测相关的函数的应用的应用代码;
非易失性加载器存储块,其具有可操作来初始化所述BMS的加载器的加载器代码;
非易失性共享存储块,其具有n个共享函数的共享代码;
n个固定存储位置,其在所述共享存储块内专用于储存n个共享函数指针的一个;以及
易失性存储器,其储存n个回调指针,其中,所述n个回调指针在所述应用正在操作的情况下指向储存在所述应用存储块中的代码,在所述加载器正在操作的情况下指向储存在所述加载器存储块中的代码。
在本发明所提供的BMS控制器中,n个回调指针可被储存在所述易失性存储器的固定位置中,以便在所述加载器和所述应用的每个正在操作时,所述回调指针被储存在同一位置。
在本发明所提供的BMS控制器中,在所述共享代码的每次编译之后,所述n个固定存储位置可储存所述n个共享函数指针中的同一个,其中,至少相同的n个共享函数仍然是可用的。
在本发明所提供的BMS控制器中,在编译之后,储存所述共享函数的至少一个的所述共享代码所需要的存储量在大小上可增加,并且其中,在所述编译之后,所述n个共享函数指针的每个可保持在所述n个固定存储位置的同一个中。
在本发明所提供的BMS控制器中,所述加载器存储块和所述应用存储块的每个可储存n个指针,一个指针与所述共享存储块的所述n个固定存储位置的每一个相关。
附图说明
在所附的权利要求中指出本发明的特征。然而,通过结合附图参考下面的详细描述,本发明的其它特征将变得更加明显并且本发明将被最好地理解,在附图中:
图1示出根据本发明的一个非限制性方面的交通工具控制系统;
图2示出根据本发明的一个非限制性方面的非易失性存储器的存储器映射;
图3-4示出根据本发明的一个非限制性方面的易失性存储器的存储器映射;以及
图5示出根据本发明的一个非限制性方面的共享函数的执行的流程图。
具体实施方式
图1示出根据本发明的一个非限制性方面的交通工具控制系统10。交通工具控制系统10可被包括在交通工具(未示出)内,交通工具具有由一个或多个交通工具子系统控制器12、14、16控制的若干交通工具子系统(未示出),例如但不限于交通工具信息娱乐(infortainment)、安全(被动进入、远程无钥进入等)、照明、供暖和空调以及发动机控制子系统。根据由主控制器20发布的指令使用通过交通工具总线18传送的通信可指导交通工具子系统的操作、更新、交互作用和控制。虽然此交通工具系统10被提出,但是它仅为了示例性目的被提出并且展现本发明可以适用的许多环境的一种。本发明充分设想其对其他非交通工具环境的应用。
所示的基于交通工具的环境代表一种环境,在此环境中可能有必要定期更新存储器24的具有共享存储块26的非易失性存储器22。交通工具环境也代表一种环境,在此环境中可能需要控制器12、14、16与其它控制器12、14、16通过通信总线18和/或无线地操作和/或通信。在示例性图示中,控制器16被标记为电池监测系统(BMS)控制器16。BMS控制器16被配置成与BMS的硬件(未示出)合作来操作,该BMS可操作来例如测量电流、电池温度并执行与交通工具电池有关的任何数量的其它操作。题为“Battery Monitoring System”的第12/486,847号美国专利申请描述了一个这样的BMS,该申请的公开由此通过引用被全部并入。
除了共享存储块26以外,BMS控制器16的存储器24被示为还包括加载器(launcher)存储块28和应用存储块30。应用存储块30储存与应用相关的代码。应用可以操作来执行与BMS相关的各种函数,例如以便于测量电流并向一个或多个其它控制器报告电流(主设备也被认为是控制器)。加载器存储块28储存与加载器相关的代码。加载器可被配置成便于BMS的启动和/或初始化,例如但不限于装入驱动器32和/或以其它方式便于所需要的操作,以便应用执行其期望的操作。
BMS控制器16可包括具有随机存取存储器RAM 36块的易失性存储块34。不同于非易失性存储器22,易失性存储器34在每次BMS控制器16被重置或电力丧失时擦除任何储存的代码。如下所述,易失性存储器34可被装有为特别支持与加载器和应用相关的函数的软件代码。可选地,根据加载器或应用当前是否正在执行,不同的代码集可被写入RAM 36。本发明的一个非限制性方面设想只有来自加载器或应用之一的代码被写入RAM 36或至少被写入专用于支持本发明设想的共享功能的RAM 36的特定位置的布置,其在下文将被更详细描述。
BMS控制器16被示为包括中央处理单元(CPU)38。CPU 38可被配置成根据从存储器22读取的指令执行操作,例如,以便于与加载器和应用相关的操作。CPU 38也可以被配置成便于将代码写入存储器22,例如以支持下文更详细描述的一些操作。CPU 38被示为与用于与BMS的硬件部件交互作用的驱动器32交互作用,包括支持通过交通工具总线18与其它控制器12、14通信所需的硬件部件。
根据储存在共享存储块26中的通信代码可指导和/或执行BMS控制器16和一个或多个其它控制器12、14之间进行的通信。通信代码可以被储存在共享存储块26中,并且当执行通信相关的操作时由加载器和应用使用(可选地,共享存储器26可由在BMS控制器16上操作的其它应用和/或特征使用)。如果支持通信所需要的通信代码量相当大,则共享存储器26的使用可能是有益的。与储存加载器和应用的每个的单独的通信代码集相反,共享通信代码的能力可以减少支持加载器、应用及(如果有的话)其它通信相关元件所需要的通信代码的总量。
图2示出根据本发明的一个非限制性方面的非易失性存储器22的存储器映射50。存储器映射50根据将按照从相应的存储位置读取的数据被执行的函数或操作来指示非易失性存储器22内的数据结构。执行所指示的函数/操作所需要的、在本文也被可互换地称为代码的特定数据段不必以所示的模式聚集或布置。本领域的技术人员将认识到,与存储器24的每个部分相关的编译器可在按其它模式散布或以其它方式组织数据。在这种情况下,编译器将始终监视需要读取的每个存储位置,以便执行每个所指示的函数。
非易失性存储器映射50示出具有至少三个映射的非易失性存储器22,应用存储块30、共享函数存储块26和加载器存储块28各有一个。
应用存储器映射52示出通过读取储存在其中的代码可执行的若干函数,为了示例性目的,这些函数被标为对共享函数1、2、3、4、n、应用专有函数和应用回调函数的调用,共享函数1、2、3、4、n导致对共享存储块26的共享函数的相应一个的调用;应用专有函数涉及由应用执行的各种函数,例如但不限于与确定电流、温度以及与BMS 16的操作相关的其它信息相关的那些函数;以及应用回调函数在错误的情况下或在作为至少一个共享函数的结果将被执行的其他行动的情况下被执行。
加载器存储器映射54示出通过读取储存在其中的代码可执行的若干函数,为了示例性目的,这些函数被标为对共享函数1、2、3、4、n、加载器专有函数和应用回调函数的调用,共享函数1、2、3、4、n导致对共享存储块26的共享函数的相应一个的调用;加载器专有函数涉及由加载器执行的各种函数,例如但不限于与装入驱动器和启用端口相关的那些函数;以及应用回调函数在错误的情况下或在作为至少一个共享函数的结果将被执行的其他行动的情况下被执行。
共享函数存储器映射56示出通过读取储存在其中的代码可执行的若干函数,为了示例性目的,这些函数被标为共享函数1、2、3、4、n和共享函数1、2、3、4、n的指针,共享函数1、2、3、4、n例如是可由应用和加载器的任一个使用以通过交通工具总线传输数据的传输数据函数。使用储存到共享存储块26的代码可便于数量为n的任何数量的共享函数。共享函数标签唯一地识别与此相关的共享函数。由于任何标签可以被使用,为了示例性目的,数值被示为唯一的标签。指针将从加载器和应用接收到的调用引导到对应于所请求的共享函数的共享存储块26的位置。
只要n个共享函数的代码被储存到共享存储块,专用于共享函数指针的共享存储块26的位置在大小和/或位置上就都保持固定。以这种方式,储存在共享存储块26中的代码可被更新或以另外方式使用编译器操作而不影响共享函数指针的储存位置和标记。然而,例如如果共享函数代码的指针位置应改变,则共享函数指针指向的位置可使用编译被更新,如果一个或多个共享函数的大小在编译之后改变,则这可能会发生。
通过固定每个共享函数指针的位置和每个指针指向的共享函数,本发明能够为从加载器和应用接收的调用提供已知位置。加载器和应用只需要对每个共享函数调用编程以指向匹配的共享函数的相应指针,即,加载器和应用不需要知道或始终监视共享函数的相应位置,因为每个共享函数的指针是已知的且保持固定。
本发明的一个非限制性方面设想根据与每个共享函数指针相关的唯一标签布置每个共享函数指针的储存,以便与共享函数指针1相关的代码被布置在与共享函数指针2相关的代码的前面,并且与共享函数指针2相关的代码被布置在与共享函数指针3相关的代码的前面,等等。这种类型的布置可对应于布置相应指针代码的物理储存位置和/或该代码被认为所位于的地址,即,只要相同的地址总是指向指针代码的位置,指针代码就可以储存在任何位置。如果共享函数被添加,则额外的指针可被添加到其它指针后面的物理位置和/或其它指针后面的地址(例如,新地址可从其它指针的最后一个地址增加一)。
图3-4示出根据本发明的一个非限制性方面的易失性存储器54的存储器映射58。存储器映射58根据将按照从相应的存储位置读取的数据被执行的函数或操作来指示易失性存储器34内的数据结构。图3示出当应用正在执行时与RAM 36相关的存储器映射58,以及图4示出当加载器正在执行时或者特别是当被包括作为加载器的一部分的自举引导器应用正在执行时与RAM 36相关的存储器映射58。
由RAM 36中的代码提供的函数由与其相关的唯一标签识别。根据是应用还是自举引导器是操作的,RAM 36的一部分将储存与应用或自举引导器的适当函数相关的代码,例如支持应用和自举引导器的操作所需要的那些函数,例如以储存能够执行测量和其它操作的代码以及不需要被共享的通信函数,执行测量和其它操作的速度比可由储存在非易失性存储器中的相似代码执行的速度大。RAM 36的其它部分将储存共享函数的每个的回调函数的指针,即,共享函数1、2、3、4到n的每个的回调函数的指针。回调函数指针可被识别为自举引导器回调函数指针或应用回调函数指针,并用来指向应用和自举引导器的存储器映射52、54内的特定回调函数,其在错误或由执行相应地被标记的共享函数产生的其它期望行动的情况下被执行。
与储存在共享存储块26中的指针一样,储存在易失性存储块34中的指针可储存在分配给n个共享函数的每个的固定位置中。共享函数每个被配置成指向RAM 36内的同一位置,即,对应于引起回调的共享函数的标识的位置。没有必要识别操作在共享函数代码内的一个或所述自举引导器和应用,因为RAM 36中指针的位置是固定的,并且不同的指针根据是应用还是自举引导器是操作的而被储存在那些固定位置中。
图5示出根据本发明的一个非限制性方面的共享函数的执行的流程图。为了示例性目的,该应用被示为发起共享函数的调用,且意图不是限制本发明的精神和设想。本发明的一个非限制性方面设想从一个或者所述加载器和应用发起调用,以便允许相同代码由多段软件,即,加载器和应用使用。不论共享函数是由应用、加载器还是一些其他软件段调用,共享函数的执行都将以类似于图5中所示的方式执行。
为了示例性目的,主要关于传输数据函数描述了被调用的共享函数。传输数据函数可涉及从主设备20请求许可的应用以通过交通工具总线18传输数据,例如以将与电流测量值相关的数据或由BMS 16计算的其它信息传输到一个或多个交通工具子系统12、14。如果另一关系存在于BMS 16和主设备20之间,例如如果主设备是客户端并且BMS 16是服务器,则在传输数据函数被执行之前,另一交换可在主设备20和BMS 16之间进行,包括BMS 16具有自动传输数据的能力。关于通信相关函数描述了被调用的共享函数,因为本发明的一个非限制性方面设想通过允许两段或更多段软件共享至少一些相同的代码以便于通信相关函数来减小与通信相关函数相关的存储空间。
块62涉及CPU 38根据从应用存储块30读取的代码执行调用以执行传输数据函数(共享函数)。此调用由CPU 38执行,CPU 38读取应用存储器映射52内被识别的应用存储块30的对应于期望的共享函数的部分,为了示例性目的,该部分被选择为对应于共享函数3。块64涉及CPU 38读取被储存为被调用的共享函数的部分的指针,其指向共享存储块26内储存的被调用的共享函数的指针。对应用和加载器的每个的每个共享函数调用包括储存在共享存储块26内的相关指针的指针。因为储存在共享存储块26内的指针是固定的,所以对共享函数的每个调用的指针相似地指向相同的固定位置。
块66涉及CPU 38根据从共享存储块26读取的代码执行共享函数。如果共享函数执行而不需要回调,即,被调用的共享函数完成和/或没有其它回调由函数的完成产生,则共享函数被认为被执行并返回块62。如果回调发生,即,被调用的共享函数未能完全执行或被调用的共享函数的完全执行产生需要回调的事件,则在块68中,CPU 38恢复被分配给来自RAM36的相应共享函数的回调指针。
储存在共享存储器映射56中的共享函数代码包括指向RAM 36内的位置的指针,该位置被分配给由CPU 38在回调的情况下执行的回调函数的指针(一个或多个共享函数可包括一个或多个相同或不同RAM 36位置的指针)。因为储存在RAM 36中的回调指针根据是应用还是自举引导器正在执行而被装入,储存在共享函数存储块26中的共享函数的代码不需要识别与加载器或应用的一个相关的回调函数。在块70中,CPU 38然后根据相应地储存在应用存储块30中的用于相应回调函数的代码来执行由储存在RAM 36中的回调指针指向的回调函数,或者如果加载器正在执行,则从储存在加载器存储块28中的回调代码执行。可选地,一旦回调函数完成,处理就可返回到发起回调函数的共享函数所专用的函数。
如所要求的,本发明的详细实施方式在本文被公开,然而,应当理解,所公开的实施方式只是可以被体现在不同的和可选的形式中的本发明的示例。附图不一定按比例绘制,一些特征可以被放大或被最小化,以示出特定部件的细节。因此,本文所公开的具体结构和细节不应被解释为限制性的,而只是作为对权利要求的代表性基础和/或作为对教导本领域的技术人员不同地采用本发明的代表性基础。各种实现实施方式的特征可以被组合以形成本发明的另外的实施方式。
虽然上面描述了示例性实施方式,但是意图不是这些实施方式描述了本发明的所有可能的形式。相反,在说明书中使用的词汇是描述性的词汇,而非限制性的词汇,并且应当理解,可以进行各种变化而不偏离本发明的精神和范围。此外,各种实现实施方式的特征可以被组合以形成本发明的另外的实施方式。
Claims (8)
1.一种存储结构,包括:
非易失性第一应用存储块,其具有能够由第一应用调用的应用函数的第一应用代码;
非易失性第二应用存储块,其具有能够由第二应用调用的应用函数的第二应用代码;
非易失性共享存储块,其具有n个共享函数的共享代码;以及
n个固定存储位置,其在所述共享存储块内专用于储存n个共享函数指针的一个。
2.如权利要求1所述的存储结构,还包括储存n个回调指针的易失性存储器,所述n个回调指针的每一个与所述n个共享函数的每一个相关。
3.如权利要求2所述的存储结构,其中,所述n个回调指针(i)当所述第一应用正在执行时指向储存在所述第一应用存储块内的回调函数代码,(ii)当所述第二应用正在执行时指向储存在所述第二应用存储块内的回调函数代码。
4.如权利要求3所述的存储结构,其中,所述易失性存储器不同时存储对储存在所述第一应用存储块和所述第二应用存储块内的回调函数代码的指针。
5.如权利要求2所述的存储结构,其中,所述n个回调指针被储存在所述易失性存储器的固定位置中,使得对于所述第一应用和所述第二应用的每个应用,所述n个共享函数的每个的所述回调指针被储存在同一位置处。
6.如权利要求5所述的存储结构,其中,储存在所述共享存储块中的对所述n个共享函数的每个的代码包括对与每个共享函数相关的所述n个回调指针中的一个的所述固定位置的指针。
7.如权利要求1所述的存储结构,其中,在所述共享代码的每次编译之后,所述n个固定存储位置储存所述n个共享函数指针中的同一个,其中,至少相同的n个共享函数仍然是可用的。
8.如权利要求1所述的存储结构,其中,在编译之后,储存所述n个共享函数的至少一个的所述共享代码所需要的存储量在大小上增加,并且其中,在所述编译之后,所述n个共享函数指针的每个保持在所述n个固定存储位置的同一个中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/796,833 US8495601B2 (en) | 2010-06-09 | 2010-06-09 | Shared memory architecture |
US12/796,833 | 2010-06-09 | ||
CN201110156252.XA CN102331972B (zh) | 2010-06-09 | 2011-06-08 | 共享存储结构 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110156252.XA Division CN102331972B (zh) | 2010-06-09 | 2011-06-08 | 共享存储结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104002685A true CN104002685A (zh) | 2014-08-27 |
CN104002685B CN104002685B (zh) | 2017-04-12 |
Family
ID=45020165
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410252271.6A Expired - Fee Related CN104002685B (zh) | 2010-06-09 | 2011-06-08 | 共享存储结构 |
CN201110156252.XA Expired - Fee Related CN102331972B (zh) | 2010-06-09 | 2011-06-08 | 共享存储结构 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110156252.XA Expired - Fee Related CN102331972B (zh) | 2010-06-09 | 2011-06-08 | 共享存储结构 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8495601B2 (zh) |
CN (2) | CN104002685B (zh) |
DE (1) | DE102011007714B4 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170010896A1 (en) * | 2015-07-06 | 2017-01-12 | Lear Corporation | Shared Memory Architecture Autoupdater |
US10561461B2 (en) | 2017-12-17 | 2020-02-18 | Axon Therapies, Inc. | Methods and devices for endovascular ablation of a splanchnic nerve |
JP6950634B2 (ja) * | 2018-07-03 | 2021-10-13 | オムロン株式会社 | 制御装置および制御方法 |
KR102324263B1 (ko) * | 2018-09-12 | 2021-11-08 | 주식회사 엘지에너지솔루션 | 비휘발성 메모리 업데이트 장치 및 방법 |
CN110837048A (zh) * | 2019-10-30 | 2020-02-25 | 深圳市新威尔电子有限公司 | 基于虚拟机的电池检测系统及其工作方法 |
US11070621B1 (en) * | 2020-07-21 | 2021-07-20 | Cisco Technology, Inc. | Reuse of execution environments while guaranteeing isolation in serverless computing |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001116527A (ja) * | 1999-10-20 | 2001-04-27 | Matsushita Electric Ind Co Ltd | 立体物検出方法及び装置 |
CN1489120A (zh) * | 2002-07-19 | 2004-04-14 | 住友电气工业株式会社 | 图像处理设备,图像处理方法和车辆监控系统 |
US20070083813A1 (en) * | 2005-10-11 | 2007-04-12 | Knoa Software, Inc | Generic, multi-instance method and GUI detection system for tracking and monitoring computer applications |
US20090140698A1 (en) * | 2007-06-15 | 2009-06-04 | Tesla Motors, Inc. | Multi-mode charging system for an electric vehicle |
Family Cites Families (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5297284A (en) * | 1991-04-09 | 1994-03-22 | Microsoft Corporation | Method and system for implementing virtual functions and virtual base classes and setting a this pointer for an object-oriented programming language |
EP0573190B1 (en) * | 1992-06-03 | 2001-09-05 | Sun Microsystems, Inc. | Dynamically configurable kernel |
JPH10320203A (ja) | 1997-05-22 | 1998-12-04 | Meidensha Corp | 共有メモリシステム |
US6023704A (en) * | 1998-01-29 | 2000-02-08 | International Business Machines Corporation | Apparatus and method for swapping identities of two objects to reference the object information of the other |
AU1843300A (en) * | 1998-12-11 | 2000-06-26 | Microsoft Corporation | Accelerating a distributed component architecture over a network using a modified rpc communication |
AU6915400A (en) * | 1999-08-16 | 2001-03-19 | Z-Force Corporation | System of reusable software parts and methods of use |
US6407949B1 (en) | 1999-12-17 | 2002-06-18 | Qualcomm, Incorporated | Mobile communication device having integrated embedded flash and SRAM memory |
US6636963B1 (en) | 1999-12-30 | 2003-10-21 | Cardiac Pacemakers, Inc. | Quick starting for microprocessor-based system by retrieving a target state memory image and a target state data structure from an image storage medium |
US20020013822A1 (en) | 2000-07-26 | 2002-01-31 | West Karlon K. | Shared as needed programming model |
US6829769B2 (en) | 2000-10-04 | 2004-12-07 | Microsoft Corporation | High performance interprocess communication |
FR2820221B1 (fr) | 2001-02-01 | 2004-08-20 | Cimai Technology | Procede et systeme pour gerer des executables a bibliotheques partagees |
US7093244B2 (en) | 2001-04-18 | 2006-08-15 | Domosys Corporation | Method of remotely upgrading firmware in field-deployed devices |
US20030014555A1 (en) * | 2001-06-29 | 2003-01-16 | Michal Cierniak | System and method for efficient dispatch of interface calls |
JP4162401B2 (ja) | 2001-12-18 | 2008-10-08 | 富士通株式会社 | 携帯端末装置および間欠受信方法 |
US20040034861A1 (en) | 2002-08-19 | 2004-02-19 | Ballai Philip N. | System and method for automating firmware maintenance |
US7353521B1 (en) * | 2002-10-19 | 2008-04-01 | Borland Software Corporation | Object oriented distributed software system with methodology for piggybacked reflective callbacks |
CN1504891A (zh) * | 2002-11-29 | 2004-06-16 | 笙泉科技股份有限公司 | 扩充性储存装置 |
US7496906B2 (en) * | 2004-03-31 | 2009-02-24 | International Business Machines Corporation | Evaluation of a code segment |
US7185191B2 (en) | 2004-05-05 | 2007-02-27 | International Business Machines Corporation | Updatable firmware having boot and/or communication redundancy |
JP2008503011A (ja) * | 2004-06-08 | 2008-01-31 | ダートデバイセズ コーポレーション | ユニバーサルデバイスインタオペラビリティプラットフォームのためのデバイスチームリクルートメントおよびコンテンツレンディションのアーキテクチャ装置および方法 |
US7249235B2 (en) | 2004-06-21 | 2007-07-24 | Oracle International Corporation | Architecture for a scalable and user-extensible heap dump analysis tool |
US7565279B2 (en) * | 2005-03-07 | 2009-07-21 | Nvidia Corporation | Callbacks in asynchronous or parallel execution of a physics simulation |
US20060242635A1 (en) * | 2005-04-21 | 2006-10-26 | Scott Broussard | Method and system for optimizing array sizes in a JAVA virtual machine |
US7493460B2 (en) | 2005-09-07 | 2009-02-17 | Intel Corporation | Preboot memory of a computer system |
US7395263B2 (en) | 2005-10-12 | 2008-07-01 | International Business Machines Corporation | Realtime-safe read copy update with lock-free readers |
EP1966701A2 (en) * | 2005-12-21 | 2008-09-10 | Nxp B.V. | Memory with block-erasable locations |
US7954094B2 (en) * | 2006-03-27 | 2011-05-31 | International Business Machines Corporation | Method for improving performance of executable code |
US8146066B2 (en) * | 2006-06-20 | 2012-03-27 | Google Inc. | Systems and methods for caching compute kernels for an application running on a parallel-processing computer system |
US20100033571A1 (en) | 2006-09-28 | 2010-02-11 | Pioneer Corporation | Traffic information detector, traffic information detecting method, traffic information detecting program, and recording medium |
US7913236B2 (en) * | 2006-09-29 | 2011-03-22 | Intel Corporation | Method and apparatus for performing dynamic optimization for software transactional memory |
US8037460B2 (en) * | 2007-01-26 | 2011-10-11 | Oracle International Corporation | Code persistence and dependency management for dynamic compilation in a database management system |
US7769505B2 (en) * | 2007-05-03 | 2010-08-03 | Gm Global Technology Operations, Inc. | Method of operating a plug-in hybrid electric vehicle |
GB2491304B (en) * | 2007-07-17 | 2013-01-09 | Midtronics Inc | Battery tester and electric vehicle |
DE102007044405A1 (de) | 2007-09-18 | 2009-03-19 | Continental Automotive Gmbh | Verfahren zum Erzeugen von ablauffähigen Programmcodes |
US8140204B2 (en) * | 2007-12-10 | 2012-03-20 | Ford Global Technologies, Llc | Charge depleting energy management strategy for plug-in hybrid electric vehicles |
GB0808575D0 (en) * | 2008-05-12 | 2008-06-18 | Xmos Ltd | Compilign and linking |
US8321850B2 (en) * | 2008-06-06 | 2012-11-27 | Vmware, Inc. | Sharing and persisting code caches |
US8305034B2 (en) | 2008-07-23 | 2012-11-06 | Lear Corporation | Battery monitoring system |
DE102009034409B4 (de) | 2008-07-23 | 2020-10-15 | Lear Corp. | Batterieüberwachungssystem |
US8364857B2 (en) * | 2009-08-31 | 2013-01-29 | Qualcomm Incorporated | Wireless modem with CPU and auxiliary processor that shifts control between processors when in low power state while maintaining communication link to wireless network |
US8689234B2 (en) * | 2009-11-25 | 2014-04-01 | Red Hat, Inc. | Providing real-time widgets in a web application framework |
US8190320B2 (en) * | 2010-08-10 | 2012-05-29 | Tesla Motors, Inc. | Efficient dual source battery pack system for an electric vehicle |
US8892850B2 (en) * | 2011-01-17 | 2014-11-18 | International Business Machines Corporation | Endpoint-based parallel data processing with non-blocking collective instructions in a parallel active messaging interface of a parallel computer |
US8583305B2 (en) * | 2011-03-31 | 2013-11-12 | GM Global Technology Operations LLC | System and method for detecting vehicle wake-up failure |
US8615771B2 (en) * | 2011-06-20 | 2013-12-24 | International Business Machines Corporation | Effective management of blocked-tasks in preemptible read-copy update |
US8732674B1 (en) * | 2012-11-14 | 2014-05-20 | Microsoft Corporation | Revertable managed execution image instrumentation |
-
2010
- 2010-06-09 US US12/796,833 patent/US8495601B2/en not_active Expired - Fee Related
-
2011
- 2011-04-20 DE DE102011007714.6A patent/DE102011007714B4/de not_active Expired - Fee Related
- 2011-06-08 CN CN201410252271.6A patent/CN104002685B/zh not_active Expired - Fee Related
- 2011-06-08 CN CN201110156252.XA patent/CN102331972B/zh not_active Expired - Fee Related
-
2013
- 2013-06-19 US US13/921,452 patent/US9195576B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001116527A (ja) * | 1999-10-20 | 2001-04-27 | Matsushita Electric Ind Co Ltd | 立体物検出方法及び装置 |
CN1489120A (zh) * | 2002-07-19 | 2004-04-14 | 住友电气工业株式会社 | 图像处理设备,图像处理方法和车辆监控系统 |
US20070083813A1 (en) * | 2005-10-11 | 2007-04-12 | Knoa Software, Inc | Generic, multi-instance method and GUI detection system for tracking and monitoring computer applications |
US20090140698A1 (en) * | 2007-06-15 | 2009-06-04 | Tesla Motors, Inc. | Multi-mode charging system for an electric vehicle |
Also Published As
Publication number | Publication date |
---|---|
DE102011007714A1 (de) | 2011-12-15 |
US9195576B2 (en) | 2015-11-24 |
US20110307669A1 (en) | 2011-12-15 |
DE102011007714B4 (de) | 2019-02-14 |
CN102331972B (zh) | 2014-06-04 |
US8495601B2 (en) | 2013-07-23 |
CN104002685B (zh) | 2017-04-12 |
CN102331972A (zh) | 2012-01-25 |
US20130282990A1 (en) | 2013-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102331972B (zh) | 共享存储结构 | |
CN104885062B (zh) | 使用逻辑到物理映射以与数据存储装置进行直接用户空间通信 | |
CN105893083B (zh) | 云环境下基于容器的移动代码卸载支撑系统及其卸载方法 | |
CN101149686B (zh) | 嵌入多个共享非易失性存储器的控制器的系统 | |
CN104756078B (zh) | 处理资源分配的装置和方法 | |
CN102279807B (zh) | 更新共享存储器的方法和系统 | |
JP4910398B2 (ja) | タグ情報管理プログラム、タグ情報管理方法およびタグ情報管理装置 | |
CN109901790A (zh) | 存储器系统及控制方法 | |
CN101441473B (zh) | 测试至少一个电子控制系统的测试设备以及操作测试设备的方法 | |
CN105589754A (zh) | 用于访问共享存储器中的数据的机制和方法 | |
CN101432690A (zh) | Bios配置更新技术 | |
CN101241474A (zh) | 存储器映射系统及方法 | |
CN104798111A (zh) | 基于云的无线通信系统及方法 | |
JP2006067160A (ja) | 無線タグシステム、無線タグアクセス制御装置、無線タグアクセス制御方法、無線タグアクセス制御プログラム、及び無線タグ | |
CN101981541A (zh) | 使用闪存和有限功能存储器控制器来引导电子设备 | |
CN102177501A (zh) | 硬件虚拟化系统 | |
CN104081726A (zh) | 列车信息管理装置及其控制软件的选择方法 | |
JP2010097563A (ja) | ネットワークストレージシステム、ディスクアレイ装置、ホスト装置、アクセス制御方法、データアクセス方法 | |
CN104272390A (zh) | 包括闪存阵列和ram阵列的组成的存储器阵列且其具有数据写入ram阵列和从闪存阵列读取数据 | |
CN109101189A (zh) | 数据储存装置与数据储存方法 | |
CN104050115A (zh) | 一种存储控制器及其使用方法 | |
CN107368379A (zh) | 面向EVP的跨GuestOS进程间通信方法及系统 | |
US9639489B2 (en) | I/O device sharing system and I/O device sharing method | |
CN101828154A (zh) | 用于对由测量变换器和传感器组成的测量系统进行兼容性检验的方法 | |
US10127413B2 (en) | Sensor management system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170412 Termination date: 20200608 |
|
CF01 | Termination of patent right due to non-payment of annual fee |