CN106445470B - 芯片中的配置寄存器的初始化方法和初始化装置 - Google Patents
芯片中的配置寄存器的初始化方法和初始化装置 Download PDFInfo
- Publication number
- CN106445470B CN106445470B CN201610873583.8A CN201610873583A CN106445470B CN 106445470 B CN106445470 B CN 106445470B CN 201610873583 A CN201610873583 A CN 201610873583A CN 106445470 B CN106445470 B CN 106445470B
- Authority
- CN
- China
- Prior art keywords
- configuration register
- controller
- chip
- initialization
- flash
- 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.)
- Active
Links
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
Abstract
一种芯片中的配置寄存器的初始化方法和初始化装置,所述初始化方法包括:将用于初始化所述配置寄存器的初始化数据预先存储在闪存中;在所述芯片启动时,利用闪存控制器从闪存中读取所述初始化数据;以及由所述闪存控制器利用所述初始化数据来初始化所述配置寄存器。通过将初始化数据预先存储在闪存中并利用闪存控制器取代芯片的主控单元来进行配置寄存器的初始化,提高了初始化速度,节省了存储空间,并且每当更改配置寄存器的值时,修改闪存中的初始化数据即可,无需修改配置寄存器初始化程序,提高了灵活性。
Description
技术领域
本公开涉及芯片初始化,具体涉及芯片中的配置寄存器的初始化方法和初始化装置。
背景技术
现代的芯片的功能越来越复杂,相应的需要越来越多的配置寄存器。一个芯片中含有数以千计的配置寄存器已经很常见。在芯片设计好之后,众多配置寄存器的默认值不能适应所有的产品,需要根据不同的产品来更改一些配置寄存器的值,或者在芯片的调试过程中,需要调整配置寄存器的值。以上对于配置寄存器的值的更改,通常称作配置寄存器的初始化。
通常,配置寄存器初始化是由芯片的主控单元(例如微控制单元(Microcontroller Unit,MCU))通过执行配置寄存器初始化程序更改配置寄存器的值来完成的。然而由于主控单元需要时间获取配置寄存器初始化程序、配置寄存器的地址和数值等初始化信息,然后再耗费时间写入配置寄存器,导致初始化速度慢。
发明内容
有鉴于此,本公开提供了一种芯片中的配置寄存器的初始化方法和初始化装置,通过将初始化数据预先存储在闪存中并利用闪存控制器取代芯片的主控单元来进行配置寄存器的初始化,提高了初始化速度。
根据本公开的一方面,提供了一种芯片中的配置寄存器的初始化方法,包括:将用于初始化所述配置寄存器的初始化数据预先存储在闪存中;在所述芯片启动时,利用闪存控制器从闪存中读取所述初始化数据;由所述闪存控制器利用所述初始化数据来初始化所述配置寄存器。
在一些实施例中,所述初始化方法还包括:在利用闪存控制器从闪存中读取用于初始化所述配置寄存器的初始化数据之前,选择所述闪存控制器作为用于初始化所述配置寄存器的控制器。
在一些实施例中,所述初始化方法还包括:在由所述闪存控制器利用所述初始化数据来初始化所述配置寄存器之后,选择所述芯片的主控单元作为用于配置所述配置寄存器的控制器。
在一些实施例中,所述选择所述闪存控制器作为用于初始化所述配置寄存器的控制器包括:选择所述闪存控制器作为芯片内部总线的主控制器;并且所述选择所述芯片的主控单元作为用于配置所述配置寄存器的控制器包括:选择所述芯片的主控单元作为芯片内部总线的主控制器。
在一些实施例中,所述闪存控制器为所述芯片中配备的闪存控制器。
在一些实施例中,所述闪存为所述芯片的内置或外置闪存。
在一些实施例中,所述用于初始化所述配置寄存器的初始化数据包括所述配置寄存器的地址、数值、位宽、位置和数据量中的一个或多个。
根据本公开的另一方面,提供了一种芯片中的配置寄存器的初始化装置,包括:闪存,用于预先存储用于初始化所述配置寄存器的初始化数据;闪存控制器,用于在所述芯片启动时,从闪存中读取所述初始化数据,并利用所述初始化数据来初始化所述配置寄存器。
在一些实施例中,所述初始化装置还包括:选择单元,连接在闪存控制器和所述芯片的主控单元与所述配置寄存器之间,用于选择所述芯片的主控单元和所述闪存控制器之一作为用于初始化配置寄存器的控制器;并且所述闪存控制器包括:选择控制模块,用于在所述芯片启动时,控制选择单元选择所述闪存控制器作为用于初始化配置寄存器的控制器,并使能初始化模块;初始化模块,用于从闪存中读取所述初始化数据并将所读取的初始化数据写入所述配置寄存器。
在一些实施例中,所述选择控制模块还用于在所述初始化模块将所读取的初始化数据写入所述配置寄存器之后,控制选择单元选择所述芯片的主控单元作为用于初始化配置寄存器的控制器。
在一些实施例中,所述闪存控制器为所述芯片中配备的闪存控制器。
在一些实施例中,所述选择单元为所述芯片中配备的选择器或附加的选择器。
在一些实施例中,所述闪存为所述芯片的内置或外置闪存。
在一些实施例中,所述用于初始化所述配置寄存器的初始化数据包括所述配置寄存器的地址、数值、位宽、位置和数据量中的一个或多个。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单介绍,显而易见地,下面的描述中的附图仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了根据本公开的实施例的芯片中的配置寄存器的初始化装置100的框图。
图2示出了根据本公开的实施例的芯片中的配置寄存器的初始化装置200的框图。
图3示出了图2中的闪存控制器的结构图。
图4示出了根据本公开的实施例的芯片中的配置寄存器的初始化方法400的流程图。
图5示出了根据本公开示例的芯片的框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整的描述。显然所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开提供了一种芯片中的配置寄存器的初始化方法和初始化装置,通过将初始化数据预先存储在闪存(FLASH)中并利用闪存控制器取代芯片的主控单元来进行配置寄存器的初始化,无需存储和执行配置寄存器初始化程序,节省了初始化配置时间,并且节省了存储空间。另外,每当更改配置寄存器的值时,修改闪存中的初始化数据即可,无需修改配置寄存器初始化程序,提高了灵活性。
图1示出了根据本公开的实施例的芯片中的配置寄存器的初始化装置100的框图。如图1所示,芯片中可以包括配置寄存器1,2,…,N,其中N为大于等于1的整数。初始化装置100包括闪存101和闪存控制器102。
闪存101用于预先存储用于初始化配置寄存器1,2,…,N的初始化数据。闪存101可以为芯片的内置或外置闪存。初始化数据可以包括例如配置寄存器1,2,…,N的地址、数值、位宽、位置和数据量中的一个或多个。
闪存控制器102用于在芯片启动时从闪存101中读取所述初始化数据,并利用所述初始化数据来初始化配置寄存器1,2,…,N。作为示例,闪存控制器102可以为所述芯片中配备的闪存控制器。例如,闪存控制器102可以在芯片启动时从闪存101读取每个配置寄存器1,2,…,N的地址、数值、位宽、位置和数据量中的一项或多项并通过总线(BUS)协议写入对应的配置寄存器1,2,…,N中。
图2示出了根据本公开的实施例的芯片中的配置寄存器的初始化装置200的框图。如图2所示,芯片中可以包括主控单元10以及配置寄存器1,2,…,N,其中N为大于等于1的整数。初始化装置200包括闪存201、闪存控制器202和选择单元203。
主控单元10可以由MCU来实现。
闪存201用于预先存储用于初始化配置寄存器1,2,…,N的初始化数据。闪存101可以为芯片的内置或外置闪存。初始化数据可以包括例如配置寄存器1,2,…,N的地址、数值、位宽、位置和数据量中的一个或多个。
选择单元203连接在闪存控制器202和所述芯片的主控单元10与所述配置寄存器1,2,…,N之间,用于选择芯片的主控单元10和闪存控制器202之一作为配置寄存器1,2,…,N的控制器,例如,作为芯片内部总线的主控制器。作为示例,选择单元203可以为芯片中配备的选择器。作为另一示例,选择单元203可以为附加的选择器。选择器可以由逻辑电路来实现。
闪存控制器202可以为芯片中配备的闪存控制器,用于在芯片启动时控制选择单元203选择闪存控制器202作为用于初始化配置寄存器1,2,…,N的控制器(例如选择闪存控制器202作为芯片内部总线的主控制器以便初始化配置寄存器1,2,…,N),从闪存201中读取配置寄存器1,2,…,N的初始化数据,利用所述初始化数据来初始化配置寄存器1,2,…,N,并在初始化完成之后控制选择单元203选择芯片的主控单元10作为用于配置所述配置寄存器1,2,…,N的控制器(例如选择主控单元10作为芯片内部总线的主控制器以便配置所述配置寄存器1,2,…,N)。对配置寄存器1,2,…,N进行配置包括但不限于设置、更改和/或清除配置寄存器的数值。
图3示出了图2的闪存控制器202的结构图。如图3所示,闪存控制器202可以包括选择控制模块2021和初始化模块2022。
选择控制模块2021用于在芯片启动时控制选择单元203选择闪存控制器202作为芯片内部总线的主控制器并使能初始化模块2022,以及在初始化模块2022将初始化数据写入配置寄存器1,2,…,N之后控制选择单元203选择芯片的主控单元10作为芯片内部总线的主控制器。作为示例,选择控制模块2021可以通过改变用于控制选择单元选择主控制器的信号,来使主控单元或者闪存控制器202成为芯片内部总线的主控制器。
初始化模块2022用于从闪存201中读取配置寄存器1,2,…,N的初始化数据,例如读取每个配置寄存器1,2,…,N的地址、数值、位宽、位置和数据量中的一项或多项),并将所读取的初始化数据例如通过总线(BUS)协议写入相应的配置寄存器1,2,…,N。
图4示出了根据本公开的实施例的芯片中的配置寄存器的初始化方法400的流程图,其中所述芯片可以包括主控单元和一个或多个配置寄存器,例如,如图1和2所示。
在步骤S401,将用于初始化配置寄存器的初始化数据预先存储在闪存中。闪存可以为芯片的内置或外置闪存。初始化数据可以包括配置寄存器的地址、数值、位宽、位置和数据量中的一个或多个。
在步骤S402,芯片启动。
在步骤S403,选择所述闪存控制器作为用于初始化所述配置寄存器的控制器。例如,可以如图1和2所示,在闪存控制器和芯片的主控单元与配置寄存器之间连接一个选择单元,闪存控制器控制选择单元来选择闪存控制器和主控单元之一作为用于初始化配置寄存器的控制器,例如作为芯片内部总线的主控制器。闪存控制器可以为芯片中配备的闪存控制器。
在步骤S404,利用闪存控制器从闪存中读取配置寄存器的初始化数据并写入相应的配置寄存器,例如可以读取每个配置寄存器的地址、数值、位宽、位置和数据量中的一项或多项并通过总线协议写入相应的配置寄存器。读取和写入操作可以是并行进行的。
在步骤S405,选择所述芯片的主控单元作为用于配置所述配置寄存器的控制器。如步骤S403中描述的,可以由闪存控制器来控制选择单元选择所述主控单元作为芯片内部总线的主控制器,从而由主控制器来对配置寄存器进行配置,例如可以设置、更改和/或清除配置寄存器的数值。当然主控单元还可以执行除了上述配置以外的其他操作。这样,在利用闪存控制器完成配置寄存器的初始化之后,将芯片的主控单元切换回来,从而不影响芯片的其他操作。
图5示出了根据本公开示例的芯片500的框图。
如图5所示,芯片500包括主控单元501、配置寄存器1,2,…,N、闪存502、闪存控制器503和选择单元504,其中N为大于等于1的整数。
主控单元501可以由MCU来实现。
配置寄存器1,2,…,N与选择单元504相连。
闪存502用于预先存储用于初始化配置寄存器1,2,…,N的初始化数据。闪存502可以为芯片500的内置或外置闪存。初始化数据可以包括例如配置寄存器1,2,…,N的地址、数值、位宽、位置和数据量中的一个或多个。
选择单元504一端连接到主控单元501和闪存控制器503,另一端连接到配置寄存器1,2,…,N,用于选择主控单元501和闪存控制器503之一作为配置寄存器1,2,…,N的控制器,例如,作为芯片500的内部总线的主控制器。选择单元504可以为选择器,其可以由逻辑电路来实现。
闪存控制器503用于在芯片500启动时控制选择单元504选择闪存控制器503作为用于初始化配置寄存器1,2,…,N的控制器(例如选择闪存控制器503作为芯片500的内部总线的主控制器以便初始化配置寄存器1,2,…,N),从闪存502中读取配置寄存器1,2,…,N的初始化数据,利用所述初始化数据来初始化配置寄存器1,2,…,N,并在初始化完成之后控制选择单元504选择主控单元501作为用于配置所述配置寄存器1,2,…,N的控制器(例如选择主控单元501作为芯片500的内部总线的主控制器以便配置所述配置寄存器1,2,…,N)。
本公开的实施例通过将初始化数据预先存储在闪存(FLASH)中并利用闪存控制器取代芯片的主控单元来进行配置寄存器的初始化,无需存储和执行配置寄存器初始化程序,节省了初始化配置时间,并且节省了存储空间。
另外,本公开的实施例在更改配置寄存器的值时,修改闪存中的初始化数据即可,无需修改配置寄存器初始化程序,提高了灵活性。
以上所述仅为本公开的优选实施例,并不用于限制本公开,对于本领域技术人员而言,本公开可以有各种改动和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (12)
1.一种芯片中的配置寄存器的初始化方法,包括:
将用于初始化所述配置寄存器的初始化数据预先存储在闪存中;
提供用于选择所述配置寄存器的控制器的信号;
在所述芯片启动时,根据所述信号选择所述闪存控制器作为用于初始化所述配置寄存器的控制器,所述闪存控制器从闪存中读取所述初始化数据,并将所述初始化数据写入所述配置寄存器以实现所述配置寄存器的初始化;
在所述配置寄存器被初始化之后,根据所述信号选择所述芯片的主控单元作为用于配置所述配置寄存器的控制器。
2.根据权利要求1所述的初始化方法,其中,
所述选择所述闪存控制器作为用于初始化所述配置寄存器的控制器包括:选择所述闪存控制器作为芯片内部总线的主控制器。
3.根据权利要求1所述的初始化方法,其中,
所述选择所述芯片的主控单元作为用于配置所述配置寄存器的控制器包括:选择所述芯片的主控单元作为芯片内部总线的主控制器。
4.根据权利要求1所述的初始化方法,其中,所述闪存控制器为所述芯片中配备的闪存控制器。
5.根据权利要求1所述的初始化方法,其中,所述闪存为所述芯片的内置或外置闪存。
6.根据权利要求1至5中任一项权利要求所述的初始化方法,其中,所述用于初始化所述配置寄存器的初始化数据包括所述配置寄存器的地址、数值、位宽、位置和数据量中的一个或多个。
7.一种芯片中的配置寄存器的初始化装置,包括:
闪存,用于预先存储用于初始化所述配置寄存器的初始化数据;
闪存控制器,提供用于选择所述配置寄存器的控制器的信号;以及
选择单元,连接在闪存控制器和所述芯片的主控单元与所述配置寄存器之间,用于根据所述信号选择所述芯片的主控单元和所述闪存控制器之一作为所述配置寄存器的控制器,
在所述芯片启动时,所述选择单元根据所述信号选择所述闪存控制器作为初始化所述配置寄存器的控制器,所述闪存控制器从闪存中读取所述初始化数据,并将所述初始化数据写入所述配置寄存器以完成所述配置寄存器的初始化,
在所述配置寄存器被初始化之后,所述选择单元根据所述信号选择所述主控单元作为用于配置所述配置寄存器的控制器。
8.根据权利要求7所述的初始化装置,所述闪存控制器包括:
选择控制模块,用于在所述芯片启动时,控制选择单元选择所述闪存控制器作为用于初始化配置寄存器的控制器,并使能初始化模块;
初始化模块,用于从闪存中读取所述初始化数据并将所读取的初始化数据写入所述配置寄存器。
9.根据权利要求7所述的初始化装置,其中,所述闪存控制器为所述芯片中配备的闪存控制器。
10.根据权利要求7所述的初始化装置,其中,所述选择单元为所述芯片中配备的选择器或附加的选择器。
11.根据权利要求7所述的初始化装置,其中,所述闪存为所述芯片的内置或外置闪存。
12.根据权利要求7至11中任一项权利要求所述的初始化装置,其中,所述用于初始化所述配置寄存器的初始化数据包括所述配置寄存器的地址、数值、位宽、位置和数据量中的一个或多个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610873583.8A CN106445470B (zh) | 2016-09-30 | 2016-09-30 | 芯片中的配置寄存器的初始化方法和初始化装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610873583.8A CN106445470B (zh) | 2016-09-30 | 2016-09-30 | 芯片中的配置寄存器的初始化方法和初始化装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106445470A CN106445470A (zh) | 2017-02-22 |
CN106445470B true CN106445470B (zh) | 2019-05-31 |
Family
ID=58171564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610873583.8A Active CN106445470B (zh) | 2016-09-30 | 2016-09-30 | 芯片中的配置寄存器的初始化方法和初始化装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106445470B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109712653B (zh) * | 2018-02-27 | 2021-08-31 | 上海安路信息科技股份有限公司 | 芯片初始化方法 |
CN109597654B (zh) * | 2018-12-07 | 2022-01-11 | 湖南国科微电子股份有限公司 | 寄存器初始化方法、基础配置表的生成方法及嵌入式系统 |
CN110187919B (zh) * | 2019-05-27 | 2021-07-20 | 眸芯科技(上海)有限公司 | 配置寄存器的装置、方法及系统 |
CN110609706B (zh) * | 2019-06-13 | 2022-02-22 | 眸芯科技(上海)有限公司 | 配置寄存器的方法及应用 |
CN111813464B (zh) * | 2020-08-31 | 2020-12-11 | 新华三半导体技术有限公司 | 一种芯片配置方法、监测模块及芯片 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6407960B1 (en) * | 2000-09-01 | 2002-06-18 | Advanced Micro Devices | Arrangement for programming selected device registers during initialization from an external memory |
CN202049472U (zh) * | 2010-11-04 | 2011-11-23 | 北京昆腾微电子有限公司 | 芯片配置装置、芯片配置系统和芯片 |
CN103257612A (zh) * | 2012-02-21 | 2013-08-21 | 京微雅格(北京)科技有限公司 | 一种灵活配置的fpga芯片及其配置方法 |
CN103810051A (zh) * | 2012-11-07 | 2014-05-21 | 重庆重邮信科通信技术有限公司 | 一种看门狗异常恢复装置及方法 |
CN104679547A (zh) * | 2013-12-02 | 2015-06-03 | 北京兆易创新科技股份有限公司 | 一种mcu中的系统配置信息的读取方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW546586B (en) * | 2001-11-14 | 2003-08-11 | Via Tech Inc | Personal computer peripheral device and initialization method thereof |
-
2016
- 2016-09-30 CN CN201610873583.8A patent/CN106445470B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6407960B1 (en) * | 2000-09-01 | 2002-06-18 | Advanced Micro Devices | Arrangement for programming selected device registers during initialization from an external memory |
CN202049472U (zh) * | 2010-11-04 | 2011-11-23 | 北京昆腾微电子有限公司 | 芯片配置装置、芯片配置系统和芯片 |
CN103257612A (zh) * | 2012-02-21 | 2013-08-21 | 京微雅格(北京)科技有限公司 | 一种灵活配置的fpga芯片及其配置方法 |
CN103810051A (zh) * | 2012-11-07 | 2014-05-21 | 重庆重邮信科通信技术有限公司 | 一种看门狗异常恢复装置及方法 |
CN104679547A (zh) * | 2013-12-02 | 2015-06-03 | 北京兆易创新科技股份有限公司 | 一种mcu中的系统配置信息的读取方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106445470A (zh) | 2017-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106445470B (zh) | 芯片中的配置寄存器的初始化方法和初始化装置 | |
JP5635521B2 (ja) | シリアルポートメモリ通信の待ち時間および信頼性を改善するための方法およびシステム | |
CN108701081A (zh) | 用于同时存取非易失性存储器的多个分区的设备和方法 | |
US11099626B2 (en) | Apparatuses and methods of entering unselected memories into a different power mode during multi-memory operation | |
GB2396711A (en) | Memory controller with programmable timing and control registers for data transfers which have a distinct sequence of phases. | |
CN101236774B (zh) | 单端口存储器实现多端口存储功能的装置和方法 | |
CN105790830B (zh) | 光模块在位检测方法和装置 | |
CN103903651A (zh) | 双线串行端口内建自测电路及其通讯方法 | |
US9761296B2 (en) | Smart in-module refresh for DRAM | |
US10521387B2 (en) | NAND switch | |
US11586384B2 (en) | Overhead reduction in data transfer protocol for data storage devices | |
CN106133838B (zh) | 一种可扩展可配置的fpga存储结构和fpga器件 | |
CN111694513A (zh) | 包括循环指令存储器队列的存储器器件和方法 | |
CN106547716B (zh) | 一种面向低管脚数的扩展总线配置系统及方法 | |
US7921256B2 (en) | Memory module and memory module system | |
CN107123438B (zh) | 模拟多端口方法及模拟多端口记忆体 | |
US10074436B1 (en) | Memory device and data reading method thereof | |
CN113434439B (zh) | 一种基于模拟i2c接口的数据连续写入方法及系统 | |
CN112612608B (zh) | 一种内存训练的方法及系统 | |
CN104077080A (zh) | 存储器存取方法、存储器存取控制方法、spi闪存装置及其控制器 | |
JP6493044B2 (ja) | マルチプロセッサシステム | |
US9627014B2 (en) | Multiple port shared memory | |
TWI663513B (zh) | 具有彈性資料傳輸介面的記憶體裝置與其方法 | |
US11609861B1 (en) | Method and apparatus for efficient address decoding and address usage reduction | |
JP2014149669A (ja) | 半導体記憶装置 |
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 |