片上系统的开机方法

文档序号:95767 发布日期:2021-10-12 浏览:22次 >En<

阅读说明:本技术 片上系统的开机方法 (Starting method of system on chip ) 是由 林世陵 于 2020-03-18 设计创作,主要内容包括:本发明提供一种在不修改只读存储器内的启动程序的情况下,可动态修改片上系统开机程序的开机方法,该方法藉由读取外部输入信号改变启动程序读取跳板程序的起始位置,再由跳板程序读取真正的目标程序,由于跳板程序储存于外部储存装置中,可随时被使用者所修改,如此即可在不修改只读存储器内的启动程序下,将目标程序储存于已有既存数据的外部储存装置,以实现共用外部储存装置的目标。(The invention provides a starting method capable of dynamically modifying a starting program of a system-on-chip under the condition of not modifying a starting program in a read-only memory, which changes the starting position of reading a springboard program by reading an external input signal, and then reads a real target program by the springboard program.)

片上系统的开机方法

技术领域

本发明系指一种适用于片上系统(System-on-Chip,系统单芯片)的开机方法,尤指一种可在不修改只读存储器内的启动程序的情况下,动态修改片上系统开机程序的开机方法。

背景技术

于嵌入式系统中,启动程序是作业系统运行前执行的一段程序码,目的是在作业系统运行前,执行硬件初始化操作,最后将作业系统载入到存储器执行。于片上系统中,启动程序存放于只读存储器中。作业系统运行前,执行启动程序,向外部储存装置读取并执行目标程序完成开机。使得使用者可以随时更新目标程序。

然而,随着电子产品越来越复杂,一个电子产品内经常是由多个片上系统所整合而成,倘若每个片上系统都拥有自己对应的外部储存装置,整个系统的成本及走线的难度便会提升。反之,若使多个片上系统共用同一颗外部储存装置,则须透过修改多个片上系统的光罩并重新下线,以修改位于多个片上系统只读存储器中的启动程序。

因此,现有技术实有改善之必要。

发明内容

因此,本发明之主要目的即在于提供一种在不修改只读存储器内的启动程序的情况下,可动态修改片上系统开机程序的开机方法,以改善现有技术的缺点。

本发明实施例揭露一种开机方法,适用于一片上系统的一开机程序上,其中该片上系统包括一输入端口,用来提供外部输入信号,一处理单元,用来执行程序,以及一只读存储器,用来储存一起始开机程序,该开机方法包括选择一跳板程序的一起始位置;读取该跳板程序,并以该处理单元执行该跳板程序;以及透过该跳板程序,以该处理单元执行该目标程序;其中,该跳板程序与该目标程序储存于一外部储存装置中;其中,该跳板程序用来执行读取该目标程序,以及该目标程序用来执行该开机程序。

附图说明

图1A为现有技术一片上系统及其系统之示意图。

图1B为现有技术整合二片上系统于一系统之示意图。

图2A、2B为现有技术一外部储存装置存储器配置方法之示意图。

图3A、3B为本发明实施例一片上系统及其系统之示意图。

图4为本发明实施例一外部储存装置存储器配置之示意图。

图5A、5B为本发明实施例一外部储存装置存储器配置之示意图。

图6为本发明实施例一片上系统开机方法流程之示意图。

图7为本发明实施例一片上系统之示意图。

附图标记说明

10:现有技术片上系统

100:现有技术处理单元

102:现有技术只读存储器

104:现有技术随机存取存储器

12:现有技术外部储存装置

14:现有技术片上系统

140:现有技术处理单元

142:现有技术只读存储器

144:现有技术随机存取存储器

16:现有技术外部储存装置

30:片上系统

300:处理单元

302:只读存储器

304:随机存取存储器

306:输入端口

32:外部储存装置

34:片上系统

340:处理单元

342:只读存储器

60:流程

600~612:步骤

具体实施方式

在说明书及申请专利范围当中使用了某些词汇来指称特定之元件。所属领域具有通常知识者应可理解,硬件制造商可能会用不同之名词来称呼同一个元件。本说明书及申请专利范围并不以名称之差异来作为区分元件之方式,而系以元件在功能上之差异来作为区分之准则。在说明书及申请专利范围当中所提及之「包含」及「包括」为一开放式用语,故应解释成「包含但不限定于」。此外,「耦接」一词在此包含任何直接及间接之电性连接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表该第一装置可直接电性连接于该第二装置,或透过其它装置或连接手段间接地电性连接至该第二装置。

图1A为现有技术一片上系统(System on Chip,SoC)10及其系统之示意图。如图1A所示,片上系统10包含一处理单元100、一只读存储器(Read-Only Memory,ROM)102及一随机存取存储器(Random Access Memory,RAM)104,片上系统10耦接至一外部储存装置12而组成一系统。为了初始化片上系统10,于开机程序中,处理单元100先读取并执行只读存储器102中储存的启动程序(BootLoader),再透过启动程序由外部储存装置12载入目标程序至随机存取存储器104中,最后处理单元100执行目标程序以完成开机流程。

