CN112667558A - 处理***与芯片内执行控制方法 - Google Patents
处理***与芯片内执行控制方法 Download PDFInfo
- Publication number
- CN112667558A CN112667558A CN201910978172.9A CN201910978172A CN112667558A CN 112667558 A CN112667558 A CN 112667558A CN 201910978172 A CN201910978172 A CN 201910978172A CN 112667558 A CN112667558 A CN 112667558A
- Authority
- CN
- China
- Prior art keywords
- address
- memory
- predicted
- instruction
- circuit
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000015654 memory Effects 0.000 claims abstract description 109
- 230000004044 response Effects 0.000 claims description 4
- 230000000454 anti-cipatory effect Effects 0.000 claims 1
- 239000000872 buffer Substances 0.000 description 15
- 238000010586 diagram Methods 0.000 description 9
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 206010000210 abortion Diseases 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
Images
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/0215—Addressing or allocation; Relocation with look ahead addressing means
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44573—Execute-in-place [XIP]
-
- 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/60—Details of cache memory
- G06F2212/6022—Using a prefetch buffer or dedicated prefetch cache
-
- 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)
- Software Systems (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开一种处理***与芯片内执行控制方法。处理***包含存储器、处理器电路以及芯片内执行控制器电路。处理器电路用以输出一指令。芯片内执行控制器电路用以响应于指令决定存储器在处理器电路的下次操作中被读取的预测地址,以根据预测地址自存储器预先取出数据。
Description
技术领域
本发明涉及处理***,更明确地说,是涉及具有芯片内执行功能的处理***与控制方法。
背景技术
在计算机***中,芯片内执行(eXecute-In-Place)的操作方式可以让处理器在一般性数据储存存储器(例如为长期储存存储器、快闪式存储器等)直接读取数据或执行程序,而不用先复制上述的数据或程序至***的随机存取存储器。然而,在现有的操作方式中,计算机***的效能仍受限于实际电路的操作延迟与/或实际线路的传输延迟。
发明内容
于一些实施例中,一种处理***包含存储器、处理器电路以及芯片内执行控制器电路。处理器电路用以输出一指令。芯片内执行控制器电路用以响应于指令决定存储器在处理器电路的下次操作中被读取的预测地址,以根据预测地址自存储器预先取出数据。
于一些实施例中,一种芯片内执行控制方法包含下列操作:根据自一处理器电路发送的一指令获取该处理器电路欲读取的一第一存储器地址;根据该第一存储器地址搜寻一地址查找表,以输出一匹配地址;根据该指令获取该处理器电路欲执行的一程序,并译码该程序以输出一跳转地址;根据一预定数值与该第一存储器地址产生一预想地址;根据一优先级输出该匹配地址、该跳转地址与该预想地址中的一者为一推估地址,并输出该推估地址为一预测地址;以及根据该预测地址自一存储器预先取出一数据,以提供该处理器电路使用。
有关本发明的特征、实际操作与效果,配合图式作详细说明如下。
附图说明
图1为根据本发明一些实施例示出一种处理***的示意图;
图2为根据本发明一些实施例示出图1中的芯片内执行(eXecute-In-Place,XIP)控制器电路的电路示意图;
图3为根据本发明一些实施例示出的一种XIP控制方法的流程图;
图4为根据本发明一些实施例示出图3中的一操作的流程图;
图5为根据本发明一些实施例示出图1中的XIP控制器电路的电路示意图;以及
图6为根据本发明一些实施例示出图1中的XIP控制器电路的电路示意图。
具体实施方式
本文所使用的所有词汇具有其通常的含义。上述的词汇在普遍常用的字典中的定义,在本发明的内容中包含任一于此讨论的词汇的使用例子仅为示例,不应限制到本发明的范围与含义。同样地,本发明技术的实现方式亦不限于本说明书所示出的实施例。
本文中的用语『电路(circuit)』可为由至少一个晶体管与/或至少一个主被动组件按一定方式连接以处理信号的装置。如本文所用,用语『与/或』包含了列出的关联项目中的一个或多个的任何组合。
在本文中,使用第一、第二与第三等的词汇,是用于描述并辨别各个组件。因此,在本文中的第一组件也可被称为第二组件,而不脱离本发明的本意。
为易于理解,在各图式中的类似组件将被指定为相同标号。
图1为根据本发明一些实施例示出一种处理***100的示意图。于一些实施例中,处理***100可应用于具有芯片内执行(eXecute-In-Place,XIP)功能的电子装置,以加快执行程序的效率。
处理***100包含处理器电路110、XIP控制器电路120以及存储器130。处理器电路110用以发出指令CMD,以通知XIP控制器电路120欲读取的数据S1与/或欲执行的程序S2为何。XIP控制器电路120耦接于处理器电路110以及存储器130之间。XIP控制器电路120用以根据指令CMD决定存储器130在处理器电路110的下次操作中可能被读取的一预测地址PA,并根据预测地址PA自存储器130预先取回(pre-fetch)数据S1。于下一次操作,处理器电路110可至XIP控制器电路120使用数据S1。如此,电路延迟以及数据传输延迟的影响可以被降低,以有效地提高处理器电路110执行指令的效率。于一些实施例中,XIP控制器电路120可输出一个或多个控制信号至存储器130,以进行数据读写的操作。
于一些实施例中,存储器130可为快闪式存储器。于一些实施例中,存储器130可为电可擦除可编程只读存储器(EEPROM)。上述关于存储器130的种类用于示例,且本发明并不以上述例子为限。各种存储器130亦为本发明所涵盖的范围。
于一些实施例中,XIP控制器电路120可利用查找表(如图2的地址查找表ALT)来根据指令CMD决定预测地址PA。于一些实施例中,查找表可为事先设置并储存于XIP控制器电路120内。于一些实施例中,处理器电路110可通过XIP控制器电路120建立并动态更新查找表。于一些实施例中,XIP控制器电路120可计算响应于指令CMD所产生的一跳转(Jump)地址,并将此跳转地址输出为预测地址PA。于一些实施例中,当处理器电路110发出新的指令CMD且此新指令CMD欲读取的存储器地址不同于当前的预测地址PA时,XIP控制器电路120会终止基于当前的预测地址PA所执行的预先存取运作。上述关于XIP控制器电路120的多个实施例将参照后述图2进行说明。
图2为根据本发明一些实施例示出图1中的XIP控制器电路120的电路示意图。
于一些实施例中,XIP控制器电路120包含地址查找表ALT、控制逻辑电路121、缓存器电路122、数据缓冲器电路123、选择电路124、译码器电路125、地址调整电路126、多任务器电路127、输出缓冲器电路128以及比较逻辑电路129。
控制逻辑电路121用以根据指令CMD控制各个电路,以执行前述预先取出的操作。缓存器电路122用以储存一个或多个控制参数(未示出),这些控制参数用以配置XIP控制器电路120的一个或多个***参数,以进行预先取出的运作。于一些实施例中,缓存器电路122可用于储存地址查找表ALT的至少一部分。数据缓冲器电路123为一数据缓冲区,其可用以暂存自存储器130传来的数据S1。
为易于理解,一并参照图2与图3,图3为根据本发明一些实施例示出的一种XIP控制方法300的流程图。于一些实施例中,XIP控制方法300可由图2的XIP控制器电路120执行。于一些实施例中,控制逻辑电路121可由执行XIP控制方法300的状态机、数字信号处理电路与/或微控制器等电路实施。
于操作S310,根据指令获取欲读取的存储器地址,并根据欲读取的存储器地址搜寻地址查找表,以输出匹配地址。
例如,控制逻辑电路121用以根据指令CMD获取处理器电路110欲读取的存储器地址RA,并根据存储器地址RA搜寻地址查找表ALT,以确认地址查找表ALT内是否存有匹配地址A1。若地址查找表ALT是存有匹配地址A1,控制逻辑电路121将匹配地址A1传输至选择电路124。若否,则存储器地址RA被更新至地址查找表ALT(如后图4中的步骤S310-4)。
于操作S320,根据指令获取欲执行的程序,并译码此程序以输出跳转地址。
例如,控制逻辑电路121用以根据指令CMD的一获取码(fetch ID)判断出处理器电路110欲执行程序S2,控制逻辑电路121可致能译码器电路125并自存储器130预先取出此程序S2的指令(或指令集)。如此,译码器电路125可对此程序S2进行译码。在程序S2被译码后,若译码器电路125得知程序S2包含跳转指令,译码器电路125可根据此跳转指令计算出一偏移值SOFF,并根据欲读取的存储器地址RA(例如为此程序S2的存放地址)以及偏移值SOFF决定跳转地址A2。
于一些实施例中,前述的跳转指令可为RISC-V架构下的jal指令。例如,跳转指令可表示为:J jal:instruction bit[6:0]==7’b1101111,且其中的instruction假定为32’h9000_006f。依据现有的指令编码格式,译码器电路125可计算出偏移值SOFF为32’hfff0_0100。如此,译码器电路125可加和存储器地址RA以及偏移值SOFF为跳转地址A2,并输出跳转地址A2至选择电路124。
于一些实施例中,若处理***100应用于AXI(Advanced eXtensible Interface)通信协议,前述的获取码可为AXI读取地址码(AXI read address ID,ARID)。上述关于指令的架构类型与通信协议的类型用于示例,且本发明并不以此为限。
继续参照图3,于操作S330,根据预定数值与欲读取的存储器地址产生预想地址。
例如,在获取存储器地址RA后,控制逻辑电路121传输存储器地址RA至地址调整电路126。地址调整电路126加和预定数值P1与存储器地址RA为预想地址A3,并输出预想地址A3至选择电路124。于一些实施例中,预想地址A3与存储器地址RA为连续的存储器地址。例如,预想地址A3为存储器地址RA的次一存储器地址。于一些实施例中,预定数值P1可为一笔突发(burst)的数据带宽。例如,若预定数值P1为32位且突发长度(burst length)为8,地址调整电路126可将存储器地址RA加32,以产生为预想地址A3。
于操作S340,根据优先级输出匹配地址、跳转地址以及预想地址中的一者为推估地址,并输出推估地址为预测地址。
于一些实施例中,选择电路124可根据一默认的优先级输出匹配地址A1、跳转地址A2以及预想地址A3中的一者为推估地址A4,并传输此推估地址A4至多任务器电路127。于一些实施例中,匹配地址A1或跳转地址A2被优先输出为推估地址A4。例如,优先级可设定为匹配地址A1→跳转地址A2→预想地址A3。亦即,若匹配地址A1存在,选择电路124优先输出匹配地址A1为推估地址A4;若匹配地址A1不存在而跳转地址A2存在,选择电路124输出跳转地址A2为推估地址A4;且若匹配地址A1与跳转地址A2都不存在,选择电路124输出预想地址A3为推估地址A4。于另一些实施例中,优先级亦可设定为跳转地址A2→匹配地址A1→预想地址A3。
于一些实施例中,响应于当前的指令CMD,多任务器电路127可被默认为输出推估地址A4为预测地址PA,并传输预测地址PA至输出缓冲器电路128。输出缓冲器电路128可由一个或多个缓存器实施,以暂存预测地址PA。
于操作S350,比较下一笔指令欲读取的新存储器地址与当前的预测地址,以决定是否将新存储器地址输出为预测地址。若是,则执行操作S360;若否,则执行操作S370。
于操作S360,根据当前的预测地址自存储器预先取出数据并储存于数据缓冲器电路。
于操作S370,结束原有操作,并输出新存储器地址为预测地址,以根据预测地址自存储器预先取出数据并储存于数据缓冲器电路。
例如,在操作S310至操作S340运行的过程中,若处理器电路110又发出新的指令CMD,且控制逻辑电路121获取此新指令CMD所欲读取的新存储器地址RA',控制逻辑电路121输出此新存储器地址RA'至比较逻辑电路129与多任务器电路127。比较逻辑电路129可自输出缓冲器电路128读取当前的预测地址PA,并比较预测地址PA与新存储器地址RA',以输出一控制信号SC。若预测地址PA相同于新存储器地址RA',控制逻辑电路121响应于控制信号SC维持选择信号SP的数值。于此条件下,多任务器电路127仍输出推估地址A4为预测地址PA。因此,控制逻辑电路121可根据预测地址PA(即推估地址A4)而自存储器130取出数据S1,并存入数据缓冲器电路123。或者,若预测地址PA不同于新存储器地址RA',控制逻辑电路121响应于控制信号SC改变选择信号SP的数值,并中止其他电路的当前操作。于此条件下,多任务器电路127改输出新存储器地址RA'为预测地址PA。因此,控制逻辑电路121可根据预测地址PA(即新存储器地址RA')而自存储器130取出数据S1,并存入数据缓冲器电路123。
通过上述操作,XIP控制器电路120可根据指令CMD预测处理器电路110下次操作时需要的数据,并预先自存储器130取出数据。于下次操作时,处理器电路110可直接读取XIP控制器电路120(而非存储器130)中预存的数据。如此一来,可避免处理器电路110至存储器130之间的传输延迟的影响,进而改进***整体的效能。
于图2中,XIP控制器电路120可根据指令CMD所欲读取的存储器地址RA执行多个操作(例如为操作S310、S320以及S330),以决定出多个可能的被读取的地址(即匹配地址A1、跳转地址A2以及预想地址A3)来产生预测地址PA。应当理解,于不同实施例中,XIP控制器电路120可执行操作S310、S320或S330中至少一者,以决定匹配地址A1、跳转地址A2或预想地址A3中至少一者来产生预测地址PA。换言之,上述实施例中的一个或多个操作可基于实际应用需求被组合,故本发明并不以图2的实施例为限。
于一些实施例中,地址查找表ALT的第一部分可储存于缓存器电路122,且地址查找表ALT的第二部分可储存于独立的缓存器电路(如图6所示),其中该第一部分的内容(例如为下表中的项目1)为不可更动,且该第二部分的内容(例如为下表中的项目2)可被处理器电路110经由XIP控制器电路120更新。
举例而言,地址查找表ALT的形式可参考下表:
为易于理解,一并参照图4,图4为根据本发明一些实施例示出图3中的操作S310的流程图。操作S310可包含多个步骤S310-1~S310-4,且相关步骤将参照上表进行说明。
于步骤S310-1,获取指令欲读取的存储器地址。例如,指令CMD为一读取指令,且存储器地址RA为此读取指令欲读取的数据在存储器130中的储存地址。控制逻辑电路121可根据指令CMD获取存储器地址RA的信息。
于步骤S310-2,根据存储器地址搜索地址查找表,以确认是否有相同的先前地址。若是,则执行步骤S310-3;若否,则执行步骤S310-4。
于步骤S310-3,将先前地址对应的一预期地址输出为匹配地址。
于步骤S310-4,将此笔指令对应的存储器地址更新至先前地址,并将下一笔指令对应的存储器地址或是当前的预测地址更新至对应的预期地址。
举例而言,若控制逻辑电路121根据指令CMD得知存储器地址RA为第一地址,控制逻辑电路121根据存储器地址RA搜寻地址查找表ALT后确认存储器地址RA相同于项目(entry)1的第一地址。于此条件下,控制逻辑电路121可输出项目1的预期地址(即为第二地址)为前述的匹配地址A1。
反之,若控制逻辑电路121确认存储器地址RA不同于地址查找表ALT中的所有先前地址,控制逻辑电路121可将存储器地址RA更新至地址查找表ALT中的一项目的先前地址,并将下一笔指令CMD所对应的新存储器地址RA(或是当前的预测地址PA)更新至对应于相同项目的预期地址。于一些实施例中,控制逻辑电路121可依据最近最少使用(LeastRecently Used,LRU)或是循环制(Round Robin)等规则来更新地址查找表ALT。
例如,第一笔指令CMD对应的存储器地址RA为第三地址,且第二笔指令CMD对应的存储器地址RA为第四地址。若第三地址不存在于地址查找表ALT现有的先前地址且第三地址不同于第四地址,控制逻辑电路121将此第三地址记录至项目2的先前地址,并记录第四地址至项目2的预测地址,以供后续操作使用。
或者,若当前指令CMD对应的存储器地址RA为第三地址,且其不存在于地址查找表ALT现有的先前地址。若多任务器电路127响应于当前指令CMD输出预测地址PA(例如为第四地址)且预测地址PA不同于存储器地址RA,控制逻辑电路121将此第三地址记录至项目2的先前地址,并记录第四地址至项目2的预测地址,以供后续操作使用。
于一些实施例中,当预测地址PA与存储器地址RA为连续的存储器地址时(例如为预测地址PA相同于预想地址A3),控制逻辑电路121不执行更新地址查找表ALT的操作。
上述XIP控制方法300的多个操作以及操作S310的多个步骤仅为示例,并非限定需依照此示例中的顺序执行。在不违背本发明的各实施例的操作方式与范围下,上述的各种操作与/或各种步骤当可适当地增加、替换、省略或以不同顺序执行。
于一些实施例中,属于同一项目的先前地址与预测地址为一地址对。于一些实施例中,各个地址对可经由计算机仿真等方式预先决定,并事先储存于XIP控制器电路120的缓存器(例如为,但不限于,缓存器电路122)。
于一些实施例中,地址查找表ALT的初始状态可为无效。于一些实施例中,处理器电路110可通过XIP控制器电路120建立各个地址对至地址查找表ALT,并更新各个项目的状态为有效。于一些实施例中,当地址查找表ALT的一项目(例如为项目1)中的自动更新的字段被设定为否时,对应于此项目的信息不会被控制逻辑电路121更新;反之,当地址查找表ALT的一项目(例如为项目2)中的自动更新的字段被设定为是时,对应于此项目的信息可被控制逻辑电路121进行更新。
如先前图2所示,于一些实施例中,地址查找表ALT可储存于一独立的缓存器。图5为根据本发明一些实施例中示出图1的XIP控制器电路120的电路示意图。相较于图2,于此例中,地址查找表ALT储存于缓存器电路122。或者,参照图6,图6为根据本发明一些实施例中示出图1的XIP控制器电路120的电路示意图。相较于图2或图5,于此例中,一部分的地址查找表ALT储存于缓存器电路122,且另一部分的地址查找表ALT储存于独立的缓存器。
上述地址查找表ALT的形式以及设置方式用于示例,且本发明并不以上述形式与设置方式为限。地址查找表ALT的形式与设置方式可依据不同应用被调整或变动。
综上所述,本发明一些实施例所提供的处理***与XIP控制方法可根据处理器电路发出的指令预测下一次操作所需要使用的数据或指令,以自存储器预先取出上述数据或指令供处理器电路使用。如此一来,可减少处理器电路至存储器之间的传输延迟,以改善处理器电路执行指令的效率。
虽然本发明的实施例如上所述,然而这些实施例并非用来限定本发明,本技术领域具有通常知识者可依据本发明的明示或隐含的内容对本发明的技术特征施以变化,凡此种变化均可能属于本发明所寻求的专利保护范畴,换言之,本发明的专利保护范围须视本说明书的权利要求所界定者为准。
【符号说明】
100 处理***
110 处理器电路
120 XIP控制器电路
130 存储器
CMD 指令
PA 预测地址
S1 数据
S2 程序
121 控制逻辑电路
122 缓存器电路
123 数据缓冲器电路
124 选择电路
125 译码器电路
126 地址调整电路
127 多任务器电路
128 输出缓冲器电路
129 比较逻辑电路
A1 匹配地址
A2 跳转地址
A3 预想地址
A4 推估地址
ALT 地址查找表
P1 预定数值
RA 存储器地址
RA' 新存储器地址
SOFF 偏移值
SP 选择信号
SC 控制信号
300 芯片内执行控制方法
S310、S320、S330、S340、S350、S360、S370 操作
S310-1、S310-2、S310-3、S310-4 步骤。
Claims (10)
1.一种处理***,包含:
存储器;
处理器电路,用以输出一指令;以及
芯片内执行控制器电路,用以响应于该指令决定该存储器在该处理器电路的一下次操作中被读取的一预测地址,以根据该预测地址自该存储器预先取出一数据。
2.如权利要求1所述的处理***,其中,该芯片内执行控制器电路用以根据该指令获得该处理器电路欲读取的一第一存储器地址,并根据该第一存储器地址搜寻一地址查找表,以确认该地址查找表中是否存在一匹配地址,以产生该预测地址。
3.如权利要求2所述的处理***,其中,若该地址查找表中不存在该匹配地址,该芯片内执行控制器电路用以更新该第一存储器地址至该地址查找表,并更新一第二存储器地址至该地址查找表,以作为该第一存储器地址对应的该匹配地址。
4.如权利要求3所述的处理***,其中,该第二存储器地址为该处理器电路输出的一下一指令欲读取的一存储器地址或为该芯片内执行控制器电路响应于该指令决定的该预测地址。
5.如权利要求1所述的处理***,其中,该芯片内执行控制器电路用以根据该指令确认该处理器电路欲执行的一程序,并译码该程序以计算一跳转地址,以决定该预测地址。
6.如权利要求1所述的处理***,其中,该芯片内执行控制器电路用以根据该指令获得该处理器电路欲读取的一第一存储器地址,并根据该第一存储器地址与一预定数值产生一预想地址,以决定该预测地址。
7.如权利要求6所述的处理***,其中,该第一存储器地址与该预想地址为连续的存储器地址。
8.如权利要求1所述的处理***,其中,该芯片内执行控制器电路用以根据该指令决定一匹配地址、一跳转地址与一预想地址,并根据一优先级输出该匹配地址、该跳转地址与该预想地址中的一者为一推估地址,并输出该推估地址为该预测地址,其中该匹配地址为根据该指令与一查找表决定,该跳转地址为根据该指令译码一程序决定,且该预想地址为该指令所欲存取的一存储器地址的次一存储器地址。
9.如权利要求1所述的处理***,其中,该芯片内执行控制器电路还用以比较一新存储器地址与该预测地址,且若该新存储器地址不同于该预测地址,该芯片内执行控制器电路将该新存储器地址作为该预测地址,其中该新存储器地址为该处理器电路输出的一下一指令所欲读取的存储器地址。
10.一种芯片内执行控制方法,该方法包括:
根据自一处理器电路发送的一指令获取该处理器电路欲读取的一第一存储器地址;
根据该第一存储器地址搜寻一地址查找表,以输出一匹配地址;
根据该指令获取该处理器电路欲执行的一程序,并译码该程序以输出一跳转地址;
根据一预定数值与该第一存储器地址产生一预想地址;
根据一优先级输出该匹配地址、该跳转地址与该预想地址中的一者为一推估地址,并输出该推估地址为一预测地址;以及
根据该预测地址自一存储器预先取出一数据,以提供该处理器电路使用。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910978172.9A CN112667558A (zh) | 2019-10-15 | 2019-10-15 | 处理***与芯片内执行控制方法 |
TW108139664A TWI718744B (zh) | 2019-10-15 | 2019-11-01 | 處理系統與就地執行控制方法 |
US17/018,024 US20210109850A1 (en) | 2019-10-15 | 2020-09-11 | Processing system and execute in place control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910978172.9A CN112667558A (zh) | 2019-10-15 | 2019-10-15 | 处理***与芯片内执行控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112667558A true CN112667558A (zh) | 2021-04-16 |
Family
ID=75383968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910978172.9A Pending CN112667558A (zh) | 2019-10-15 | 2019-10-15 | 处理***与芯片内执行控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210109850A1 (zh) |
CN (1) | CN112667558A (zh) |
TW (1) | TWI718744B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001052062A2 (en) * | 2000-01-14 | 2001-07-19 | Advanced Micro Devices, Inc. | Computer system initialization via boot code stored in sequential access memory |
CN1484157A (zh) * | 2002-09-20 | 2004-03-24 | 联发科技股份有限公司 | 嵌入式***及其指令预取装置和方法 |
CN1606097A (zh) * | 2003-10-08 | 2005-04-13 | 三星电子株式会社 | 闪速存储器控制装置、存储器管理方法、及存储器芯片 |
CN105051684A (zh) * | 2013-03-14 | 2015-11-11 | 桑迪士克科技股份有限公司 | 用于预测和改进启动序列的***和方法 |
US20180095752A1 (en) * | 2016-09-30 | 2018-04-05 | Arm Limited | Instruction predecoding |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7246346B2 (en) * | 2002-09-17 | 2007-07-17 | Microsoft Corporation | System and method for persisting dynamically generated code in a directly addressable and executable storage medium |
EP1447742A1 (en) * | 2003-02-11 | 2004-08-18 | STMicroelectronics S.r.l. | Method and apparatus for translating instructions of an ARM-type processor into instructions for a LX-type processor |
US8171269B2 (en) * | 2009-03-06 | 2012-05-01 | Agere Systems Inc. | Branch target buffer with entry source field for use in determining replacement priority |
US20110083130A1 (en) * | 2009-10-01 | 2011-04-07 | Nokia Corporation | Dynamic execution context management in heterogeneous computing environments |
JP5916355B2 (ja) * | 2011-11-21 | 2016-05-11 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | プログラムの命令を実行する装置および命令をキャッシュするシステム |
US10387266B2 (en) * | 2015-12-23 | 2019-08-20 | Commvault Systems, Inc. | Application-level live synchronization across computing platforms including synchronizing co-resident applications to disparate standby destinations and selectively synchronizing some applications and not others |
CN107179878B (zh) * | 2016-03-11 | 2021-03-19 | 伊姆西Ip控股有限责任公司 | 基于应用优化的数据存储的方法和装置 |
US11461101B2 (en) * | 2019-09-27 | 2022-10-04 | Arm Technology (China) Co. LTD | Circuitry and method for selectively controlling prefetching of program instructions |
-
2019
- 2019-10-15 CN CN201910978172.9A patent/CN112667558A/zh active Pending
- 2019-11-01 TW TW108139664A patent/TWI718744B/zh active
-
2020
- 2020-09-11 US US17/018,024 patent/US20210109850A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001052062A2 (en) * | 2000-01-14 | 2001-07-19 | Advanced Micro Devices, Inc. | Computer system initialization via boot code stored in sequential access memory |
CN1484157A (zh) * | 2002-09-20 | 2004-03-24 | 联发科技股份有限公司 | 嵌入式***及其指令预取装置和方法 |
CN1606097A (zh) * | 2003-10-08 | 2005-04-13 | 三星电子株式会社 | 闪速存储器控制装置、存储器管理方法、及存储器芯片 |
CN105051684A (zh) * | 2013-03-14 | 2015-11-11 | 桑迪士克科技股份有限公司 | 用于预测和改进启动序列的***和方法 |
US20180095752A1 (en) * | 2016-09-30 | 2018-04-05 | Arm Limited | Instruction predecoding |
Also Published As
Publication number | Publication date |
---|---|
TW202117542A (zh) | 2021-05-01 |
TWI718744B (zh) | 2021-02-11 |
US20210109850A1 (en) | 2021-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8799585B2 (en) | Cache memory capable of adjusting burst length of write-back data in write-back operation | |
KR102447493B1 (ko) | 랭크 단위로 메모리 장치를 트레이닝하는 전자 장치 및 그것의 메모리 트레이닝 방법 | |
US9857981B2 (en) | Host interface controller and control method for storage device | |
JP2000507010A (ja) | 画素エンジン・データ・キャッシング機構 | |
KR101093317B1 (ko) | 데이터 처리 시스템 내의 프리패치 제어 | |
US20090049232A1 (en) | Execute-in-place implementation for a nand device | |
JP2010102623A (ja) | キャッシュメモリ及びその制御方法 | |
TWI324755B (en) | Processing modules with multilevel cache architecture | |
KR100532417B1 (ko) | 디지털 신호 처리장치의 저전력 소비형 캐시 메모리 장치및 이에 대한 제어방법 | |
KR20060009307A (ko) | 주변 장치 액세스 방지 기능을 갖는 데이터 처리 시스템 | |
CN112667558A (zh) | 处理***与芯片内执行控制方法 | |
US20040117556A1 (en) | Dynamic pipelining and prefetching memory data | |
US6862680B2 (en) | Microprocessor processing specified instructions as operands | |
US9575761B2 (en) | System and method for updating an instruction cache following a branch instruction in a semiconductor device | |
JP4431492B2 (ja) | 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット | |
US10810130B2 (en) | Cache memory device with access controller that accesses one of data memory and main memory based on retained cache hit determination result in response to next access | |
JP4985483B2 (ja) | 計算機システム、ネットワークブートロードシステム、及び、そのブートロード方法 | |
US8291193B2 (en) | Address translation apparatus which is capable of easily performing address translation and processor system | |
US8484437B2 (en) | Data processing apparatus using pre-fetched data | |
US10719440B2 (en) | Semiconductor device and memory access method | |
KR100486252B1 (ko) | 캐쉬 장치 및 이에 적합한 캐쉬 제어 방법 | |
CN117806987A (zh) | 一种处理器、存储器、数据读取方法及电子设备 | |
CN116521233A (zh) | 数据处理装置、操作方法和机器可读存储介质 | |
JP2002024088A (ja) | データ処理装置 | |
KR20060133397A (ko) | SoC 버스 시스템 및 제어방법 |
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 |