CN106873954A - 初始化周边装置的方法与使用此方法的电子装置 - Google Patents
初始化周边装置的方法与使用此方法的电子装置 Download PDFInfo
- Publication number
- CN106873954A CN106873954A CN201510992159.0A CN201510992159A CN106873954A CN 106873954 A CN106873954 A CN 106873954A CN 201510992159 A CN201510992159 A CN 201510992159A CN 106873954 A CN106873954 A CN 106873954A
- Authority
- CN
- China
- Prior art keywords
- hardware
- electronic installation
- peripheral devices
- buffer
- serializing
- 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
- 230000002093 peripheral effect Effects 0.000 title claims abstract description 120
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000013500 data storage Methods 0.000 claims abstract description 28
- 230000006870 function Effects 0.000 claims abstract description 20
- 230000015654 memory Effects 0.000 claims abstract description 18
- 238000003860 storage Methods 0.000 claims abstract description 15
- 230000007958 sleep Effects 0.000 claims abstract description 12
- 239000000872 buffer Substances 0.000 claims description 117
- 238000009434 installation Methods 0.000 claims description 90
- 238000005457 optimization Methods 0.000 claims description 43
- 230000005059 dormancy Effects 0.000 claims description 42
- 230000008859 change Effects 0.000 claims description 12
- 230000006399 behavior Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 7
- 230000015572 biosynthetic process Effects 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 4
- 230000003139 buffering effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 4
- 238000011084 recovery Methods 0.000 abstract 2
- 238000010586 diagram Methods 0.000 description 17
- 230000002618 waking effect Effects 0.000 description 10
- 238000009826 distribution Methods 0.000 description 8
- 238000004904 shortening Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000005611 electricity Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- GWEVSGVZZGPLCZ-UHFFFAOYSA-N Titan oxide Chemical compound O=[Ti]=O GWEVSGVZZGPLCZ-UHFFFAOYSA-N 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910052799 carbon Inorganic materials 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000004408 titanium dioxide Substances 0.000 description 1
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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- 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/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Power Sources (AREA)
Abstract
本发明提供了一种初始化周边装置的方法与使用此方法的电子装置。电子装置具有休眠式或唤醒式开机功能,并包括一或多个具有暂存器的周边装置、具有数据储存模块的存储器与指令撷取模块。当电子装置进行非休眠回复或非唤醒冷开机以执行一或多个周边装置的初始化程序时,指令撷取模块自一或多个周边装置的驱动程序的执行过程撷取出多个硬件的暂存器设定以储存于数据储存模块中,并排序或串接多个硬件的暂存器设定以形成序列化硬件的暂存器设定。当电子装置因休眠回复或唤醒再次进行冷开机以执行一或多个周边装置的初始化程序时,通过该序列化硬件的暂存器设定初始化一或多个周边装置。
Description
技术领域
本发明关于一种快速开机技术,特别是指一种初始化周边装置的方法与使用此方法的电子装置。
背景技术
在如智能手机、智能家电、穿戴式装置或物联网装置等电子装置中,快速开机功能让数位资讯变得更加唾手可得,并使电子装置能“即开即用”,但大部分的电子装置在关机时是处于待机(standby)模式,而非真正的关机模式。虽然待机模式可有效缩短电子装置的开机时间,但电子装置整体上依然持续的消耗电力而保持高耗电状态,以致大幅增加地球的二氧化碳排放量。
因此,具有休眠式或唤醒式开机功能的电子装置为了降低消耗电力,宜在休眠关机时将电子装置进行断电,以使电子装置处于真正的关机模式或休眠模式而保持低耗电状态,并在开机时以休眠开机技术将电子装置进行冷开机,如下列图1及图2所示。
图1为现有技术中具有休眠式或唤醒式开机功能的电子装置的关机流程图。如图所示,在步骤S01中,执行电子装置的休眠前准备,即冻结(Freeze)程序。在步骤S02中,建立电子装置中有关应用程序的第一快照映像档(snapshot image)。在步骤S03中,中止(suspend)电子装置的一或多个周边装置。
接着,在步骤S04中,建立电子装置中有关操作系统的核心(kernel)的第二快照映像档。在步骤S05中,写入第一快照映像档与第二快照映像档至电子装置的永久储存装置中。在步骤S06中,将电子装置进行断电(power off)。
图2为现有技术中具有休眠式或唤醒式开机功能的电子装置的冷开机流程图。如图所示,在步骤S11中,将电子装置进行冷开机。在步骤S12中,执行电子装置的启动载入器程序(boot-loader)(大约1秒)。在步骤S13中,初始化核心与周边装置(大约2.8秒),包括步骤S131中执行一或多个周边装置的多个软件设定(存储器内)、与步骤S132中执行多个硬件的暂存器设定(周边装置内)。
然后,在步骤S14中,自永久储存装置中载入第二快照映像档(大约0.8秒),包括步骤S141中回复(resume)休眠前一或多个周边装置的软件设定。在步骤S15中,回复一或多个周边装置(大约2.4秒),包括步骤S151中回复休眠前多个硬件的暂存器设定。在步骤S16中,自永久储存装置中载入第一快照映像档(大约3.0秒)。在步骤S17中,执行电子装置的唤醒程序(thaw process)。
由上可知,在图2的电子装置大约10秒的冷开机程序中,步骤S13中初始化核心与周边装置需耗费2.8秒,加上步骤S15中回复一或多个周边装置需耗费2.4秒,总共耗费5.2秒。此乃因步骤S13中初始化一或多个周边装置时,需同时执行“步骤S131中多个软件设定”与“步骤S132中多个硬件的暂存器设定”,因而延长一或多个周边装置的初始化时间与回复时间,以致电子装置的开机时间较为缓慢。
因此,如何克服上述先前技术的问题,实已成目前亟欲解决的课题。
发明内容
本发明所揭露的一实施例,提供一种初始化周边装置的方法与使用此方法的电子装置,其可简化周边装置的初始化程序以缩短电子装置的开机时间。
本发明的电子装置的一实施例具有休眠式或唤醒式开机功能,并包括:一或多个周边装置,其具有一或多个暂存器;存储器,其具有数据储存模块;以及指令撷取模块,当电子装置进行非休眠回复或非唤醒冷开机以执行一或多个周边装置的初始化程序时,指令撷取模块自一或多个周边装置的驱动程序的执行过程撷取出多个硬件的暂存器设定及其相关资讯,以将多个硬件的暂存器设定及其相关资讯储存于数据储存模块中,进而排序或串接数据储存模块中多个硬件的暂存器设定以形成序列化硬件的暂存器设定;其中,当电子装置因休眠回复或唤醒再次进行冷开机以执行一或多个周边装置的初始化程序时,通过该序列化硬件的暂存器设定初始化一或多个周边装置。
本发明的初始化周边装置的方法的一实施例包括:提供具有休眠式或唤醒式开机功能的电子装置,其中,电子装置包括一或多个周边装置与一存储器,一或多个周边装置具有一或多个暂存器,且存储器具有一数据储存模块;当电子装置进行非休眠回复或非唤醒冷开机以执行一或多个周边装置的初始化程序时,自一或多个周边装置的驱动程序的执行过程撷取出多个硬件的暂存器设定及其相关资讯,以将多个硬件的暂存器设定及其相关资讯储存于数据储存模块中,进而排序或串接数据储存模块中多个硬件的暂存器设定以形成序列化硬件的暂存器设定;以及当电子装置因休眠回复或唤醒再次进行冷开机以执行一或多个周边装置的初始化程序时,通过该序列化硬件的暂存器设定初始化一或多个周边装置。
在本发明的初始化周边装置的方法与使用此方法的电子装置一实施例中,可包括依据优化演算法优化该序列化硬件的暂存器设定的存取顺序,以形成优化后的序列化硬件的暂存器设定。当电子装置因休眠回复或唤醒再次进行冷开机以执行一或多个周边装置的初始化程序时,通过该优化后的序列化硬件的暂存器设定初始化一或多个周边装置。
本发明的初始化周边装置的方法与使用此方法的电子装置一实施例中,可在电子装置进行非休眠回复或非唤醒的第一次冷开机以初始化一或多个周边装置时,自一或多个周边装置的驱动程序的执行过程撷取出多个硬件的暂存器设定(硬件指令)及其相关资讯(如硬件指令的执行时间或指令间隔)以储存于数据储存模块(如树状结构)中,并排序或串接多个硬件的暂存器设定以形成序列化硬件的暂存器设定(序列化硬件指令),也可进步优化该序列化硬件的暂存器设定(序列化硬件指令)以形成优化后的序列化硬件指令(优化后的序列化硬件指令)。
本发明可简化一或多个周边装置的初始化程序,并在电子装置因休眠回复或唤醒而再次进行冷开机时,仅需执行该序列化硬件的暂存器设定(序列化硬件指令)、或优化后的序列化硬件的暂存器设定(优化后的序列化硬件指令)以初始化一或多个周边装置,从而缩短一或多个周边装置的初始化时间与电子装置的开机时间。
附图说明
图1为现有技术中具有休眠式或唤醒式开机功能的电子装置的关机流程图;
图2为现有技术中具有休眠式或唤醒式开机功能的电子装置的冷开机流程图;
图3为本发明中具有休眠式或唤醒式开机功能的电子装置一实施例方块图;
图4为本发明中具有休眠式或唤醒式开机功能的电子装置的冷开机的一实施例流程图;
图5为一或多个周边装置的初始化程序一实施例示意图;
图6为本发明中将一或多个周边装置的驱动程序形成一序列化硬件的暂存器设定(序列化硬件指令)的一实施例示意图;
图7为本发明中将一或多个周边装置的驱动程序形成一序列化硬件的暂存器设定(序列化硬件指令)的另一实施例示意图;
图8为本发明中以优化演算法优化一序列化硬件指令(序列化硬件的暂存器设定)以形成一优化后的序列化硬件指令(优化后的硬件的暂存器设定)的一实施例示意图;
图9A为本发明中数据结构(以树状结构为例)及其一或多个节点以代表一或多个周边装置的示意图;
图9B为本发明图9A中多个周边装置的执行程序一实施例示意图;
图10为本发明中一数据结构的程序码一实施例示意图;
图11为本发明中透过页面错误处理方式监控周边装置的暂存器以撷取硬件的暂存器设定(硬件指令)的一实施例示意图;
图12A为本发明中具有休眠式或唤醒式开机功能的电子装置进行非休眠回复或非唤醒冷开机的流程图;
图12B为本发明中初始化周边装置的方法一实施例流程图;以及
图13为本发明中具有休眠式或唤醒式开机功能的电子装置因休眠回复或唤醒再次进行冷开机的一实施例流程图。
附图标记说明
1 电子装置
2 周边装置
21 暂存器
3 存储器
31 数据结构
32、33 数据结构的程序码
4 操作系统
40 核心
41 数据储存模块
42、42' 指令撷取模块
43 优化序列模块
44 驱动程序
441 硬件指令
442 软件指令
45 存储器管理模块
451 映射表
452 页面错误处理单元
46 第一页面
47 第二页面
5 汇流排
A1至A6、B1至B5、C1至C6 硬件指令
DP 周边装置的执行程序
H1至H7硬件设定(硬件的暂存器设定)
idle 闲置时间
L11、L12、L13、L21、L22、L23、L31 周边装置
N1至N8节点
S1至S7 软件设定
S01至S06 步骤
S11至S17、S131、S132、S141、S151 步骤
S21至S27、S231、S241、S251 步骤
S31至S34 步骤
S41至S46、S441至444 步骤
S51至S57 步骤
T1至Tn 硬件指令的执行时间
T1'至Tn' 硬件指令的下达时间
Ta 驱动程序的原始的执行时间
Tb 驱动程序经序列化后的执行时间
Tc 驱动程序的缩短的执行时间
Td 汇流排的缩短的执行时间
Tm1 序列化硬件指令的时间分布
Tm2 序列化硬件指令于汇流排中的时间分布
Tm3 优化后的序列化硬件指令的时间分布。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
图3为本发明中具有休眠式或唤醒式开机功能的电子装置1的一实施例方块图。如图所示,电子装置1具有休眠式或唤醒式开机功能,并包括一或多个具有暂存器21的周边装置2、一具有数据储存模块41的存储器3、一具有核心(kernel)40的操作系统4、一指令撷取模块42(或指令撷取模块42')、一优化序列模块43、一或多个具有硬件指令441与软件指令442的驱动程序44、一具有映射表451与页面错误处理单元452的存储器管理模块45、以及一汇流排5。
当电子装置1进行非休眠回复或非唤醒冷开机(如第一次冷开机)以执行一或多个周边装置2的初始化程序时,指令撷取模块42自一或多个周边装置2的驱动程序44的执行过程撷取出多个硬件的暂存器设定(硬件指令441)及其相关资讯(如硬件指令441的执行时间或指令间隔),而未撷取多个软件设定(软件指令442)。同时,指令撷取模块42将多个硬件的暂存器设定(硬件指令441)及其相关资讯储存于数据储存模块41中,进而排序或串接数据储存模块41中多个硬件的暂存器设定(硬件指令441)以形成一序列化硬件的暂存器设定(序列化硬件指令)。
之后,当电子装置1因休眠回复或唤醒再次进行冷开机(如第二次冷开机等等)以执行一或多个周边装置2的初始化程序时,即可通过该序列化硬件的暂存器设定(序列化硬件指令)初始化一或多个周边装置2。
电子装置1可为智能手机、智能家电、穿戴式装置或物联网装置等,存储器3可为挥发性存储器或非挥发性存储器等,数据储存模块41可为一数据结构或一阵列等,数据结构可为一树状(TREE)结构或一串接(LIST)结构等,阵列可为一指令阵列等,汇流排5可为系统汇流排或子汇流排等,但不以此为限。
操作系统4及其核心40可位于存储器3中,数据储存模块41、指令撷取模块42、优化序列模块43与存储器管理模块45可位于核心40中,数据储存模块41、指令撷取模块42与优化序列模块43三者的程序码可为操作系统4内单一位置的集中程序码组合、或多个位置的分散程序码组合。
图4为本发明中具有休眠式或唤醒式开机功能的电子装置1的冷开机的一实施例流程图。如图4与上述图3的实施例所示,在步骤S21中,将电子装置1进行冷开机。在步骤S22中,执行电子装置1的启动载入器程序。在步骤S23中,初始化核心40与一或多个周边装置2,包括步骤S231中执行该序列化硬件的暂存器设定(序列化硬件指令)。
然后,在步骤S24中,自电子装置1的永久储存装置(图中未示出)中载入第二快照映像档,包括步骤S241中回复休眠前一或多个周边装置2的软件设定(软件指令442)。在步骤S25中,回复一或多个周边装置2,包括步骤S251中回复休眠前多个硬件的暂存器设定(硬件指令441)。在步骤S26中,自永久储存装置中载入第一快照映像档。在步骤S27中,执行电子装置1的唤醒程序。
由上可知,在上述现有技术图2的步骤S13“初始化一或多个周边装置”中,需在步骤S131与步骤S132中分别执行“多个软件设定”与“多个硬件的暂存器设定”,以致延长一或多个周边装置的初始化时间与电子装置的开机时间。相对地,本发明图4的步骤S23“初始化一或多个周边装置2”中,仅需在步骤S231中执行“一序列化硬件的暂存器设定(序列化硬件指令)”,故可简化一或多个周边装置2的初始化程序,进而缩短一或多个周边装置2的初始化时间与电子装置1的开机时间。
要说明的是,本发明的电子装置1的关机流程的一实施例可相同或相似于上述现有技术图1的关机流程,故不再重复叙述。
图5为一或多个周边装置2的初始化程序一实施例示意图。以图5与上述图3的一实施例为例,当电子装置1分别进行非休眠回复或非唤醒第一次冷开机、与其后每次休眠回复或唤醒冷开机时,在一或多个周边装置2的初始化程序均相同(固定)的情况下,假设初始化程序为交错执行驱动程序44的多个硬件设定H1至H4(硬件指令441)与多个软件设定S1至S3(软件指令442),则一或多个周边装置2的第一次初始化后的状态、与其后每次休眠回复或唤醒初始化后的状态应相同,表示一或多个具有相同的初始状态的周边装置2经过相同的初始化程序会得到相同的初始化后的状态。
图6为本发明中将一或多个周边装置2的驱动程序44形成一序列化硬件的暂存器设定(序列化硬件指令)的一实施例示意图。如图6与上述图3的实施例所示,在一或多个周边装置2的驱动程序44均固定的情况下,一或多个具有相同的初始状态的周边装置2经过多个硬件的暂存器设定H(如H1至H4)或硬件指令441会得到相同的状态,也就是只有多个硬件的暂存器设定H(如H1至H4)或硬件指令441会影响一或多个周边装置2的状态,而多个软件设定S(如S1至S3)或软件指令442则不会影响一或多个周边装置2的状态。
因此,依据上述原理,本发明可自一或多个周边装置2的驱动程序44的执行过程撷取出多个硬件的暂存器设定H(如H1至H4)或硬件指令441,并排序或串接多个硬件的暂存器设定H(如H1至H4)或硬件指令441以形成一序列化硬件的暂存器设定或一序列化硬件指令。
图7为本发明中将一或多个周边装置2的驱动程序44形成一序列化硬件的暂存器设定(序列化硬件指令)的另一实施例示意图。如图7与上述图3的实施例所示,假设一或多个周边装置2的原始的初始化程序为交错执行一或多个驱动程序44的多个软件设定S1至S7(软件指令442)与多个硬件的暂存器设定H1至H7(硬件指令441),则驱动程序44的原始的执行时间为Ta。
因本发明是自一或多个驱动程序44的执行过程撷取出多个硬件的暂存器设定H1至H7(硬件指令441),并排序或串接多个硬件的暂存器设定H1至H7(硬件指令441)以形成一序列化硬件的暂存器设定(序列化硬件指令),故一或多个驱动程序4经序列化的执行时间为Tb。所以,本发明可免除一或多个驱动程序44的多个软件设定S1至S7(软件指令442)所需时间,从而得到一或多个驱动程序44的缩短的执行时间为Tc(即Ta-Tb)。
图8为本发明中以优化演算法优化一序列化硬件指令(见Tm1)或序列化硬件的暂存器设定,以形成一优化后的序列化硬件指令(见Tm3)或优化后的硬件的暂存器设定的一实施例示意图。
如图8与上述图3的实施例所示,假设三周边装置2A至2C的序列化硬件指令(见Tm1)为排序或串接成多个硬件指令441(如硬件指令A1至A6、B1至B5、C1至C6),序列化硬件指令的时间分布Tm1为多个硬件指令441(如A1至A6、B1至B5、C1至C6)的执行时间T1至Tn,序列化硬件指令(见Tm2)于汇流排5中的时间分布Tm2为多个硬件指令441的下达时间T1'至Tn',且多个硬件指令441(如A3、A5、B3、B4、B5)于汇流排5中具有一或多个闲置时间idle(见Tm2)。一或多个闲置时间idle可为一或多个硬件指令441(如A3、A5、B3、B4、B5)于汇流排5中的等待时间、或超出一或多个硬件指令441的下达时间的部分。
因此,本发明可以优化序列模块43的优化演算法优化该序列化硬件指令(见Tm1)或序列化硬件的暂存器设定的存取顺序,以形成一优化后的序列化硬件指令(见Tm3)或优化后的序列化硬件的暂存器设定。例如,优化序列模块43的优化演算法可将多个硬件指令441(如B1至B4、C1至C6)陆续插入一或多个闲置时间idle(见Tm2)中,以此形成一优化后的序列化硬件指令(见Tm3)或优化后的序列化硬件的暂存器设定。然后,当电子装置1再次进行冷开机(如第二次冷开机等等)以执行一或多个周边装置2的初始化程序时,即可通过该优化后的序列化硬件指令(见Tm3)或优化后的序列化硬件的暂存器设定初始化一或多个周边装置2。
在本实施例中,优化演算法可透过汇流排5将序列化硬件指令(如时间分布Tm1中A1至A6、B1至B5、C1至C6)排序或串接成该优化后的序列化硬件指令(如时间分布Tm3中A1、A2、A3、B1、…、C6),该优化后的序列化硬件指令的时间分布Tm3为多个下达时间T1'、T2'、T3'、T7'、…、Tn',且多个下达时间T1'至Tn'可相等或不相等。以此,本发明可得到汇流排5的缩短的执行时间为Td。
图9A为本发明中数据结构31(以树状结构为例)及其一或多个节点N(如N2至N8)以代表一或多个周边装置2(如L11至L13、L21至L23、L31)的一实施例示意图,图9B为本发明图9A中一或多个周边装置2(如L11至L13、L21至L23、L31)的执行程序DP的一实施例示意图。本揭露的数据结构31是以树状结构举例说明之,但不限于此类型的结构。
如图9A与上述图3的实施例所示,数据储存模块41为如树状结构的数据结构31并具有一或多个节点N(如N1至N8),且一或多个节点N(如N2至N8)具有一或多个缓冲区(图中未示出)以储存多个硬件的暂存器设定(硬件指令441)及其执行时间。
一或多个节点N(如N2至N8)分别代表一或多个周边装置2(如L11至L13、L21至L23、L31),且多个节点N(如N2至N8)的关系表示多个周边装置2(如L11至L13、L21至L23、L31)的相依性。例如,节点N2至N4是位于同一层(如兄弟关系),表示周边装置L11至L13彼此独立而无相依性。又,节点N2及N5是位于上下层(如父子关系),表示周边装置L11及L21非彼此独立而有相似性。
如图9B与上述图3的实施例所示,本发明可依据图9A中多个节点N(如N2至N8)的关系,即多个周边装置2(如L11至L13、L21至L23、L31)为彼此独立(无相依性)或非彼此独立(有相依性),进一步建构多个周边装置2(如L11至L13、L21至L23、L31)的执行程序DP。
例如,多个周边装置2的执行程序DP为依序执行:(1)节点N1(根节点)、(2)节点N2(子节点)的周边装置L11、(3)节点N3的周边装置L12、(4)节点N4的周边装置L13、(5)节点N3的周边装置L12、(6)节点N5的周边装置L21、(7)节点N6的周边装置L22、(8)节点N5的周边装置L21、(9)节点N7的周边装置L23、(10)节点N6的周边装置L22、(11)节点N8的周边装置L31。
图10为本发明中一数据结构的程序码一实施例示意图。如图所示,数据结构的程序码为Linux中device的数据结构的程序码,本发明可在device的数据结构的程序码32中建置“用以储存该序列化硬件的暂存器设定(序列化硬件指令)的数据结构的程序码33”,以此在device的数据结构中增加“用以储存该序列化硬件的暂存器设定(序列化硬件指令)的数据结构”。
图11为本发明中透过页面错误(page fault)处理方式监控周边装置2的暂存器21以撷取硬件的暂存器设定(硬件指令441)的一实施例示意图。如图11与上述图3的实施例所示,指令撷取模块42可为软件的监控程序码,并可透过页面错误处理方式监控一或多个暂存器21以撷取多个硬件的暂存器设定(硬件指令441)。
详言之,如图11与图3所示,当一或多个驱动程序44初始化一或多个周边装置2以对一或多个暂存器21进行存储器3的第一段映射与第二段映射时,存储器3提供一可读写的虚拟地址(第一页面46)与一不可读写的虚拟地址(第二页面47)、以及一具有第一页面46与第二页面47的映射表451。
同时,当一或多个驱动程序44以第二页面47的虚拟地址对一或多个暂存器21进行读写时(步骤S31),因第二页面47的虚拟地址为不可读写以致产生页面错误而进入一页面错误处理单元452(步骤S32),页面错误处理单元452记录一或多个暂存器21的读写的实体地址及数据内容于数据储存模块41中(步骤S33),并使驱动程序44通过第一页面46的虚拟地址真正对一或多个暂存器21进行读写(步骤S34)。指令撷取模块42可监控一或多个驱动程序44、存储器3、暂存器21与页面错误处理单元452之间的读写行为以撷取出多个硬件的暂存器设定(硬件指令441),其中读写行为可为设定行为、输入输出(I/O)行为或存取行为等。
另外,如上述图3所示,电子装置1也包括系统汇流排(见汇流排5)。指令撷取模块42'可为硬件的汇流排监控器(bus monitor),并透过系统汇流排监控一或多个暂存器21的存取行为以撷取多个硬件的暂存器设定(硬件指令441)。本发明中,汇流排5可表示系统汇流排或子汇流排。
又,如上述图3所示,电子装置1也可包括子汇流排(见汇流排5)。指令撷取模块42可为软件的监控程序码,并透过子汇流排的数据传输介面监控一或多个暂存器21以撷取多个硬件的暂存器设定(硬件指令441),其中数据传输介面可为PCI介面、USB介面或其他介面等。
图12A为本发明中具有休眠式或唤醒式开机功能的电子装置1进行非休眠回复或非唤醒冷开机的一实施例流程图,图12B为本发明图12A的步骤S44中初始化周边装置2的方法一实施例流程图。
如图12A与上述图3的实施例所示,在步骤S41中,将电子装置1进行非休眠回复或非唤醒冷开机(如第一次冷开机)。在步骤S42中,执行电子装置1的启动载入器程序。在步骤S43中,初始化操作系统4的核心40。在步骤S44中,初始化电子装置1的一或多个周边装置2,如图12B与上述图3的实施例所示,以步骤S441至步骤S444执行本发明中初始化一或多个周边装置2的方法。
例如,在步骤S441中,令电子装置13的存储器3提供或建立一数据储存模块41,如数据结构(树状结构、串接结构)或阵列(指令阵列)等。在步骤S442中,自一或多个周边装置2的驱动程序44的执行过程撷取出多个硬件的暂存器设定(硬件指令441)及其相关资讯(如硬件指令441的执行时间或指令间隔),以将多个硬件的暂存器设定(硬件指令441)及其相关资讯储存于数据储存模块41中。在步骤S443中,排序或串接数据储存模块41中多个硬件的暂存器设定(硬件指令441),以形成一序列化硬件的暂存器设定(序列化硬件指令)。
继之,可选择执行或不执行步骤S444。在步骤S444中,优化该序列化硬件的暂存器设定(序列化硬件指令)的存取顺序,以形成一优化后的序列化硬件的暂存器设定(优化后的序列化硬件指令)。此外,因本发明中初始化一或多个周边装置2的方法已详述于上述图3至图11中,故不再重复叙述。
然后,如图12A与上述图3所示,在步骤S45中,初始化应用程序。在步骤S46中,初始化完成。
图13为本发明中具有休眠式或唤醒式开机功能的电子装置1因休眠回复或唤醒再次进行冷开机的一实施例流程图。如图13与上述图3所示,在步骤S51中,电子装置1因休眠回复或唤醒再次进行冷开机。在步骤S52中,执行启动载入器程序。在步骤S53中,初始化操作系统4的核心40。
接着,在步骤S54中,以该序列化硬件的暂存器设定(序列化硬件指令)、或优化后的序列化硬件的暂存器设定(优化后的序列化硬件指令)初始化一或多个周边装置2。在步骤S55中,载入休眠档(hibernate file)。在步骤S56中,回复一或多个周边装置2。在步骤S57中,执行电子装置1的唤醒程序。
由上述内容可知,本发明的初始化周边装置的方法与使用该方法的电子装置中,主要是在电子装置的非休眠回复或非唤醒第一次冷开机以初始化一或多个周边装置时,自一或多个周边装置的驱动程序的执行过程撷取出多个硬件的暂存器设定(硬件指令)以储存于数据储存模块(如树状结构)中,并排序或串接多个硬件的暂存器设定以形成一序列化硬件的暂存器设定(序列化硬件指令),也可进一步优化该序列化硬件的暂存器设定(序列化硬件指令)以形成一优化后的序列化硬件指令(优化后的序列化硬件指令)。
本发明可简化一或多个周边装置的初始化程序,并在电子装置进行休眠回复或唤醒的再次冷开机时,仅需执行该序列化硬件的暂存器设定(序列化硬件指令)、或该优化后的序列化硬件的暂存器设定(优化后的序列化硬件指令)以初始化一或多个周边装置,从而缩短一或多个周边装置的初始化时间与电子装置的开机时间。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种电子装置,其具有休眠式或唤醒式开机功能,其特征在于,该电子装置包括:
一或多个周边装置,其具有一或多个暂存器;
存储器,其具有数据储存模块;以及
指令撷取模块,当该电子装置进行非休眠回复或非唤醒冷开机以执行该一或多个周边装置的初始化程序时,该指令撷取模块自该一或多个周边装置的驱动程序的执行过程撷取出多个硬件的暂存器设定,以将该多个硬件的暂存器设定储存于该数据储存模块中,进而排序或串接该数据储存模块中该多个硬件的暂存器设定以形成序列化硬件的暂存器设定;
其中,当该电子装置因休眠回复或唤醒再次进行冷开机以执行该一或多个周边装置的初始化程序时,通过该序列化硬件的暂存器设定初始化该一或多个周边装置。
2.如权利要求1所述的电子装置,其特征在于,该数据储存模块为数据结构或阵列,该多个硬件的暂存器设定为多个硬件指令,该序列化硬件的暂存器设定为序列化硬件指令。
3.如权利要求1所述的电子装置,其特征在于,该数据储存模块具有一或多个节点以分别代表该一或多个周边装置,该多个节点的关系表示该多个周边装置的相依性,且该一或多个节点具有一或多个缓冲区以储存该多个硬件的暂存器设定及其执行时间。
4.如权利要求1所述的电子装置,其特征在于,该指令撷取模块为软件的监控程序码,并透过页面错误处理方式监控该一或多个暂存器以撷取该多个硬件的暂存器设定。
5.如权利要求1所述的电子装置,其特征在于,还包括子汇流排,该指令撷取模块为软件的监控程序码,并透过该子汇流排的数据传输介面监控该一或多个暂存器以撷取该多个硬件的暂存器设定。
6.如权利要求1所述的电子装置,其特征在于,还包括系统汇流排,该指令撷取模块为硬件的汇流排监控器,并透过该系统汇流排监控该一或多个暂存器的存取行为以撷取该多个硬件的暂存器设定。
7.如权利要求1所述的电子装置,其特征在于,还包括优化序列模块,其依据优化演算法优化该序列化硬件的暂存器设定的存取顺序,以形成优化后的序列化硬件的暂存器设定。
8.如权利要求7所述的电子装置,其特征在于,当该电子装置因该休眠回复或唤醒再次进行冷开机以执行该一或多个周边装置的初始化程序时,通过该优化后的序列化硬件的暂存器设定初始化该一或多个周边装置。
9.一种初始化周边装置的方法,其特征在于,该方法包括下列步骤:
提供具有休眠式或唤醒式开机功能的电子装置,其中,该电子装置包括一或多个周边装置与存储器,该一或多个周边装置具有一或多个暂存器,且该存储器具有数据储存模块;
当该电子装置进行非休眠回复或非唤醒冷开机以执行该一或多个周边装置的初始化程序时,自该一或多个周边装置的驱动程序的执行过程撷取出多个硬件的暂存器设定,以将该多个硬件的暂存器设定储存于该数据储存模块中,进而排序或串接该数据储存模块中该多个硬件的暂存器设定以形成序列化硬件的暂存器设定;以及
当该电子装置因休眠回复或唤醒再次进行冷开机以执行该一或多个周边装置的初始化程序时,通过该序列化硬件的暂存器设定初始化该一或多个周边装置。
10.如权利要求9所述的方法,其特征在于,该数据储存模块为数据结构或阵列,该多个硬件的暂存器设定为多个硬件指令,该序列化硬件的暂存器设定为序列化硬件指令。
11.如权利要求9所述的方法,其特征在于,该数据储存模块具有一或多个节点以分别代表该一或多个周边装置,该多个节点的关系表示该多个周边装置的相依性,且该一或多个节点具有一或多个缓冲区以储存该多个硬件的暂存器设定及其执行时间。
12.如权利要求9所述的方法,其特征在于,还包括令软件的监控程序码透过页面错误处理方式监控该一或多个暂存器以撷取该多个硬件的暂存器设定。
13.如权利要求9所述的方法,其特征在于,还包括令软件的监控程序码透过该电子装置的子汇流排的数据传输介面监控该一或多个暂存器以撷取该多个硬件的暂存器设定。
14.如权利要求9所述的方法,其特征在于,还包括令硬件的汇流排监控器透过该电子装置的系统汇流排监控该一或多个暂存器的存取行为以撷取该多个硬件的暂存器设定。
15.如权利要求9所述的方法,其特征在于,还包括依据优化演算法优化该序列化硬件的暂存器设定的存取顺序,以形成优化后的序列化硬件的暂存器设定。
16.如权利要求15所述的方法,其特征在于,当该电子装置因该休眠回复或唤醒再次进行冷开机以执行该一或多个周边装置的初始化程序时,通过该优化后的序列化硬件的暂存器设定初始化该一或多个周边装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104141902A TWI564802B (zh) | 2015-12-14 | 2015-12-14 | 初始化週邊裝置之方法與使用此方法之電子裝置 |
TW104141902 | 2015-12-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106873954A true CN106873954A (zh) | 2017-06-20 |
CN106873954B CN106873954B (zh) | 2020-03-20 |
Family
ID=58408025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510992159.0A Active CN106873954B (zh) | 2015-12-14 | 2015-12-25 | 初始化周边装置的方法与使用此方法的电子装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170168852A1 (zh) |
JP (1) | JP6194391B2 (zh) |
CN (1) | CN106873954B (zh) |
TW (1) | TWI564802B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111221403A (zh) * | 2019-12-27 | 2020-06-02 | 中国农业大学 | 一种可调配休眠模式控制的SoC系统及方法 |
CN111813464A (zh) * | 2020-08-31 | 2020-10-23 | 新华三半导体技术有限公司 | 一种芯片配置方法、监测模块及芯片 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI662403B (zh) * | 2017-03-06 | 2019-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置開機方法 |
TWI621017B (zh) | 2017-03-06 | 2018-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
SG11202003803XA (en) * | 2017-10-31 | 2020-05-28 | Mitsubishi Heavy Industries Machinery Systems Ltd | Information processing system, information processing method, and program |
KR102281418B1 (ko) * | 2017-11-17 | 2021-07-23 | 미츠비시 쥬고 기카이 시스템 가부시키가이샤 | 정보 처리 시스템 및 정보 처리 시스템에 의한 정보 처리 방법 |
CN113127068A (zh) * | 2019-12-30 | 2021-07-16 | 瑞昱半导体股份有限公司 | 硬件设定装置及其硬件设定方法 |
CN117707627A (zh) * | 2023-05-26 | 2024-03-15 | 荣耀终端有限公司 | 一种dToF器件初始化方法及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW502825U (en) * | 1995-01-06 | 2002-09-11 | Samsung Electronics Co Ltd | Option card hibernation apparatus |
US20070061558A1 (en) * | 2005-09-15 | 2007-03-15 | Rothman Michael A | Method and apparatus for quick resumption |
US20110271086A1 (en) * | 2010-04-28 | 2011-11-03 | Gm Global Technology Operations, Inc. | Systems and methods to control multiple peripherals with a single-peripheral application code |
TW201303849A (zh) * | 2011-03-31 | 2013-01-16 | Nvidia Corp | 支援耦接至圖形控制器的自更新顯示器的方法和裝置 |
CN102929674A (zh) * | 2012-11-02 | 2013-02-13 | 威盛电子股份有限公司 | 电子装置以及开机方法 |
TW201525867A (zh) * | 2013-12-27 | 2015-07-01 | Ind Tech Res Inst | 休眠喚醒方法及電子裝置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7624260B2 (en) * | 2006-05-04 | 2009-11-24 | Qnx Software Systems Gmbh & Co. Kg | System executing a fast boot wake-up |
TWI375912B (en) * | 2008-10-17 | 2012-11-01 | Asrock Inc | Method for reducing time of booting and computer system |
KR101641241B1 (ko) * | 2010-01-13 | 2016-07-20 | 엘지전자 주식회사 | 이동단말기의 호처리 방법 |
US20130042097A1 (en) * | 2010-02-26 | 2013-02-14 | Samsung Electronics Co., Ltd. | Method of updating boot image for fast booting and image forming apparatus for performing the method |
US20130036300A1 (en) * | 2010-02-26 | 2013-02-07 | Samsung Electronics Co., Ltd | Method of fixing error of boot image for fast booting and image forming apparatus for performing the method |
US8732496B2 (en) * | 2011-03-24 | 2014-05-20 | Nvidia Corporation | Method and apparatus to support a self-refreshing display device coupled to a graphics controller |
KR101959359B1 (ko) * | 2012-11-06 | 2019-03-18 | 에이치피프린팅코리아 유한회사 | 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치 |
JP6399916B2 (ja) * | 2014-01-20 | 2018-10-03 | キヤノン株式会社 | 情報処理装置およびその制御方法 |
-
2015
- 2015-12-14 TW TW104141902A patent/TWI564802B/zh active
- 2015-12-25 CN CN201510992159.0A patent/CN106873954B/zh active Active
-
2016
- 2016-04-07 US US15/093,546 patent/US20170168852A1/en not_active Abandoned
- 2016-05-27 JP JP2016106206A patent/JP6194391B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW502825U (en) * | 1995-01-06 | 2002-09-11 | Samsung Electronics Co Ltd | Option card hibernation apparatus |
US20070061558A1 (en) * | 2005-09-15 | 2007-03-15 | Rothman Michael A | Method and apparatus for quick resumption |
US20110271086A1 (en) * | 2010-04-28 | 2011-11-03 | Gm Global Technology Operations, Inc. | Systems and methods to control multiple peripherals with a single-peripheral application code |
TW201303849A (zh) * | 2011-03-31 | 2013-01-16 | Nvidia Corp | 支援耦接至圖形控制器的自更新顯示器的方法和裝置 |
CN102929674A (zh) * | 2012-11-02 | 2013-02-13 | 威盛电子股份有限公司 | 电子装置以及开机方法 |
TW201525867A (zh) * | 2013-12-27 | 2015-07-01 | Ind Tech Res Inst | 休眠喚醒方法及電子裝置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111221403A (zh) * | 2019-12-27 | 2020-06-02 | 中国农业大学 | 一种可调配休眠模式控制的SoC系统及方法 |
CN111221403B (zh) * | 2019-12-27 | 2021-05-04 | 中国农业大学 | 一种可调配休眠模式控制的SoC系统及方法 |
CN111813464A (zh) * | 2020-08-31 | 2020-10-23 | 新华三半导体技术有限公司 | 一种芯片配置方法、监测模块及芯片 |
Also Published As
Publication number | Publication date |
---|---|
JP6194391B2 (ja) | 2017-09-06 |
JP2017111788A (ja) | 2017-06-22 |
TW201721414A (zh) | 2017-06-16 |
TWI564802B (zh) | 2017-01-01 |
US20170168852A1 (en) | 2017-06-15 |
CN106873954B (zh) | 2020-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106873954A (zh) | 初始化周边装置的方法与使用此方法的电子装置 | |
CN1890640B (zh) | 高效的系统管理同步方法和系统 | |
US9317299B2 (en) | Method and device for cold starting android mobile terminal | |
CN112083791B (zh) | 芯片功耗优化方法、装置、计算机设备和存储介质 | |
EP2851807A1 (en) | Method and system for supporting resource isolation under multi-core architecture | |
KR20080077657A (ko) | 마이크로컨트롤러 기반 플래시 메모리 디지털 제어기시스템 | |
US20090217026A1 (en) | Method for changing power states of a computer | |
US9477409B2 (en) | Accelerating boot time zeroing of memory based on non-volatile memory (NVM) technology | |
CN103902013B (zh) | 存储器控制装置及方法 | |
US9335944B2 (en) | In-place change between transient and persistent state for data structures on non-volatile memory | |
CN103810112A (zh) | 一种非易失性内存系统及其管理方法 | |
TWI564810B (zh) | 多核心處理器之晶粒內差異特性化技術 | |
JP6276470B2 (ja) | ポータブルコンピューティングデバイスの揮発性メモリのスタンバイ電力を低減するためのシステムおよび方法 | |
US20120254542A1 (en) | Gather cache architecture | |
US9606913B2 (en) | Electronic circuit for and method of executing an application program stored in a one-time-programmable (OTP) memory in a system on chip (SoC) | |
CN106249840A (zh) | 节能非易失性微处理器 | |
CN104798058B (zh) | 功率状态转换期间高效存储/恢复状态信息的方法及设备 | |
CN110119363A (zh) | 零功率状态下的低延迟引导 | |
CN108427584A (zh) | 快速启动的具有并行计算核的芯片及该芯片的配置方法 | |
CN102855162B (zh) | 一种数据更新方法、数据更新系统及存储器 | |
EP3945424B1 (en) | Memory power management method and processor system | |
CN105843641A (zh) | 一种终端热启动方法和装置 | |
CN113190473B (zh) | 基于能量收集非易失性处理器的缓存数据管理方法、介质 | |
TW200933385A (en) | Microcontroller having dual-core architecture | |
CN104268005B (zh) | 虚拟机唤醒方法和装置 |
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 |