CN112269606A - 一种类脑计算机操作系统的应用处理程序动态加载方法 - Google Patents

一种类脑计算机操作系统的应用处理程序动态加载方法 Download PDF

Info

Publication number
CN112269606A
CN112269606A CN202011264115.3A CN202011264115A CN112269606A CN 112269606 A CN112269606 A CN 112269606A CN 202011264115 A CN202011264115 A CN 202011264115A CN 112269606 A CN112269606 A CN 112269606A
Authority
CN
China
Prior art keywords
processing program
application processing
brain
binary code
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011264115.3A
Other languages
English (en)
Other versions
CN112269606B (zh
Inventor
吕攀
程书意
杨国青
李红
邓水光
潘纲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN202011264115.3A priority Critical patent/CN112269606B/zh
Priority to PCT/CN2020/128499 priority patent/WO2022099569A1/zh
Publication of CN112269606A publication Critical patent/CN112269606A/zh
Application granted granted Critical
Publication of CN112269606B publication Critical patent/CN112269606B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/061Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Neurology (AREA)
  • Molecular Biology (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种类脑计算机操作系统的应用处理程序动态加载方法,包括以下步骤:获取应用处理程序的二进制代码和配置信息;根据配置信息将二进制代码拷贝到相应的内存中;当类脑计算机产生结果数据时,则执行应用处理程序的二进制代码。该应用处理程序动态加载方法能够解决由于类脑计算机产生大量的数据,导致类脑计算机系统产生较大时延的问题,增强类脑计算机系统的整体处理性能。

Description

一种类脑计算机操作系统的应用处理程序动态加载方法
技术领域
本发明属于新型计算机技术领域,具体涉及一种类脑计算机操作系统的应用处理程序动态加载方法。
背景技术
随着后摩尔定律时代的到来,冯诺依曼体系结构的计算性能由于多方面的瓶颈而不再能够维持高速的增长,基于脉冲神经网络的类脑计算芯片是直接用硬件实现了一些生物神经元模型,并且神经元之间的数据传输都是类似生物神经元之间脉冲。由类脑计算机组成的类脑计算机由于在架构和实现上的天然优势,能够通过运行脉冲神经网络来模拟大脑的部分行为,并且有着较低的功耗和较高的计算性能。
一般地,类脑计算机在完成计算任务后会产生大量的结果数据,如膜电压、计算结果等数据。如果类脑计算机产生的数据不经过任何处理,直接存储或者通过网络返回给用户,那么会导致系统产生较大的时延。该时延主要体现在两个方面:一个是数据的多次内存拷贝造成的时延,另一个是数据的网络传输造成的时延。同时由于脉冲神经网络模型的差异性会导致其计算结果在结构上也各不相同,因此,亟需一种动态加载方法,用于在类脑计算机产生结果数据时,能够根据不同的脉冲神经网络模型类型动态地加载不同的应用处理程序,来实现用户所需数据的结构化,从而提升系统整体性能。
一般地,现有的动态加载方法都比较复杂,如linux系统提供的kprobe方式,可以在不重新编译内核的情况下,向内核中动态地插入代码。但是kprobe方式并不适合纯裸机软件系统,有两方面原因:第一,kprobe方式需要建立符号表;第二,kprobe方式性能较差,主要是因为其基于中断的方式,需要保存上下文。再如热补丁技术,其主要用于代码的在线修复及在线更新。热补丁技术同样也需要建立符号表信息,不适合于类脑计算机操作系统。
由于类脑计算机操作系统属于一种静态操作系统,因此,需要一种简单的方案实现类脑计算机应用处理程序的动态加载。
又因为类脑计算机计算结果处理的频次高,且单次时间短,一般处理时间为毫秒级别,因此需要一种低的性能开销实现应用处理程序的动态加载。
发明内容
鉴于上述,本发明提供了一种类脑计算机操作系统的应用处理程序动态加载方法,能够解决由于类脑计算机产生大量的数据,导致类脑计算机系统产生较大时延的问题,增强类脑计算机系统的整体处理性能。
本发明的技术方案为:
一种类脑计算机操作系统的应用处理程序动态加载方法,包括以下步骤:
获取应用处理程序的二进制代码和配置信息;
根据配置信息将二进制代码拷贝到相应的内存中;
当类脑计算机产生结果数据时,则执行应用处理程序的二进制代码。
优选地,在获取应用处理程序的二进制代码和配置信息之前,包括:
编写应用处理程序,应用处理程序的形式参数包括被处理数据的存储位置及长度、处理后数据的存储位置及长度;
提供应用处理程序的配置信息,配置信息包括用户身份标识、脉冲神经网络模型标识以及应用处理程序标识;
提取应用处理程序的二进制代码,并将应用处理程序的二进制代码和配置信息传输至类脑计算机。
本发明中,应用处理程序用于处理类脑计算机的脉冲神经网络模型的结果数据,由用户编写,因此应用处理程序的配置信息包含用户身份标识。所述应用处理程序对应至少一种数据处理方式,且与脉冲神经网络模型对应。其中,所述数据处理方式包括从结果数据中筛选或提取用户所需数据。
为了保证类脑计算机操作系统加载应用处理程序时不会出错,优选地,所述应用处理程序的形式参数应与执行应用处理程序的二进制代码传入的形式参数保持一致。
优选地,根据配置信息将二进制代码拷贝到相应的内存中包括:
根据配置信息中的脉冲神经网络模型标识获得脉冲神经网络模型结构体;
根据配置信息中的应用处理程序标识和脉冲神经网络模型结构体得到结构体成员变量,该结构体成员变量用于存储应用处理程序的二进制代码。
优选地,将应用处理程序的二进制代码存储到结构体成员变量之前,还包括:
将用于存储应用处理程序的二进制代码的结构体成员变量初始化为默认应用处理程序的二进制代码;
默认应用处理程序的二进制代码用于完整地拷贝类脑计算机产生的结果数据。
优选地,当类脑计算机产生结果数据时,则执行应用处理程序的二进制代码包括:
当类脑计算机产生结果数据时,以回调函数的方式执行应用处理程序的二进制代码;
回调函数传入的形式参数指明了被处理数据的存储位置及长度、处理后数据的存储位置及长度。
与现有技术相比,本发明具有的有益效果至少包括:
本发明提供的类脑计算机操作系统的应用处理程序动态加载方法,在类脑计算机产生数据时,以回调函数的方式调用上位机通过网络下载的应用处理程序的二进制代码,使其操作系统能够动态的调用处理程序代码,让不同的脉冲神经网络模型实现了不同的结果数据处理方式,可以高效地返回用户所需的关键数据,显著降低数据量,从而避免了大量数据在内存中拷贝和网络传输时带来的时延,增强类脑计算系统的整体性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
图1是本发明实施例提供的类脑计算机操作系统的应用处理程序动态加载方法的流程示意图;
图2是本发明实施例提供的类脑计算机操作系统的应用处理程序动态加载方法的具体实施流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
为了解决由于类脑计算机产生大量的数据,导致类脑计算机系统产生较大时延的问题,本实施例提供了一种类脑计算机操作系统的应用处理程序动态加载方法,如图1所示,包括以下步骤:获取应用处理程序的二进制代码和配置信息;根据配置信息将二进制代码拷贝到相应的内存中;当类脑计算机产生结果数据时,则执行应用处理程序的二进制代码。
该类脑计算机操作系统的应用处理程序动态加载方法,在类脑计算机产生数据时,操作系统以回调函数的方式调用远程下载的应用处理程序二进制代码,给不同的脉冲神经网络模型提供了不同的数据处理方式,并返回用户所需的关键结果数据,降低了由于数据存储和传输带来的时延。
在实施例中,使用了集成12颗达尔文神经拟态芯片的类脑计算机来进行实现。图2为实施例提供的类脑计算机操作系统的应用处理程序动态加载方法的具体实施流程图。具体包括:
步骤1,编写应用处理程序和配置信息。
其中应用处理程序的形式参数指明了被处理的数据存储的位置及其长度、处理后的数据存储的位置及其长度。其中应用处理程序的形式参数应和执行应用处理程序的二进制代码传入的参数保持一致。其中配置信息包含一些关键的特征信息,包括用户身份标识、脉冲神经网络模型标识和应用处理程序标识。
步骤2,编译应用处理程序。
采用交叉编译编译应用处理程序。
其中交叉编译的命令为:arm-none-eabi-gcc-Wall-O0-g3-c-fmessage-length=0-mcpu=cortex-a9-mfpu=vfpv3-mfloat-abi=hard源文件名字-o目标文件名字。
提取应用处理程序二进制代码;
其中,readelf-s目标文件命令读取应用处理程序长度和在应用处理程序在text段内的偏移;
其中,readelf-S目标文件命令读取text段在目标文件的首地址。
其中,根据text段在目标文件的首地址、应用处理程序长度和应用处理程序在text段内的偏移可以提取应用处理程序的二进制代码。
步骤3,应用处理程序的二进制代码和配置信息通过网络传输给类脑计算机。网络传输的方式采用tcp协议。
步骤4,提取应用处理程序的二进制代码。
步骤5,类脑计算机根据配置信息中的脉冲神经网络模型标识找到脉冲神经网络模型结构体。
步骤6,类脑计算机根据配置信息中的应用处理程序标识找到脉冲神经网络模型结构体成员变量。
步骤7,将应用处理程序的二进制代码赋值给脉冲神经网络模型结构体成员变量。
步骤8,当类脑计算机产生结果数据时,以回调函数的方式从脉冲神经网络模型结构体成员变量中调取应用处理程序的二进制代码并执行。
上述类脑计算机操作系统的应用处理程序动态加载方法中,在类脑计算机产生数据时,以回调函数的方式调用上位机通过网络下载的应用处理程序二进制代码,使其操作系统能够动态的调用该处理程序代码,针对不同的脉冲神经网络模型实现不同的数据处理方式,可以高效的返回用户所需的关键数据,降低了数据量,从而避免了大量数据在内存中拷贝和网络传输时带来的时延。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种类脑计算机操作系统的应用处理程序动态加载方法,其特征在于,包括以下步骤:
获取应用处理程序的二进制代码和配置信息;
根据配置信息将二进制代码拷贝到相应的内存中;
当类脑计算机产生结果数据时,则执行应用处理程序的二进制代码。
2.如权利要求1所述的类脑计算机操作系统的应用处理程序动态加载方法,其特征在于,在获取应用处理程序的二进制代码和配置信息之前,包括:
编写应用处理程序,应用处理程序的形式参数包括被处理数据的存储位置及长度、处理后数据的存储位置及长度;
提供应用处理程序的配置信息,配置信息包括用户身份标识、脉冲神经网络模型标识以及应用处理程序标识;
提取应用处理程序的二进制代码,并将应用处理程序的二进制代码和配置信息传输至类脑计算机。
3.如权利要求2所述的类脑计算机操作系统的应用处理程序动态加载方法,其特征在于,所述应用处理程序的形式参数应与执行应用处理程序的二进制代码传入的形式参数保持一致。
4.如权利要求2所述的类脑计算机操作系统的应用处理程序动态加载方法,其特征在于,根据配置信息将二进制代码拷贝到相应的内存中包括:
根据配置信息中的脉冲神经网络模型标识获得脉冲神经网络模型结构体;
根据配置信息中的应用处理程序标识和脉冲神经网络模型结构体得到结构体成员变量,该结构体成员变量用于存储应用处理程序的二进制代码。
5.如权利要求4所述的类脑计算机操作系统的应用处理程序动态加载方法,其特征在于,将应用处理程序的二进制代码存储到结构体成员变量之前,还包括:
将用于存储应用处理程序的二进制代码的结构体成员变量初始化为默认应用处理程序的二进制代码;
默认应用处理程序的二进制代码用于完整地拷贝类脑计算机产生的结果数据。
6.如权利要求1所述的类脑计算机操作系统的应用处理程序动态加载方法,其特征在于,当类脑计算机产生结果数据时,则执行应用处理程序的二进制代码包括:
当类脑计算机产生结果数据时,以回调函数的方式执行应用处理程序的二进制代码;
回调函数传入的形式参数指明了被处理数据的存储位置及长度、处理后数据的存储位置及长度。
7.如权利要求1~6任一项所述的类脑计算机操作系统的应用处理程序动态加载方法,其特征在于,所述应用处理程序对应至少一种数据处理方式,且与脉冲神经网络模型对应。
8.如权利要求7所述的类脑计算机操作系统的应用处理程序动态加载方法,其特征在于,所述数据处理方式包括从结果数据中筛选或提取用户所需数据。
CN202011264115.3A 2020-11-12 2020-11-12 一种类脑计算机操作系统的应用处理程序动态加载方法 Active CN112269606B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011264115.3A CN112269606B (zh) 2020-11-12 2020-11-12 一种类脑计算机操作系统的应用处理程序动态加载方法
PCT/CN2020/128499 WO2022099569A1 (zh) 2020-11-12 2020-11-13 一种类脑计算机操作系统的应用处理程序动态加载方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011264115.3A CN112269606B (zh) 2020-11-12 2020-11-12 一种类脑计算机操作系统的应用处理程序动态加载方法

Publications (2)

Publication Number Publication Date
CN112269606A true CN112269606A (zh) 2021-01-26
CN112269606B CN112269606B (zh) 2021-12-07

Family

ID=74340041

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011264115.3A Active CN112269606B (zh) 2020-11-12 2020-11-12 一种类脑计算机操作系统的应用处理程序动态加载方法

Country Status (2)

Country Link
CN (1) CN112269606B (zh)
WO (1) WO2022099569A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115392443A (zh) * 2022-10-27 2022-11-25 之江实验室 类脑计算机操作系统的脉冲神经网络应用表示方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541598A (zh) * 2011-12-26 2012-07-04 深圳联友科技有限公司 一种动态加载组件的方法及系统
CN103309684A (zh) * 2012-03-07 2013-09-18 腾讯科技(深圳)有限公司 动态加载应用的方法及装置
US20160092246A1 (en) * 2014-09-26 2016-03-31 Oracle International Corporation Reverse dependency injection in a system with dynamic code loading
CN109783157A (zh) * 2018-12-29 2019-05-21 深圳云天励飞技术有限公司 一种算法程序加载的方法及相关装置
CN110909869A (zh) * 2019-11-21 2020-03-24 浙江大学 一种基于脉冲神经网络的类脑计算芯片
CN111325321A (zh) * 2020-02-13 2020-06-23 中国科学院自动化研究所 基于多神经网络融合的类脑计算系统及指令集的执行方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109858620B (zh) * 2018-12-29 2021-08-20 北京灵汐科技有限公司 一种类脑计算系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541598A (zh) * 2011-12-26 2012-07-04 深圳联友科技有限公司 一种动态加载组件的方法及系统
CN103309684A (zh) * 2012-03-07 2013-09-18 腾讯科技(深圳)有限公司 动态加载应用的方法及装置
US20160092246A1 (en) * 2014-09-26 2016-03-31 Oracle International Corporation Reverse dependency injection in a system with dynamic code loading
CN109783157A (zh) * 2018-12-29 2019-05-21 深圳云天励飞技术有限公司 一种算法程序加载的方法及相关装置
CN110909869A (zh) * 2019-11-21 2020-03-24 浙江大学 一种基于脉冲神经网络的类脑计算芯片
CN111325321A (zh) * 2020-02-13 2020-06-23 中国科学院自动化研究所 基于多神经网络融合的类脑计算系统及指令集的执行方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
YOUHUI ZHANG 等: ""A system hierarchy for brain-inspired computing"", 《NATURE》 *
周虹: "《开放式数控系统设计及实例》", 31 August 2007, 长沙:湖南大学出版社 *
李冕: ""脉冲神经网络模拟多核计算机的互连网络的研究"", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115392443A (zh) * 2022-10-27 2022-11-25 之江实验室 类脑计算机操作系统的脉冲神经网络应用表示方法及装置
CN115392443B (zh) * 2022-10-27 2023-03-10 之江实验室 类脑计算机操作系统的脉冲神经网络应用表示方法及装置

Also Published As

Publication number Publication date
CN112269606B (zh) 2021-12-07
WO2022099569A1 (zh) 2022-05-19

Similar Documents

Publication Publication Date Title
US10810492B2 (en) Memory side acceleration for deep learning parameter updates
US11087203B2 (en) Method and apparatus for processing data sequence
WO2021057807A1 (zh) 深度学习模型生成方法、装置、设备及存储介质
CN110603527B (zh) 用于服务器侧生产代码的条件调试的方法、系统和设备
JP2020110911A (ja) 物体を把持するための奥行知覚モデリング
CN108287708B (zh) 一种数据处理方法、装置、服务器及计算机可读存储介质
KR20080023728A (ko) 에뮬레이터 성능을 개선하기 위한 가상 코드의 선택적전처리 컴파일
US11886302B1 (en) System and method for execution of applications in a container
CN112269606B (zh) 一种类脑计算机操作系统的应用处理程序动态加载方法
EP3050605B1 (en) A method for event detection in real-time graphic applications
CN110908837A (zh) 应用程序异常处理方法、装置、电子设备及存储介质
US20070226542A1 (en) Simulated message generation for simulation testing of a node operation
CN110516000B (zh) 一种支持复杂工作流结构的工作流管理系统
CN112882690B (zh) 一种应用开发方法及装置
CN112613605A (zh) 神经网络加速控制方法、装置、电子设备及存储介质
CN107967170B (zh) 迁移计算方法、装置、设备及存储介质
CN113805854A (zh) 基于Linux系统的应用层Hook实现方法、系统、装置及存储介质
CN113065072A (zh) 用于社群营销管理的数据处理方法及系统
CN112231290A (zh) 一种本地日志的处理方法、装置、设备及存储介质
EP3842927A1 (en) Methods, systems, articles of manufacture and apparatus to select data structures
CN113742361B (zh) Js开发环境下使用sql存储json数据的方法及系统
CN111857580B (zh) 一种分布式存储系统的相同写方法和装置
CN116257534A (zh) 事务处理方法、装置、设备、介质和计算机程序产品
CN113296779A (zh) 代码信息处理系统、方法、装置以及电子设备
CN116339797A (zh) 一种bootloader的更新方法、装置、设备和存储介质

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
GR01 Patent grant
GR01 Patent grant