于实际应用时,系统不仅只以一片上系统实现,如图1B所示,图1B为现有技术将二片上系统10、14整合于一系统之示意图。于现有技术中,二片上系统10及14分别耦接至其使用的外部储存装置12及16并整合于一系统中。简言之,若一系统中包含有多个片上系统时,该系统即需要多个外部储存装置,以储存多个片上系统的目标程序。

举例来说,第2A、2B图为现有技术之一外部储存装置存储器配置之示意图。如图2A所示,若二片上系统只读存储器102及142中储存的启动程序会向外部储存装置12及16中起始位置为0000_0000处与8000_0000处读取数据,则图1B中的电路可简化,使二个片上系统30及34共同耦接至一外部储存装置。另一方面,若外部储存装置存储器配置如图2B所示,则二个片上系统只读存储器102及142中储存的启动程序会向外部储存装置12及16中起始位置为0000_0000处与0000_0000处读取数据,则因为二个片上系统启动程序读取的位置相同,图1B中的电路即无法进一步简化为共同耦接至一外部储存装置。也就是说,此时需要二个外部储存装置12及16,并且此二个外部储存装置12及16均有闲置空间的浪费。

只读存储器经片上系统下线(Tape out)之后,除非修改光罩(Mask),否则无法修改。易言之,若二片上系统10及14于外部储存装置之存储器配置已如图2B所示,则除非透过修改光罩来修改片上系统10或14中只读存储器102或只读存储器142的内容,否则图1B中整个单芯片系统中即需使用二个外部储存装置12及16。

第3A、3B图为本发明实施例一片上系统30及其系统之示意图。如图3A所示,本发明所提供的开机方法利用跳板程序及目标程序,可使片上系统30与其他片上系统34共用同一外部储存装置32;其中,外部储存装置32已有既存程序或数据,且外部储存装置32的闲置空间大于跳板程序与目标程序的大小。片上系统30包含一处理单元300、一只读存储器302、一随机存取存储器304及一输入端口306。本发明实施例系于只读存储器302中储存启动程序,先判断输入端口306的信号以决定跳板程序的位置,再从外部储存装置32中读取跳板程序至随机存取存储器304后由处理单元300执行,跳板程序里描述真正的目标程序的位置、大小等资讯,随后处理单元300可再由外部储存装置32中读取目标程序至随机存取存储器304后再执行,完成开机程序。此外,片上系统30可以依使用的场景而有不同的修饰。举例来说,相较于图3A,图3B中片上系统30移除了随机存取存储器304,以节省成本。

关于片上系统30的运作,请同时参考图4,图4为外部储存装置32之存储器配置之一实施例之示意图。如图4所示,外部储存装置32于4000_0000至7FFF_FFFF及C000_0000至EFFF_FFFF处已有既存的数据与程序。于本实施例中,于F000_0000处储存一跳板程序,启动程序可籍由处理单元300先读取输入端口306的输入信号,决定跳板程序的起始位置为F000_0000。接着,透过载入跳板程序至随机存取存储器304后由处理单元300执行,并据以执行目标程序,完成片上系统30的开机程序。

由于外部储存装置中32中的内容可随时被使用者所修改,使用者可随时修改储存于外部储存装置中32中的跳板程序,如此可使处理单元300于读取目标程序时相对应地变换位置,以实现在不修改只读存储器内的启动程序的情况下,可动态修改片上系统开机程序的开机方法。

惟于开机程序中,随机存取存储器304并非不可或缺之元件。举例来说,于图4之外部储存装置的存储器配置中,外部储存装置32地址为0000_0000至3FFF_FFFF处为闲置空间,片上系统30可透过存取外部储存装置32,跳板程序与目标程序的指令部分载入处理单元300运算直接执行,并将处理单元300运算时中间数据暂时存放于外部储存装置32,以实现开机流程。

此外,目标程序系透过跳板程序而载入,其中使用者随时可因应使用场景的不同而适当的修改储存于外部储存装置的跳板程序,更进一步地说,目标程序于外部储存装置中的存储器配置不需进行字节对齐(word alignment),也不须包含档案标头(header)、档案结尾(end-of-file)、校验码(checksum)或杂凑值(hash value),且不限于此。举例来说,图5A为本发明实施例一外部储存装置存储器配置之示意图。于图5A中,目标程序的起始位置为8000_0002的bit3,此外亦不包括档案标头、档案结尾、校验码或杂凑值,使用者仍可透过修改跳板程序,完成该目标程序的载入、读取与执行。相同地,跳板程序于外部储存装置中的存储器配置亦不须进行字节对齐,于此不再赘述。

图5B为本发明实施例一外部储存装置存储器配置之示意图。于图5B中,由于外部储存装置32存储器配置中0000_0000至3FFF_FFFF此一段连续的闲置空间不足以容纳目标程序,于一实施例中,使用者仍可透过修改跳板程序,将目标程序分割成二片段,并分别储存于0000_0000至3FFF_FFFF及8000_0000至8FFF_FFFF中,于片上系统32的开机程序中,透过修改后的跳板程序,将此二目标程序片段先后载入随机存取存储器304后由处理单元300加以执行,以完成开机程序。

