CN104932876B - 半导体装置及读取指令的控制方法 - Google Patents
半导体装置及读取指令的控制方法 Download PDFInfo
- Publication number
- CN104932876B CN104932876B CN201510121696.8A CN201510121696A CN104932876B CN 104932876 B CN104932876 B CN 104932876B CN 201510121696 A CN201510121696 A CN 201510121696A CN 104932876 B CN104932876 B CN 104932876B
- Authority
- CN
- China
- Prior art keywords
- instruction
- flash memories
- value
- cpu
- program counter
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Advance Control (AREA)
- Memory System (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Microcomputers (AREA)
Abstract
本发明提供半导体装置及读取指令的控制方法。改善在包括储存了指令组的闪存器的系统级封装型半导体装置中的指令的读取速度。所述半导体装置具备:CPU;第一闪存器,存储通过上述CPU而执行的第一指令组;第二闪存器,存储根据在上述第一指令组中包含的预定的控制指令而执行的第二指令组,在利用上述CPU执行指令之前,判断从上述第一闪存器读取的指令是否为分支指令,并在判断为是该分支指令的情况下,指示为使上述第二闪存器利用该分支指令所示的分支目标地址值而进行读取动作,在按照该指示而使上述第二闪存器处于能够进行读取动作的状态的期间,在上述CPU的程序计数器的值与上述分支目标地址值一致的情况下,开始从上述第二闪存器读取上述第二指令组。
Description
技术领域
本发明涉及一种半导体装置及读取指令的控制方法,特别涉及一种使用可改写的非挥发性存储器的系统级封装型半导体装置及在该半导体装置中的指令读取控制方法。
背景技术
近年来,在电子电路系统中搭载有多个可改写的非挥发性存储器(闪存器)。闪存器主要有NAND型和NOR型。通常来说,NAND型闪存器容量大,因此,单位比特的成本低,所以适用于处理大容量数据,但需要控制器和/或映射用RAM,电路构成容易变得复杂。另一方面,NOR型闪存器容量小,速度较低,但由于电路构成简单,所以适用于储存程序代码(指令代码)和/或固件,因此,还提供有被称为XiP(eXecute-in-Place,芯片内执行)的规格。
并且,NOR型闪存器有并行型和串行型,NOR型串行闪存器的引脚数少,能够削减芯片面积,因此能够节约基板贴装的成本,所以期待今后主要用于与CPU混载的系统级封装(SIP)。
此外,提高电子电路系统的运行速度是常态化的需求,提出了各种用于提高运行速度的技术。
下述专利文献1公开了一种用于削减启动信息处理装置中的OS等程序的处理所需要的时间的技术。具体来说,专利文献1公开了一种具有两个处理器的信息处理装置,其中,第一处理器执行用于使第二处理器能够从DRAM读取并执行关于OS的指令组的准备处理(例如保存在DRAM中的内核映像的整合性检查),另一方面,第二处理器与第一处理器执行的准备处理在时间上并行而从闪存器读取并执行关于OS的指令组,并且第二处理器根据准备处理的完成,将关于OS的指令组的获取处从闪存器切换为DRAM并继续执行OS。
现有技术文献
专利文献
专利文献1:日本特开第2010-146142号公报
发明内容
技术问题
在专利文献1所公开的现有的信息处理装置中,为了存储关于OS的指令组而使用DRAM,所以必须考虑与设置于该DRAM的多个引脚对应的布线而进行设计,很难实现芯片的小面积化。也就是说,像专利文献1那样的信息处理装置是基于以下的系统策略而被设计的,即,随着OS的高功能化,配合内核图像的尺寸增大而可以使用作为容量大且高速的存储器的DRAM,因此不适于无法使用DRAM的系统环境和/或对芯片贴装面积的削减具有强烈要求的系统环境。
另一方面,对于NOR型闪存器,从其特性考虑,出于在要求高可靠性的系统环境中储存指令代码为目的而使用的情况较多,因此寻求进一步提高读取速度的技术。关于这点,NOR型串行闪存器的I/O引脚数少,期待作为对削减芯片面积能够做出巨大贡献的内存器,但由于读取速度比其它闪存器慢,因此在搭载于系统级封装型半导体装置的情况下,读取速度成为瓶颈。特别是,在CPU从NOR型串行闪存器中读取有关分支的指令并准备执行的情况下,在构造上,直到NOR型串行闪存器做好读取准备为止,CPU承受负载,因此具有CPU的性能降低的问题。即,在NOR型串行闪存器中,在读取的地址具有连续性的情况下,能够比较高速地读取数据,但在读取的地址不具有连续性(例如由分支指令和/或跳转指令等导致的地址跳转)的情况下,在从指定地址到读取数据为止的处理中产生系统开销,在这段期间,存在等待CPU执行的缺陷。
因此,本发明的目的在于提供一种改善在包含储存了指令代码的闪存器的系统级封装型半导体装置中的指令读取速度的体系结构。
具体来说,本发明的目的在于提供以下的体系结构。即,在包含储存有指令代码的NOR型串行闪存器的系统级封装型半导体装置中,即使在CPU读取有关分支的指令并执行的情况下,也不使CPU过度等待,实现CPU的有效的执行。
技术方案
用于解决上述问题的本发明包括以下所示的发明特定事项或技术特征而构成。
即,基于上述观点的本发明为一种半导体装置,具备:CPU;第一闪存器,存储通过上述CPU而执行的第一指令组;第二闪存器,存储根据在上述第一指令组中包含的预定的控制指令而执行的第二指令组。上述半导体装置在通过上述CPU执行指令之前,判断从上述第一闪存器读取的指令是否为分支指令,且在判断为是该分支指令的情况下,指示为使上述第二闪存器利用该分支指令所表示的分支目标地址值而执行读取动作。并且,上述半导体装置在按照该指示而使上述第二闪存器处于能够进行读取动作的状态的期间,在上述CPU的程序计数器的值与上述分支目标地址值一致的情况下,开始从上述第二闪存器读取上述第二指令组。
据此,即使在读取的地址不具有连续性的情况下,通过预先使与读取数据的闪存器不同的闪存器处于能够读取的状态,从而能够减少CPU的等待时间,能够高效地利用CPU。
并且,基于上述观点的本发明为一种半导体装置,具备:第一闪存器,存储第一指令组;第二闪存器,存储根据在上述第一指令组中包含的预定的控制指令而执行的第二指令组;访问控制部,控制对上述第一闪存器以及上述第二闪存器的访问;存储器接口,选择上述第一闪存器以及上述第二闪存器中的任一个闪存器,将从该选择后的闪存器中依次读取的指令提供给CPU,其中包括判断该指令是否为第一控制指令,且在判断为该指令是第一控制指令时获取该第一控制指令所表示的第一跳转目标地址值的分支指令检测部;程序计数器监视部,将CPU的程序计数器的值与由上述分支指令检测部获取的第一跳转目标地址值进行比较,在该比较结果是上述程序计数器的值与上述第一跳转目标地址值一致的情况下,输出第一触发信号。上述访问控制部控制为根据由上述分支指令检测部获取的第一跳转目标地址值而使上述第二闪存器处于能够读取的状态,上述存储器接口基于从上述程序计数器监视部输出的上述第一触发信号选择上述第二闪存器。
上述程序计数器监视部在上述程序计数器的值被改写为预定的增加值以外的值的情况下,对上述程序计数器的值与上述第一跳转目标地址值进行比较。
并且,上述程序计数器监视部具备储存上述获取的第一跳转目标地址值的寄存器。
并且,上述程序计数器监视部在上述程序计数器的值被改写为预定的增加值以外的值、且上述寄存器的内容为控制(Null)的情况下控制为使上述CPU变成保持(HOLD)状态。
并且,上述程序计数器监视部在根据通过上述CPU解码的指令而使上述第二闪存器成为能够读取的状态的情况下控制为解除上述CPU的保持(HOLD)状态。
并且,上述访问控制部在上述第二闪存器成为能够读取的状态的情况下控制为直到接收上述第一触发信号为止,使上述第二闪存器处于空闲状态。
并且,上述分支指令检测部在从上述第二闪存器正读取指令组的情况下,判断该指令是否为第二指令,当判断该指令为第二指令时,获取该第二指令所表示的第二跳转目标地址值。并且,上述访问控制部根据通过上述分支指令检测部获取的第二跳转目标地址值控制为使上述第一闪存器成为能够读取的状态。并且,上述程序计数器监视部对上述程序计数器的值与通过上述分支指令检测部获取的第二跳转目标地址值进行比较,在该比较的结果是上述程序计数器的值与上述第二跳转目标地址值一致时,输出第二触发信号。并且,上述存储器接口基于从上述程序计数器监视部输出的上述第二触发信号选择上述第一闪存器。
并且,上述半导体装置还具备中断控制器,从外部的外围电路以及外围设备的至少一个中接收中断请求信号而对上述CPU执行中断。上述中断控制器基于上述中断请求信号,获取基于该中断的中断跳转目标地址值。并且,上述访问控制部根据通过上述中断控制器获取的中断跳转目标地址值控制为使上述第二闪存器成为能够读取的状态。并且,上述程序计数器监视部对上述程序计数器的值与通过上述中断控制器获取的中断跳转目标地址值进行比较,在该比较的结果是上述程序计数器的值与上述中断跳转目标地址值一致的情况下,输出上述第一触发信号。并且,上述存储器接口基于从上述程序计数器监视部输出的上述第一触发信号选择上述第二闪存器。
其中,上述第一闪存器以及上述第二闪存器均为NOR型串行闪存器。
并且,基于上述观点的本发明为一种在以下半导体装置中的指令读取控制方法。所述半导体装置具备:CPU;第一闪存器,存储通过上述CPU而执行的第一指令组;第二闪存器,存储根据在上述第一指令组中包含的预定的控制指令而执行的第二指令组。所述指令读取控制方法包括:选择性地控制上述第一闪存器,依次读取上述第一指令组,并提供给上述CPU;在读取上述第一指令组的期间,从上述第一指令组中检测预定的控制命令;在检测到上述预定的控制指令的情况下,获取该预定的控制指令所表示的跳转目标地址值;根据上述获取的跳转目标地址值进行控制为使上述第二闪存器成为能够读取的状态;在获取了上述跳转目标地址值的情况下,监视上述CPU的程序计数器,判断上述程序计数器的值与上述跳转目标地址值是否一致;在判断为上述程序计数器的值与上述跳转目标地址值一致的情况下,输出预定的触发信号;基于上述输出的预定的触发信号,将应该向上述CPU提供的指令的读取从上述第一闪存器切换为处于上述能够读取的状态的第二闪存器。
发明效果
根据本发明,能够改善在包含储存有指令代码的闪存器的系统级封装型半导体装置中的指令的读取速度。
具体来说,根据本发明,在包含储存有指令代码的NOR型串行闪存器的系统级封装型半导体装置中,即使在CPU读取有关分支的指令并执行的情况下,也不会使CPU过度等待,能够实现CPU的有效的执行。
本发明的其它技术特征、目的以及作用效果或者优点通过参照附图而说明的以下实施方式会变得更加明确。
附图说明
图1是用于说明本发明的一个实施方式的半导体装置的简要构成的框图。
图2是示意性地说明本发明的一个实施方式的半导体装置的存储器模块中储存的指令组的图。
图3是表示本发明的一个实施方式的半导体装置的功能构成的一例的框图。
图4是用于说明本发明的一个实施方式的半导体装置的存储器I/F的运行的流程图。
图5是用于说明本发明的一个实施方式的半导体装置的程序计数器监视部的操作的流程图。
图6是表示说明本发明的一个实施方式的半导体装置的切换操作的一例的时序图的一例的图。
符号说明
100:半导体装置
110:CPU
111:运算电路
112:指令寄存器
113:解码器
114:通用寄存器
115:程序计数器
120:存储器模块
120A:第一闪存器
120B:第二闪存器
130:存储器接口
131:切换控制部
132:分支指令检测部
140:访问控制部
150:程序计数器监视部
160:中断控制部
具体实施方式
以下,参照附图对本发明的实施方式进行说明。但以下说明的实施方式终究只是示例,并无意排除以下未明示的各种变形和/或技术的适用。本发明在不脱离其主旨范围内能够进行各种变形(例如,组合各个实施方式等)并实施。并且,在以下的附图的记载中,对相同或类似的部分标注相同或类似的符号来表示。附图为模式化的图,并非与实际尺寸和/或比例等一致。在图与图之间有时还包括相互的尺寸关系和/或比例不同的部分。
(第一实施方式)
图1是用于说明本发明的一个实施方式的半导体装置的概况的框图。如该图所示,半导体装置100例如包括CPU 110、存储器模块120、存储器接口(以下称为“存储器I/F”)130、访问控制部140、程序计数器监视部(以下称为“PC监视部”)150、中断控制器160而构成。半导体装置100是使这些各种部件一体封装化而成的系统级封装(SIP)。
CPU 110是通过解释作为程序而记述的指令代码(以下称为“指令”)来执行处理的部件。在此,“CPU”这一术语作为与表示处理装置的处理器和/或MPU、主处理器、微控制器等同义的术语来使用,并且,也可以表示多核处理器。CPU 110例如包括运算电路、解码器、各种寄存器和程序计数器而构成(参照图3)。CPU 110还可以包括高速缓冲存储器。CPU 110可以为通用寄存器方式,也可以为累加器方式,还可以为它们以外的方式。CPU 110经由指令总线和数据总线与存储器I/F130连接。
存储器模块120由包括能够相互独立工作的至少两个以上的可改写的非挥发性存储器而构成。本实施方式的存储器模块120的一个例子是NOR型闪存器,更具体来说,是NOR型串行闪存器。在本例中,存储器模块120包括第一NOR型串行闪存器(以下称为“第一闪存器”)120A和第二NOR型串行闪存器(以下称为“第二闪存器”)120B而构成。第一闪存器120A和第二闪存器120B储存由CPU 110执行的指令组。具体来说,在本实施方式中,第一闪存器120A储存构成主程序的第一指令组,第二闪存器120B储存构成分支程序的第二指令组,该分支程序根据包含在第一指令组中的与分支相关的控制指令而执行。图2是示意性地说明分别储存在第一闪存器120A以及第二闪存器120B中的指令组的图。第一闪存器120A以及第二闪存器120B根据预定的启动信号,处于能够从预定的地址读取数据的状态。
其中,存储器模块120除了可以包括NOR型串行闪存器以外,还可以包括NAND型闪存器,另外,也可以包括挥发性存储器(例如DRAM)。
存储器I/F130是CPU 110与存取器模块120的接口电路。具体来说,存储器I/F130在按照预定的时钟将从存储器模块120读取的指令储存于FIFO缓冲(预取缓冲)之后,将该指令变换为适合于CPU 110的指令总线的数据形式,提供给CPU 110。即,在该例中,因为第一闪存器120A以及第二闪存器120B为串行类型,所以存储器I/F130将构成以串行形式输出的指令的数据列变换为并行形式的数据列并提供给CPU 110。在这种情况下,指令能够典型地以流水线方式输出。虽然没有图示,但构成“程序数据”的数据列被变换为预定的数据形式,经由数据总线提供给CPU 110。本实施方式的存储器I/F130如后所述,在将指令储存到预取缓冲区的阶段,对该指令进行预解码,检测是否有分支指令。并且,本实施方式的存储器I/F130如后所述,基于该检测结果,在预定的时刻切换I/O信号线,以便选择第一闪存器120A以及第二闪存器120B中的任一方。
访问控制部140是控制对存储器模块120进行访问的电路。即,访问控制部140利用表示指定的预定地址的值控制为使第一闪存器120A以及第二闪存器120B中的至少一方处于能够读取的状态。并且,访问控制部140控制为可以从处于能够读取状态的第一闪存器120A以及第二闪存器120B中的至少一方读取数据列(指令)。
PC监视部150监视CPU 110的程序计数器115(参照图3),在程序计数器115的值随着分支指令等而发生变化的情况下,将表示被存储器I/F130检测出的分支指令表示的分支目标地址(跳转目标地址)的值(以下称为“分支目标地址值”)与程序计数器115的值进行比较,当两者一致时,输出预定的触发信号。所输出的预定的触发信号例如被输入到存储器I/F130以及访问控制部140。
中断控制器160是接收由未图示的外围电路或者装置发送的中断请求信号,并对CPU 110施加预定的中断的电路。即,中断控制器160与中断信号的内容对应地配合CPU 110的运行时刻,以指定的中断地址值改写CPU 110的程序计数器,由此,使CPU 110的控制跳转到该中断地址。并且,本实施方式的中断控制器160在接收到中断请求信号时,向访问控制部140输出表示与该中断请求信号对应的跳转目标地址的值(以下称为“跳转目标地址值”)。在该情况下,中断控制器160在对CPU 110进行中断的时刻之前向访问控制部140输出跳转目标地址值。访问控制部140按照该跳转目标地址值控制为使第一闪存器120A以及第二闪存器120B中的至少一方处于能够读取的状态。
应予说明,在本实施方式中,中断控制器160以向访问控制部140输出跳转目标地址值,然后对CPU 110施加中断的方式构成,但与对CPU 110施加中断的现有的中断控制器不同,可以设置检测从外围电路等发送的中断请求信号,并向访问控制部140输出跳转目标地址值的中断检测电路。即,中断检测电路接收到中断请求信号时,首先在预定的运行时钟所示的第一时刻向访问控制部140输出跳转目标地址值,然后,中断控制器160在该预定的运行时钟所示的第二时刻对CPU 110施加中断。如此,通过使中断检测电路和中断控制器110共用运行时钟,从而在中断控制器110对CPU 110施加中断之前的时刻,中断检测电路能够向访问控制部140通知基于中断请求的跳转目标地址。
图3是表示本发明的一个实施方式的半导体装置的功能构成的一例的框图。在该图中,为了说明图1所示的半导体装置的更详细的功能方面的构成,使存储器I/F130的构成更加详细。即,如该图所示,本实施方式的存储器I/F130包括例如切换控制部131和分支指令检测部132而构成。并且,在CPU 110中还特别图示有运算电路111、指令寄存器112、解码器113、通用寄存器114和程序计数器115。
切换控制部131是用于切换该I/O信号线的电路,以便选择第一闪存器120A以及第二闪存器120B中的任一方。切换控制例如基于从PC监视部150输出的预定的触发信号而进行。将从所选的闪存器中以串行形式读取的数据列提供给分支指令检测部132。
分支指令检测部132例如具备未图示的预取缓冲区,一边将从所选的闪存器中读取的数据列缓冲到该预取缓冲区,一边将数据列变换为平行形式的数据(指令),并向CPU110的指令总线输出。从分支指令检测部132输出的指令被读入到CPU 110的指令寄存器中。另外,在缓冲过程中,分支指令检测部132对该缓冲后的数据列进行预解码,判断是否含有特定的指令(例如,分支指令、子程序指令等),例如当判断为含有分支指令时,获取该分支指令所表示的分支目标地址值,将其分别输出至访问控制部140以及PC监视部150。
应予说明,分支指令检测部132在从第一闪存器120A依次读取数据列的过程中,如上所述,进行用于从主程序向分支程序进行分支控制的分支指令的检测,然而在切换为第二闪存器120B、从第二闪存器120B依次读取数据列的过程中,进行用于从分支程序向主程序进行返回控制的预定的指令的检测。即,分支指令检测部132将用于对主程序进行返回控制的预定的指令输出至地址控制部140以及PC监视部150。
图4是用于说明本发明的一个实施方式的半导体装置的存储器I/F的操作的流程图。
首先,半导体装置100被启动时,作为初始化处理,在确认各部件的操作之后,切换控制部131选择第一闪存器120A的I/O信号线(S401)。在该状态下,因为能够从第一闪存器120A进行读取,所以CPU 110以根据程序计数器115的值从第一闪存器120A依次开始读取数据列的方式进行控制。
存储器I/F130在从第一闪存器120A读取数据列时,将该数据列缓冲到预取缓冲区(S402)。分支指令检测部132根据是从第一闪存器120A读取还是从第二闪存器120B读取,进行如下所示的各自不同的处理。
即,分支指令检测部132在判断为从第一闪存器120A读取时(S403的Yes),分支指令检测部132进行该数据列(即,指令)的预解码(S404)。分支指令检测部132在根据预解码的结果判断为该指令不是分支指令的情况下(S405的No),将该数据列变换为适合指令总线的预定的数据形式,在预定的时刻输出至CPU 110的指令寄存器112(S408)。
另一方面,分支指令检测部132根据预解码的结果判断为该指令是分支指令时(S405的Yes),获取该分支指令所表示的分支目标地址值(S406),并将该获取的分支目标地址值分别输出到访问控制部140以及PC监视部150(S407)。然后,分支指令检测部132将该数据列变换为适合指令总线的预定的数据形式,向CPU 110的指令寄存器112输出(S408)。
与此相对地,分支指令检测部132在判断为不是从第一闪存器120A的读取,即,判断为是从第二闪存器120B的读取时(S403的No),分支指令检测部132同样进行该数据列(指令)的预解码(S409),判断该数据列是否是关于返回控制的指令(S410)。在预解码的结果判断为该指令不是关于返回控制的指令时(S410的No),分支指令检测部132将该数据列变换为适合指令总线的预定的数据形式,在预定的时刻向CPU的指令寄存器112输出(S408)。
另一方面,在预解码的结果判断为该指令是关于返回控制的指令时(S410的Yes),分支指令检测部132获取该指令所表示的返回目标地址值(例如,跳转目标地址值)(S411),并分别向访问控制部140以及PC监视部150输出该获取到的返回目标地址(S412)。然后,分支指令检测部132将该数据列变换为适合指令总线的预定的数据形式,向CPU的指令寄存器112输出(S408)。
应予说明,分支指令检测部132可以仅检测分支指令中的能够获取分支目标地址值的特定的分支指令。即,分支指令检测部132对无法获取分支目标地址值的分支指令,与其他指令同样地单纯提供到CPU 110。作为无法获取分支目标地址值的分支指令的一例,是在CPU 110运行时决定分支目标地址的寄存器间接分支指令。
图5是用于说明本发明的一个实施方式的半导体装置的程序计数器监视部的操作的流程图。
即,如该图所示,PC监视部150首先监视是否从分支指令检测部132发送预定的地址值(例如分支目标地址值)(S501)。当检测发送分支目标地址值时(S501的Yes),PC监视部150将该分支目标地址值储存在寄存器(S502)中,并进入程序计数器115的监视模式(S503~S504)。即,PC监视部150参照程序计数器115(S503),判断程序计数器115的值是否被通常的增加值(例如“1”)以外的值改写(S504)。被通常的增加值以外的值改写的情况例如是配置了分支目标地址值的情况(PC≠PC+1)。当判断为程序计数器115的值被通常的增加值以外的值改写时(S504的Yes),PC监视部150判断储存到寄存器中的分支目标地址值与程序计数器115的值是否一致(S505)。当判断为储存到寄存器中的分支目标地址值与程序计数器115的值一致时(S505的Yes),PC监视部150将预定的触发信号分别输出到切换控制部131以及访问控制部140(S506)。据此,数据列的读取源从第一闪存器120A切换至第二闪存器120B。接下来,PC监视部150重置寄存器(S507),为接下来的监视操作做准备(S501)。
PC监视部150在检测到由分支指令检测部132发送关于返回控制的地址值的情况下也与上述同样地进行处理。
返回至图3,对在半导体装置100中的从第一闪存器120A切换至第二闪存器120B的操作进行说明。
即,首先,在半导体装置100被初始化时,访问控制部140控制为将启动信号ENA1提供给第一闪存器120A,从而将时钟CLK1(未图示)提供给第一闪存器120A,并且控制为能够从第一闪存器120A的预定地址(例如程序计数器115所表示的地址)读取数据列。在该状态下,切换控制部131通过选择第一闪存器120A的I/O信号线,从而根据程序计数器115的值,从第一闪存器120A开始读取数据列。
在将从第一闪存器120A读取的数据列缓冲到预取缓冲区时,分支指令检测部132进行预解码,判断是否有分支指令。当判断为预解码后的指令是分支指令以外的指令时,分支指令检测部132经由指令总线将该指令提供到CPU 110,据此,将该指令储存到CPU 110的指令寄存器112中。另一方面,当判断为预解码后的指令是分支指令时,分支指令检测部132将该分支指令提供到CPU 110,并且获取该分支指令所表示的分支目标地址值,将其分别输出至访问控制部140以及PC监视部150。
如果访问控制部140接收分支目标地址值,则以提供启动信号ENA2而将时钟CLK2(未图示)提供到第二闪存器120B的方式进行控制,并且以第二闪存器120B能够从该分支目标地址的位置读取数据列的方式进行控制。访问控制部140在从第二闪存器120B接收例如READY信号(未图示),并检测到第二闪存器120B处于能够读取的状态时,暂时停止启动信号ENA2的提供,在CPU 110的准备完成之前,使第二闪存器120B处于空闲状态。通过设置上述空闲状态,从而能够停止不必要的时钟的提供,实现半导体装置100的电力的节省。
并且,PC监视部150与上述访问控制部140的操作并行地将分支目标地址暂时储存在未图示的寄存器。
在CPU 110中,典型的是,在将从分支指令检测部132经由指令总线提供的指令储存到指令寄存器112中时,例如以流水线方式,通过解码器113依次对该指令进行解码,据此,运算电路111通过根据该解码器113的解释结果以及通用寄存器114的值执行预定的运算,能够完成所期望的处理。每次通过解码器113解码时,程序计数器115的值依次增加(即,PC=PC+1)。当解码器113判断指令为分支指令时,该分支指令所表示的分支目标地址被配置到程序计数器115(即,PC≠PC+1)。
程序计数器115的值被PC监视部150监视。即,PC监视部150监视在程序计数器115中是否配置有分支目标地址值,以及从分支指令检测部132接收的分支目标地址值是否与程序计数器115的值一致。在判断为分支目标地址值被配置到程序计数器115,且从分支指令检测部132接收的分支目标地址与程序计数器115的值一致的情况下,PC监视部150将预定的触发信号分别输出至切换控制部131以及访问控制部140,并将寄存器的内容重置。由此,切换控制部131将I/O信号线从第一闪存器120A切换为第二闪存器120B。另外,访问控制部140停止向第一闪存器120A提供启动信号ENA1,重新开始向处于能够读取状态的第二闪存器120B提供启动信号ENA2。据此,重新开始向第二闪存器120B提供时钟CLK2,立即从第二闪存器120B依次读取根据分支目标地址的分支程序的指令。
然而,在分支指令检测部132检测到无法获取分支目标地址的分支命令的情况下,与其他通常的指令同样地单纯提供给CPU 110。在CPU 110中,通过利用解码器113对无法获取分支目标地址值的分支指令进行解码,从而将通过该解码而得的值配置到程序计数器115。即,程序计数器115的值可被改写通常的增加值以外的值(即,PC≠PC+1)。另一方面,虽然PC监视部150检测到程序计数器115的值被配置为通常的增加值以外的值,但寄存器的内容为空(Null),因此,不储存分支目标地址值。所以,PC监视部150向CPU 110输出保持(HOLD)信号,直到闪存器根据该分支目标地址值而成为能够读取的状态为止,暂时保持CPU110的运行。另一方面,PC监视部150将程序计数器115的值输出至访问控制部140,并且向切换控制部131输出预定的触发信号。对此,访问控制部140控制为使第二闪存器120B立即运行,并且控制为使第一闪存器120A停止运行,另外,切换控制部131将I/O信号线从第一闪存器120A切换为第二闪存器120B。
从第二闪存器120B读取数据列,如上所述,如果缓冲与分支目标地址值对应的指令,则分支指令检测部132例如将READY信号输出到PC监视部150。PC监视部150由此解除对于CPU 110的HOLD信号,使CPU 110的运行重新开始。据此,由分支指令检测部132提供的指令在CPU 110中被解码,并且被执行运算。
图6是表示说明本发明的一个实施方式的半导体装置的切换操作的一例的时序图的一例的图。
如该图所示,根据时钟CLK1,从第一闪存器120A读取数据列(指令)。在该状态下,例如,在分支指令检测部132检测分支指令时(时刻t0),获取该分支指令所表示的分支目标地址值,将其分别输出至访问控制部140以及PC监视部150。另一方面,分支指令检测部132以流水线的方式将数据列变换为预定的数据形式,经由指令总线提供给CPU 110。
访问控制部140在接收到分支目标地址值时,将启动信号ENA2变为“H”(时刻t1)。据此,相对于第二闪存器120B,开始提供时钟CLK2,第二闪存器120B以能够从该分支目标地址的位置进行读取的方式开始运行。
当第二闪存器120B成为能够读取的状态时,输出例如未图示的READY信号。访问控制部140由此将启动信号ENA2变为“L”,使第二闪存器120B在保持为能够读取的状态下暂时处于空闲状态(时刻t2)。
虽然提供给CPU 110的指令依次被解码、执行运算,但与之相伴,由于程序计数器115的值每次增加1,所以从存储器模块120读取的地址值不断更新。当通过解码器113将分支指令解码时,将该分支目标地址值配置到程序计数器115。当判断为从分支指令检测部132接收的分支目标地址值与程序计数器115的值一致时,PC监视器150将预定的触发信号分别输出至切换控制部131以及访问控制部140(时刻t3)。
当检测到预定的触发信号时,切换控制部131输出选择信号SEL,将I/O信号线从第一闪存器120A切换至第二闪存器120B(时刻t4)。访问控制部140与其大致同时并行地将向第一闪存器120A提供的启动信号ENA1变为“L”,将向第二闪存器120B提供的启动信号ENA2变为“H”。据此,停止向第一闪存器120A提供时钟CLK1,而开始向第二闪存器120B提供时钟CLK2,由此能够从第二闪存器120B读取分支程序的指令(时刻t5)。
如以上所述,根据本实施方式,准备储存有指令代码的能够进行切换选择的例如两个闪存器,存储器I/F130在通过CPU 110执行运算之前,从由一个闪存器读取的数据中检测出特定的指令,由此,访问控制部140进行另一个闪存器的读取准备,因此在通过CPU 110对该特定的指令进行运算执行的时刻,能够立即从该另一个闪存器中读取后续指令。即,即使在读取的地址不具有连续性的情况下,通过预先使与读取数据的闪存器不同的闪存器处于能够读取的状态,能够减少CPU的等待时间,由此能够高效地利用CPU。
(第二实施方式)
本实施方式公开了一种在半导体装置100中,按照子程序指令在第一闪存器120A和第二闪存器120B之间进行切换控制的技术。在以下的说明中,参照图3对分支指令检测部132检测取代分支指令的子程序指令,或者在分支指令的基础上检测子程序指令来进行闪存器的切换控制的例子进行说明。
在本实施方式中,例如第一闪存器120A储存构成主程序的第一指令组,第二闪存器120B储存构成子程序的第三指令组,该子程序取代构成分支程序的第二指令组,或者在第二指令组的基础上根据第一指令组中包含的子程序指令而执行。
如上所述,当半导体装置100被初始化时,访问控制部140控制为向第一闪存器120A提供启动信号ENA1,从而将时钟CLK1(未图示)提供给第一闪存器120A,并且控制为能够从第一闪存器120A的预定的地址(例如,程序计数器115所表示的地址)读取数据列。在该状态下,切换控制部131通过选择第一闪存器120A的I/O信号线而开始从第一闪存器120A读取数据列。
在将从第一闪存器120A读取的数据列缓冲到预取缓冲区时,分支指令检测部132进行预解码,判断是否有子程序指令。在判断为预解码后的指令是子程序指令(以及分支指令)以外的指令时,分支指令检测部132经由指令总线,将该指令提供给CPU 110,据此,该指令被保存在CPU 110的指令寄存器112。另一方面,在判断为预解码后的指令是子程序指令时,分支指令检测部132将该子程序指令提供给CPU 110,并且获取该子程序指令所表示的跳转目标地址值,将其分别输出至访问控制部140以及PC监视部150。
在接收到跳转目标地址值时,访问控制部140以提供启动信号ENA2而将时钟CLK2(未图示)提供给第二闪存器120B的方式进行控制,并以第二闪存器120B能够从该跳转目标地址读取数据列的方式进行控制。在检测到从第二闪存器120B接收例如READY信号(未图示),第二闪存器120B成为能够读取的状态时,访问控制部140暂时使第二闪存器120B处于空闲状态。另一方面,PC监视部150暂时将跳转目标地址值储存在未图示的寄存器中。
另一方面,在CPU 110中,在通过解码器113对子程序指令进行解码时,按照堆栈指针,将子程序的返回目标地址值(即,PC=PC+1)堆栈在程序计数器115,并且,将该子程序指令所表示的跳转目标地址值堆栈。
在将检测到跳转目标地址值被配置在程序计数器115时,PC监视部150判断从分支指令检测部132接收的跳转目标地址值与程序计数器115的值是否一致。即,在将跳转目标地址值被配置在程序计数器115,并判断为从分支指令检测部132接收的跳转目标地址值与程序计数器115的值一致时,PC监视部150将预定的触发信号输出至切换控制部131以及访问控制部140。并且,PC监视部150按照程序计数器115的堆栈指针将子程序的返回目标地址值储存在寄存器。
在接收预定的触发信号时,切换控制部131将I/O信号从第一闪存器120A切换至第二闪存器120B。另外,访问控制部140停止向第一闪存器120A提供启动信号ENA1,再次开始向可能处于空闲状态的第二闪存器120B提供启动信号ENA2。据此,再次开始向第二闪存器120B提供时钟CLK2,能够立即从第二闪存器120B依次读取按照跳转目标地址值的子程序的指令。
如果从由第二闪存器120B读取的数据列中检测出表示子程序结束的返回指令,则分支指令检测部132将返回信号输出到PC监视部150。PC监视部150接收返回信号,将储存在寄存器中的返回目标地址值输出到访问控制部140。
在接收到返回目标地址值时,访问控制部140以提供启动信号ENA2,从而将时钟CLK1提供给第一闪存器120A的方式进行控制,并使第一闪存器120A能够从该返回目标地址的位置读取数据列的方式进行控制。在检测出从第一闪存器120A接收例如READY信号,第一闪存器120A成为能够读取的状态时,访问控制部140暂时使第一闪存器120A处于空闲状态。
另一方面,在CPU 110中,在通过解码器113对返回指令进行解码时,按照堆栈指针,将程序计数器115的值重置为子程序的返回地址。据此,PC监视部150检测出储存在寄存器中的返回目标地址值与程序计数器115的值一致,将预定的触发信号分别输出至切换控制部131以及访问控制部140,并且重置寄存器的内容。
在接收预定的触发信号时,切换控制部131将I/O信号线从第二闪存器120B切换为第一闪存器120A。并且,访问控制部140停止向第二闪存器120B提供启动信号ENA2,再次开始向可能处于空闲状态的第一闪存器120A提供启动信号ENA1。据此,重新开始向第一闪存器120A提供时钟CLK1,立即根据程序计数器115的值,从第一闪存器120A依次读取按照返回地址的指令。
应予说明,在本实施方式中,作为来自子程序的返回目标地址值,使用了程序计数器115当前值的接下来的值,但并不限于此。即,根据子程序,有可能指定例外的返回目标地址,那样的地址值也可以堆栈至程序计数器115。
如上所述,根据本实施方式,能够得到与上述第一实施方式同样的优点或者效果。即,根据本实施方式,准备储存有指令代码的能够进行切换选择的例如两个闪存器,在通过CPU 110执行运算之前,存储器I/F130从由一个闪存器读取的数据中检测出特定的指令(子程序指令),由此,访问控制部140进行另一个闪存器的读取准备,因此在通过CPU 110对该特定的指令执行运算的时刻,能够从该另一个闪存器即刻读取后续指令。另外,根据本实施方式,由于在利用CPU 110执行运算前检测出返回指令,由此,进行最初的闪存器的读取准备,所以在通过CPU 110对该返回指令执行运算的时刻,能够从该另一个闪存器的返回目标地址的位置立即读取后续指令。
(第三实施方式)
本实施方式公开了一种在半导体装置100中,通过产生CPU中断,而在第一闪存器120A与第二闪存器120B之间进行切换控制的技术。在以下的说明中,参照图3对通过中断控制器160检测CPU中断的发生而进行闪存器的切换控制的例子进行说明。
在本实施方式中,例如,第一闪存器120A储存构成主程序的第一指令组,第二闪存器120B储存代替构成分支程序的第二指令组以及/或者构成子程序的第三指令组的构成中断程序的第四指令组;或者储存在构成分支程序的第二指令组以及/或者构成子程序的第三指令组的基础上的构成中断程序的第四指令组。
如上所述,从第一闪存器120A读取数据列。在该状态下,在从外部的外围设备等输出中断请求信号时,中断控制器160检测该情况,将基于中断信号的中断跳转目标地址输出到访问控制部140。由此,访问控制部140以提供启动信号ENA2,从而将时钟CLK2(未图示)提供给第二闪存器120B的方式进行控制,并以使第二闪存器120B能够从该中断跳转目标地址读取数据列的方式进行控制。在检测出从第二闪存器120B接收例如READY信号(未图示),第二闪存器120B成为能够读取的状态时,访问控制部140暂时使第二闪存器120B处于空闲状态。另一方面,PC监视部150将跳转目标地址值暂时储存在未图示的寄存器中。
另一方面,在CPU 110中,在利用中断控制器160执行中断时,按照堆栈指针,将按照该中断的中断程序的返回目标地址值(即,PC=PC+1)堆栈到程序计数器115,并且,将该中断程序所表示的跳转目标地址值被堆栈。并且,中断控制器160将按照该中断的跳转目标地址值输出到PC监视部150。
PC监视部150在检测出在程序计数器115中配置了跳转目标地址值时,判断储存在寄存器的跳转目标地址值与程序计数器115的值是否一致。在判断为跳转目标地址值被配置到程序计数器115,并且从分支指令检测部132接收的跳转目标地址值与程序计数器115的值一致时,PC监视部150将预定的触发信号输出至切换控制部131以及访问控制部140,并且将来自中断程序的返回目标地址值储存到寄存器中。
切换控制部131在接收预定的触发信号时,将I/O信号线从第一闪存器120A切换至第二闪存器120B。并且,访问控制部140停止向第一闪存器120A提供启动信号ENA1,再次开始向可能处于空闲状态的第二闪存器120B提供启动信号ENA2。据此,重新开始向第二闪存器120B提供时钟CLK2,能够立即从第二闪存器120B依次读取按照跳转目标地址的中断程序的指令。
分支指令检测部132在从由第二闪存器120B读取的数据列中检测出表示中断程序结束的返回指令时,将返回信号输出至PC监视部150。PC监视部150接收返回信号,将保存在寄存器中的返回目标地址值输出到访问控制部140。
访问控制部140在接收返回目标地址时,以提供启动信号ENA1,从而将时钟CLK1提供给第一闪存器120A的方式进行控制,并以第一闪存器120A能够从该返回目标地址的位置读取数据列的方式进行控制。访问控制部140在检测出从第一闪存器120A接收例如READY信号,第一闪存器120A成为能够读取的状态时,暂时使第一闪存器120A处于空闲状态。
另一方面,在CPU 110中,在通过解码器113对返回指令进行解码时,按照堆栈指针,程序计数器115的值成为子程序的返回目标地址值。据此,PC监视部150检测出保存在寄存器中的返回目标地址值与程序计数器115的值一致,并将预定的触发信号分别输出至切换控制部131以及访问控制部140,同时重置寄存器的内容。
切换控制部131在接收预定的触发信号时,将I/O信号线从第二闪存器120B切换至第一闪存器120A。另外,访问控制部140停止向第二闪存器120B提供启动信号ENA2,再次开始向可能处于空闲状态的第一闪存器120A提供启动信号ENA1。据此,再次开始向第一闪存器120A提供时钟CLK1,能够立即从第一闪存器120A中依次读取按照返回地址的指令。
如上所述,根据本实施方式,能够获得与上述第一以及第二实施方式同样的优点或效果。即,根据本实施方式,准备储存有指令代码的能够进行切换选择的例如两个闪存器,当中断控制器160检测出CPU中断时,由此,访问控制部140进行另一个闪存器的读取准备,因此在通过CPU 110对有关该中断的指令执行运算的时刻,能够立即从该另一个闪存器读取后续指令。另外,根据本实施方式,在通过CPU 110执行运算前检测出返回指令,由此,进行最初的闪存器的读取准备,所以在通过CPU 110对该返回指令执行运算的时刻,能够立即从该另一个闪存器的返回目标地址的位置读取后续指令。
上述各实施方式是用于说明本发明的示例,其主旨并非将本发明仅限定于这些实施方式。本发明只要不脱离其主旨,就可以以各种方式实施。例如,在本实施方式中,选择性地进行切换控制两个闪存器,但并不限于此。例如,当多个分支程序成为嵌套结构时,可以将构成该多个分支程序中的每一个的指令组储存在不同的闪存器中,适当地对这些闪存器进行切换控制。
另外,在本说明书公开的方法中,只要其结果不矛盾,就可以同时或者以不同的顺序实施所述的步骤、操作或者功能。所说明的步骤、操作以及功能作为单纯的例子提供,步骤、操作以及功能中的几个在不脱离发明主旨的范围内可以省略、或者可以使他们相互结合成为一体、还可以追加其他的步骤、操作或者功能。
另外,虽然在本说明书中公开了各种实施方式,但也可以在对本发明的主旨中的特定的特征(技术事项)进行适当改良的同时追加其它实施方式,或者可以置换为其他实施方式中的特定的特征,这些方式均包括在本发明的主旨中。
产业上的可利用性
本发明能够广泛应用于半导体装置领域。
Claims (11)
1.一种半导体装置,其特征在于,具备:
第一闪存器,存储第一指令组;
第二闪存器,存储根据在所述第一指令组中包含的预定的控制指令而执行的第二指令组;
访问控制部,控制对所述第一闪存器以及所述第二闪存器的访问;
存储器接口,选择所述第一闪存器以及所述第二闪存器中的任一个闪存器,将从该选择后的闪存器中依次读取的指令提供给CPU,其中,包括分支指令检测部,所述分支指令检测部判断该指令是否为第一控制指令,在判断为该指令是第一控制指令且能够根据该第一控制指令获取跳转目标地址值时获取该第一控制指令所表示的第一跳转目标地址值;
程序计数器监视部,将CPU的程序计数器的值与由所述分支指令检测部获取的第一跳转目标地址值进行比较,在该比较的结果是所述程序计数器的值与所述第一跳转目标地址值一致的情况下,输出第一触发信号,
所述访问控制部控制为根据由所述分支指令检测部获取的第一跳转目标地址值而使所述第二闪存器处于能够读取的状态,
所述存储器接口基于从所述程序计数器监视部输出的所述第一触发信号选择所述第二闪存器。
2.根据权利要求1所述的半导体装置,其特征在于,所述程序计数器监视部在所述程序计数器的值被改写为预定的增加值以外的值的情况下,对所述程序计数器的值与所述第一跳转目标地址值进行比较。
3.根据权利要求2所述的半导体装置,其特征在于,所述程序计数器监视部具备储存所述获取的第一跳转目标地址值的寄存器。
4.根据权利要求3所述的半导体装置,其特征在于,所述程序计数器监视部在所述程序计数器的值被改写为预定的增加值以外的值、且所述寄存器的内容为空的情况下控制为使所述CPU变成保持状态。
5.根据权利要求4所述的半导体装置,其特征在于,在利用所述指令检测部根据所述第一控制指令而没有获取到跳转目标地址值的情况下,所述程序计数器监视部在根据通过所述CPU解码的所述第一控制指令而使所述第二闪存器成为能够读取的状态的情况下控制为解除所述CPU的保持状态。
6.根据权利要求1所述的半导体装置,其特征在于,所述访问控制部在所述第二闪存器成为能够读取的状态的情况下控制为直到接收所述第一触发信号为止,使所述第二闪存器处于空闲状态。
7.根据权利要求1所述的半导体装置,其特征在于,
所述分支指令检测部在从所述第二闪存器正读取指令组的情况下,判断该指令是否为第二指令,当判断为该指令是第二指令时,获取该第二指令所表示的第二跳转目标地址值,
所述访问控制部根据通过所述分支指令检测部获取的第二跳转目标地址值控制为使所述第一闪存器成为能够读取的状态,
所述程序计数器监视部对所述程序计数器的值与通过所述分支指令检测部获取的第二跳转目标地址值进行比较,在该比较的结果是所述程序计数器的值与所述第二跳转目标地址值一致的情况下,输出第二触发信号,
所述存储器接口基于从所述程序计数器监视部输出的所述第二触发信号选择所述第一闪存器。
8.根据权利要求1所述的半导体装置,其特征在于,
还具备中断控制器,从外部的外围电路以及外围设备的至少一个接收中断请求信号而对所述CPU执行中断,
所述中断控制器基于所述中断请求信号,获取基于该中断的中断跳转目标地址值,
所述访问控制部根据通过所述中断控制器获取的中断跳转目标地址值控制为使所述第二闪存器成为能够读取的状态,
所述程序计数器监视部对所述程序计数器的值与通过所述中断控制器获取的中断跳转目标地址值进行比较,在该比较的结果为所述程序计数器的值与所述中断跳转目标地址值一致的情况下,输出所述第一触发信号,
所述存储器接口基于从所述程序计数器监视部输出的所述第一触发信号选择所述第二闪存器。
9.根据权利要求1至8中的任一项所述的半导体装置,其特征在于,
所述第一闪存器以及所述第二闪存器均为NOR型串行闪存器。
10.一种半导体装置,其特征在于,具备:
CPU;
第一闪存器,存储通过所述CPU而执行的第一指令组;
第二闪存器,存储根据在所述第一指令组中包含的预定的控制指令而执行的第二指令组,
在通过所述CPU执行指令之前,判断从所述第一闪存器读取的指令是否为分支指令,且在判断为是分支指令的情况下,指示为使所述第二闪存器利用该分支指令所表示的分支目标地址值而执行读取操作,
在所述第二闪存器按照该指示处于能够进行读取操作的状态的期间,在所述CPU的程序计数器与所述分支目标地址值一致的情况下,开始从所述第二闪存器读取所述第二指令组。
11.一种指令读取控制方法,其特征在于,是如下半导体装置中的指令读取控制方法,所述半导体装置具备:
CPU;
第一闪存器,存储通过所述CPU而执行的第一指令组;
第二闪存器,存储根据在所述第一指令组中包含的预定的控制指令而执行的第二指令组,
所述指令读取控制方法包括:
选择性地控制所述第一闪存器,依次读取所述第一指令组,并提供给所述CPU;
在读取所述第一指令组的期间,从所述第一指令组中检测预定的控制命令;
在检测到所述预定的控制指令的情况下,获取该预定的控制指令所表示的跳转目标地址值;
根据所述获取的跳转目标地址值,控制为使所述第二闪存器成为能够读取的状态;
在获取了所述跳转目标地址值的情况下,监视所述CPU的程序计数器,判断所述程序计数器的值与所述跳转目标地址值是否一致;
在判断为所述程序计数器的值与所述跳转目标地址值一致的情况下,输出预定的触发信号;
基于所述输出的预定的触发信号,将应该向所述CPU提供的指令的读取从所述第一闪存器切换为处于所述能够读取状态的第二闪存器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014-057790 | 2014-03-20 | ||
JP2014057790A JP6250447B2 (ja) | 2014-03-20 | 2014-03-20 | 半導体装置及び命令読み出し制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104932876A CN104932876A (zh) | 2015-09-23 |
CN104932876B true CN104932876B (zh) | 2019-06-07 |
Family
ID=54120053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510121696.8A Active CN104932876B (zh) | 2014-03-20 | 2015-03-19 | 半导体装置及读取指令的控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9477594B2 (zh) |
JP (1) | JP6250447B2 (zh) |
CN (1) | CN104932876B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106681877B (zh) * | 2015-11-11 | 2020-02-04 | 扬智科技股份有限公司 | 芯片调试系统及方法与系统芯片 |
CN109284176B (zh) * | 2017-07-20 | 2020-11-03 | 龙芯中科技术有限公司 | 中断响应方法、装置及计算机可读存储介质 |
US11461101B2 (en) | 2019-09-27 | 2022-10-04 | Arm Technology (China) Co. LTD | Circuitry and method for selectively controlling prefetching of program instructions |
CN111694594B (zh) * | 2020-05-18 | 2023-03-03 | 成都盛芯微科技有限公司 | 补丁程序的控制方法和系统 |
CN114970441B (zh) * | 2022-06-06 | 2023-11-28 | 江苏泰治科技股份有限公司 | Ic芯片封装自动布线方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1612105A (zh) * | 2003-08-15 | 2005-05-04 | 英特尔公司 | 处理指令 |
CN101458956A (zh) * | 2007-12-14 | 2009-06-17 | 慧荣科技股份有限公司 | 存取一快闪存储器的装置、方法及平均地使用该快闪存储器的区块的方法 |
CN101558393A (zh) * | 2006-12-15 | 2009-10-14 | 密克罗奇普技术公司 | 用于微处理器的可配置高速缓冲存储器 |
CN101571818A (zh) * | 2008-04-29 | 2009-11-04 | 联发科技股份有限公司 | 修补装置、电子装置以及用于修补只读存储器代码的方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000132390A (ja) * | 1998-10-23 | 2000-05-12 | Toshiba Corp | プロセッサ及び分岐予測器 |
JP3877518B2 (ja) * | 2000-12-13 | 2007-02-07 | 松下電器産業株式会社 | プロセッサの電力制御装置 |
US20030204675A1 (en) * | 2002-04-29 | 2003-10-30 | Dover Lance W. | Method and system to retrieve information from a storage device |
ITRM20030354A1 (it) * | 2003-07-17 | 2005-01-18 | Micron Technology Inc | Unita' di controllo per dispositivo di memoria. |
US8010734B2 (en) * | 2004-06-04 | 2011-08-30 | Broadcom Corporation | Method and system for reading instructions from NAND flash memory and writing them into SRAM for execution by a processing device |
KR100895429B1 (ko) * | 2007-04-27 | 2009-05-07 | 중앙대학교 산학협력단 | 플래시 메모리 파일 장치 및 그 마운트 방법 |
US9348597B2 (en) * | 2008-06-30 | 2016-05-24 | Infineon Technologies Ag | Device and method for bypassing a first program code portion with a replacement program code portion |
JP4354001B1 (ja) * | 2008-07-03 | 2009-10-28 | Necエレクトロニクス株式会社 | メモリ制御回路および集積回路 |
JP5035227B2 (ja) | 2008-12-17 | 2012-09-26 | 日本電気株式会社 | 情報処理装置、プログラムの起動制御方法、及び起動制御プログラム |
ITMI20120944A1 (it) * | 2012-05-31 | 2013-12-01 | St Microelectronics Srl | Unità di controllo di circuiti di alimentazione per uno o più punti di carico di un sistema elettronico con nvm esterna di personalizzazione |
-
2014
- 2014-03-20 JP JP2014057790A patent/JP6250447B2/ja active Active
-
2015
- 2015-03-13 US US14/656,984 patent/US9477594B2/en active Active
- 2015-03-19 CN CN201510121696.8A patent/CN104932876B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1612105A (zh) * | 2003-08-15 | 2005-05-04 | 英特尔公司 | 处理指令 |
CN101558393A (zh) * | 2006-12-15 | 2009-10-14 | 密克罗奇普技术公司 | 用于微处理器的可配置高速缓冲存储器 |
CN101458956A (zh) * | 2007-12-14 | 2009-06-17 | 慧荣科技股份有限公司 | 存取一快闪存储器的装置、方法及平均地使用该快闪存储器的区块的方法 |
CN101571818A (zh) * | 2008-04-29 | 2009-11-04 | 联发科技股份有限公司 | 修补装置、电子装置以及用于修补只读存储器代码的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20150269072A1 (en) | 2015-09-24 |
JP6250447B2 (ja) | 2017-12-20 |
US9477594B2 (en) | 2016-10-25 |
JP2015184706A (ja) | 2015-10-22 |
CN104932876A (zh) | 2015-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104932876B (zh) | 半导体装置及读取指令的控制方法 | |
CN105765541B (zh) | 用于机动车的控制器 | |
US20190018618A1 (en) | Methods and apparatuses for executing a plurality of queued tasks in a memory | |
KR100469569B1 (ko) | 비휘발성 메모리가 데이터 저장/처리 디바이스로서동작하면서 코드를 실행할 수 있게 하는 방법 및 시스템 | |
US20070220361A1 (en) | Method and apparatus for guaranteeing memory bandwidth for trace data | |
CN102662718B (zh) | 一种单片flash启动多用户程序模块 | |
CN105659208A (zh) | 处理多个线程的数据处理装置及方法 | |
CN105874436B (zh) | 用于自主存储器的方法及设备 | |
US20060161924A1 (en) | Scheduling method, in particular context scheduling method, and device to be used with a scheduling method | |
JP5414656B2 (ja) | データ記憶装置、メモリ制御装置及びメモリ制御方法 | |
US8990549B2 (en) | Method and system for booting electronic device from NAND flash memory | |
CN102089742A (zh) | 执行单元内的数据转发系统和方法 | |
US8108862B2 (en) | Out-of-order thread scheduling based on processor idle time thresholds | |
CN106227676B (zh) | 一种高速缓存以及从高速缓存中读取数据的方法和装置 | |
US10248538B2 (en) | Controller of semiconductor memory device for detecting event and storing event information and operating method thereof | |
TW201719429A (zh) | 針對nand快閃記憶體的靈活介面 | |
CN103440169B (zh) | 一种进程中断处理的方法及装置 | |
KR20170001235A (ko) | 메모리 시스템 및 그것의 동작 방법 | |
CN109841253A (zh) | 半导体存储装置及其复位方法 | |
US20130117533A1 (en) | Coprocessor having task sequence control | |
CN100514362C (zh) | 具有独立输出的交换开关系统及其方法 | |
WO2009098737A1 (ja) | 外部デバイスアクセス装置、その制御方法及びシステムlsi | |
US6092153A (en) | Subsettable top level cache | |
CN106980513A (zh) | 一种双引导文件的切换方法及装置 | |
US10157159B2 (en) | Semiconductor memory device, storage system, and computer |
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 |