须注意的是,前述实施例用以说明本发明之概念,举例来说,跳板程序与目标程序可依外部储存装置闲置的空间,分割成数段,或跳板程序可再区分初级跳板程序及多个次级跳板程序等,由只读存储器302中的启动程序读取初级跳板程序,再透过初级跳板程序读取多个次级跳板程序,最后完成多个目标程序片段的读取,以完成开机程序。本领域具通常知识者当可据以做不同的修饰,而不限于此。

最后,关于片上系统30开机方法之运作,可归纳为一片上系统开机方法流程60,如图6所示。片上系统开机方法流程60包含以下步骤:

步骤600:开始。

步骤602:片上系统30透过外部输入决定跳板程序的起始位置。

步骤604:自外部储存装置32读取跳板程序,并以处理单元300执行该跳板程序。

步骤606:重复执行步骤604,直到所有跳板程序已读取并执行完毕。

步骤608:透过跳板程序自外部储存装置32读取目标程序,以处理单元300执行该目标程序。

步骤610:重复执行步骤608,直到所有目标程序已读取并执行完毕。

步骤612:结束。

于步骤602中,片上系统30透过输入端口306取得外部输入信号,决定跳板程序的起始位置,其中该外部输入信号可为该起始位置的直接地址,或透过一储存于只读存储器302中的对应表以对应起始位置。举例来说,于一实施例中,输入端口306共一位元,其输入值为0时代表跳板程序位于外部储存装置32的起始位置为0000_0000,其输入值为1时代表跳板位于外部储存装置32起始位置为F000_0000。此外,输入端口的型态亦不以片上系统的通用型输入输出端口(General-Purpose Input/Output,GPIO)为限,亦可为打线选择(Bonding Option),直接定址或间接定址的方式为本领域具通常知识者常见技艺,于此不再赘述。

于步骤606及步骤610中,由于外部储存装置的存储器配置因素,跳板程序与目标程序可能无法连续地储存于外部储存装置的一段空间(如图5B所示),故跳板程序与目标程序可能需要分割成多个片段,从而片上系统30于步骤602跳板程序的起始位置后,仍需分多次读取并执行跳板程序,并再藉由跳板程序读取并执行目标程序,以实现完整的开机流程。

至于片上系统开机方法流程60之其他步骤可参考前述说明,于此不再赘述。

需注意的是,外部输入信号系指对片上系统30之外部,而非整个系统的外部。若于整个电子装置有多个片上系统时,只要其他片上系统较片上系统30早完成初始化,其片上系统30的外部讯号可由其他片上系统中的一打线选择或一可编程逻辑装置耦接而得,其中该可编程逻辑装置可为一一次性写入存储器(One-Time Programmable,OTP)、一数次性写入存储器(Few-Time Programmable,FTP)、一可多次写入存储器(Multiple-TimeProgrammable,MTP),例如电子熔丝(eFuse)、反熔丝(Anti-fuse)、只读存储器、随机存取存储器、只读存储光盘(CD-ROM)、磁带(Magnet Tape)、软性磁碟(Floppy Disk)、光学数据储存装置(Optical Data Storage Device)、非挥发性存储器(Non-volatile Memory),且不限于此。

举例来说,图7为本发明实施例一片上系统之示意图。于图7中,片上系统30与一SoC1、一SoC2及一eFuse整合于一系统中,其中SoC1与eFuse的初始化顺序较片上系统30早完成,则可透过eFuse的输出端口耦接至片上系统30的输入端口306上。本领域具通常知识者可依适用的设备不同而选择适当组态。此种电路设计方法为本领域具通常知识者常见技艺,于此不再赘述。

此外,虽然出于说明目的以上片上系统30、外部储存装置32被表示为不同单元,但这些单元可全部或一部整合至同一电路。举例来说,透过系统封装(System in a Package,SIP)可将外部储存装置32与片上系统30整合至同一片上系统内。于一实施例中,电子熔丝、反熔丝可为独立元件或与片上系统30整合至同一片上系统中。

前述实施例用以说明本发明之概念,本领域具通常知识者当可据以做不同的修饰,而不限于此。因此,只要片上系统的开机方法,可透过读取一信号后,动态改变目标程序于外部储存装置的读取位置,即满足本发明的要求,而属于本发明之范畴。

综上所述,本发明提供一种在不修改只读存储器内的启动程序的情况下,可动态修改片上系统开机程序的开机方法,该方法藉由读取外部输入信号改变启动程序读取跳板程序的起始位置,再由跳板程序读取真正的目标程序,由于跳板程序储存于外部储存装置中,可随时被使用者所修改,如此即可在不修改只读存储器内的启动程序下,将目标程序储存于已有既存数据的外部储存装置,以实现共用外部储存装置的目标。

以上所述仅为本发明之较佳实施例,凡依本发明权利要求所做之均等变化与修饰,皆应属本发明之涵盖范围。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:开机方法及电子装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!