CN102609240A - 处理器电路及读取数据的方法 - Google Patents
处理器电路及读取数据的方法 Download PDFInfo
- Publication number
- CN102609240A CN102609240A CN2011100233987A CN201110023398A CN102609240A CN 102609240 A CN102609240 A CN 102609240A CN 2011100233987 A CN2011100233987 A CN 2011100233987A CN 201110023398 A CN201110023398 A CN 201110023398A CN 102609240 A CN102609240 A CN 102609240A
- Authority
- CN
- China
- Prior art keywords
- data
- processing unit
- data buffer
- load instructions
- processor 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000011068 loading method Methods 0.000 claims abstract description 25
- 239000000872 buffer Substances 0.000 claims description 53
- 230000005055 memory storage Effects 0.000 claims description 21
- 229920006395 saturated elastomer Polymers 0.000 claims description 5
- 230000003068 static effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 6
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 2
Images
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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Abstract
本发明提供了一种处理器电路及读取数据的方法,该处理器电路包含有一处理单元以及一数据缓存器,其中当该处理单元接收到一加载指令,并判断该加载指令具有一加载/使用条件时,该处理单元将执行该加载指令所读取的一特定数据储存至该数据缓存器中。
Description
技术领域
本发明涉及一种处理器电路及一种读取数据的方法。
背景技术
当一处理器需要使用到前一个指令所加载的数据内容来执行目前的指令时,会因为需要等待前一个指令所加载的数据内容而造成指令执行暂时中断的情形,亦即加载/使用损失(load-use penalty)事件。举例来说,请参考图1,假设处理器接收到一加载指令以及一加法指令,其中加载指令要求自一外部存储器或一高速存储器中读取所需的数据,而加法指令是将加载指令所读取的数据相加,则以一5阶管线(5-stage pipeline)的例子来说,处理器在时间点t1~t5分别对加载指令进行“指令读取”(instruction fetch)、“译码”(decode)、“执行”(execute)、“存储器存取”(memory access)以及“写回”(write back)操作,并且处理器还在时间点t2开始执行加法指令,然而,因为处理器在执行加法指令时需要使用到加载指令所读取的数据,因此处理器需要等到时间点t5才能够进行“执行”操作,如此一来,处理器在执行加法指令时,在时间点t4会有执行暂时中断的情形,亦即在时间点t4会有加载/使用损失事件,从而降低了处理器的执行效率。
此外,随着处理器使用更高阶的管线(例如8阶管线)来执行指令,加载/使用损失事件的发生次数会更多,损失会更大,因而更严重地影响处理器的执行效率。
发明内容
因此,本发明的目的之一在于提供一种处理器电路以及一种读取数据的方法,其可以有效地减少加载/使用损失事件的发生,以增进处理器的执行效率。
根据本发明一实施例,一种处理器电路包含有一处理单元以及一数据缓存器,其中当该处理单元接收到一加载指令,并判断该加载指令具有一加载/使用条件时,该处理单元将执行该加载指令所读取的一特定数据储存至该数据缓存器中。
根据本发明另一实施例,一种读取数据的方法包含有:提供一数据缓存器;接收一加载指令。并判断该加载指令是否具有一加载/使用条件;以及当判断该加载指令具有该加载/使用条件时,将执行该加载指令所读取的一特定数据储存至该数据缓存器中。
附图说明
图1为加载/使用损失事件的示意图。
图2为根据本发明一实施例的处理器电路的示意图。
图3为根据本发明一实施例的读取数据的方法的流程图。
图4为处理单元使用一5阶管线执行一加载指令以及一加法指令的示意图。
主要组件符号说明
200处理器电路 210处理单元
220数据缓存器 230高速存储器
240外部存储器 300~316步骤
具体实施方式
请参考图2,图2为根据本发明一实施例的处理器电路200的示意图。如图2所示,处理器电路200包含有一处理单元210、一数据缓存器220、一高速存储器230,其中数据缓存器220是以多个寄存器(register)来实现,且高速存储器230是以静态随机存取存储器(Static Random AccessMemory,SRAM)来实现,且处理单元210对数据缓存器220的存取速度快于对高速存储器230的存取速度。
请同时参考图2以及图3,图3为根据本发明一实施例的处理器电路200读取数据的方法的流程图。参考图3,流程叙述如下:
首先,在步骤300,流程开始。接着,在步骤302,处理单元210接收一加载指令,其中该加载指令要求自外部存储器240或高速存储器230中读取一特定数据,并且处理单元210判断该加载指令是否具有一加载/使用条件,亦即判断在紧接着该加载指令之后,处理单元210是否需要立刻执行一需要使用该特定数据的使用指令。若该加载指令具有加载/使用条件,则流程进入步骤304;若该加载指令不具有加载/使用条件,则流程进入步骤314以直接自高速存储器230或是外部存储器240读取该特定数据。
在步骤304中,处理单元210同时发出一读取请求至数据缓存器220与高速存储器230中,以要求读取该特定数据。接着,在步骤306中,数据缓存器220判断其中是否储存有该特定数据,若数据缓存器220储存有该特定数据,则流程进入步骤308且处理单元210直接使用数据缓存器220因响应该读取请求所回传的该特定数据,而不使用来自高速存储器230所回传的数据;若数据缓存器220不具有该特定数据,则流程进入步骤310且处理单元210直接自高速存储器230或是外部存储器240读取该特定数据。
接着,在步骤312中,处理单元210将该特定数据以及该特定数据于外部存储器230中的地址储存至数据缓存器220中,特别地,考虑到数据缓存器220的容量限制,处理单元210使用一最近最少使用算法(LeastRecently Used,LRU)以将该特定数据以及该特定数据于外部存储器230中的地址储存至数据缓存器220中,亦即当数据缓存器220的容量饱和时,处理单元210将数据缓存器220中最长时间没有使用的数据删除。最后,流程进入步骤316以结束处理单元210对加载指令的操作。
如上所述,当处理单元210判断该加载指令具有一加载/使用条件时(亦即于执行下一指令时会发生加载/使用损失(load-use penalty)事件),处理单元210将所读取的一特定数据以及该特定数据于一外部存储器的地址储存至数据缓存器220,如此一来,之后若是处理单元210需要再次读取该特定数据时,便可以直接自数据缓存器220中读取,而且因为处理单元210对数据缓存器220的存取速度相当快,因此处理单元210便可以很快地读取到该特定数据,且处理单元210在紧接着执行一需要使用该特定数据的使用指令时就不需要暂时中断指令执行,亦即不会有加载/使用损失事件的发生。举例来说,请参考图4,假设处理器接收到一加载指令以及一加法指令,其中加载指令要求自外部存储器240或是高速存储器230中读取所需的数据,而加法指令将加载指令所读取的数据相加,则以一5阶管线的例子来说,处理单元210在时间点t1~t5分别对加载指令进行“指令读取”、“译码”、“执行”、“存储器存取”以及“写回”操作,并且处理单元210还在时间点t2开始对加法指令进行处理,因为处理单元210在时间点t4时可以自数据缓存器220很快速地读取到所需的数据,因此,处理单元210便可以在时间点t4进行加法指令中的“执行”操作,亦即处理单元210在执行加法指令时不需要如图1所示的被中断。
此外,因为数据缓存器220中所储存的是处理单元210所读取的数据及其在外部存储器240中的地址,因此,在步骤304中处理单元210所发出的读取请求包含了一外部存储器地址,且于步骤306中数据缓存器220可以通过判断其中是否具有该外部存储器地址来判断数据缓存器220中是否有处理单元210所要求的数据。
在上述的步骤312中,处理单元210使用一最近最少使用算法以将该特定数据以及该特定数据于外部存储器230的地址储存至数据缓存器220中,亦即当数据缓存器220的容量饱和时,处理单元210将数据缓存器220中最长时间没有使用的数据删除。然而,在本发明的另一实施例中,数据缓存器220中所储存的每一笔数据都会纪录该笔数据被使用的次数,而当数据缓存器220的容量饱和时,可以根据所纪录的次数来选择自数据缓存器220中删除的数据(例如:将最少使用的数据自数据缓存器220中删除)。
简要归纳本发明,在本发明的处理器电路及读取数据的方法中,当处理单元判断一加载指令具有一加载/使用条件时,处理单元便会将所读取的一特定数据以及该特定数据于一外部存储器的地址储存至数据缓存器,如此一来,之后若是处理单元需要再次读取该特定数据时便可以直接自数据缓存器220中读取,而避免处理单元210在紧接着执行一需要使用该特定数据的使用指令时发生加载/使用损失事件,进而提升处理器电路的执行效率。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (17)
1.一种处理器电路,包含有:
一处理单元,用以接收一加载指令;以及
一数据缓存器,耦接所述处理单元;
其中,当所述处理单元接收到所述加载指令,并判断所述加载指令具有一加载/使用条件时,所述处理单元将执行所述加载指令所读取的一特定数据储存至所述数据缓存器中。
2.根据权利要求1所述的处理器电路,其中,所述加载/使用条件是指于执行下一指令时会发生加载/使用损失事件。
3.根据权利要求1所述的处理器电路,其中,所述处理单元将所述特定数据以及所述特定数据于一外部存储器的地址储存至所述数据缓存器中。
4.根据权利要求1所述的处理器电路,还包含有:
一高速存储器,耦接于所述处理单元与一外部存储器之间;
其中,当所述处理单元要自所述外部存储器读取一所需数据时,所述处理单元同时发出一读取请求至所述数据缓存器与所述高速存储器中。
5.根据权利要求4所述的处理器电路,其中,所述处理单元仅使用所述数据缓存器因响应所述读取请求所回传的所述所需数据。
6.根据权利要求4所述的处理器电路,其中,当所述处理单元判断所述加载指令不具有所述加载/使用条件时,所述处理单元直接自所述高速存储器或是所述外部存储器读取所述特定数据。
7.根据权利要求4所述的处理器电路,其中,所述数据缓存器包括多个寄存器,且所述高速存储器是一静态随机存取存储器。
8.根据权利要求1所述的处理器电路,其中,所述处理单元是以一最近最少使用算法将所述特定数据以及所述特定数据于所述外部存储器的地址储存至所述数据缓存器中。
9.根据权利要求1所述的处理器电路,其中,当所述数据缓存器中的数据饱和时,所述处理单元将储存于所述数据缓存器中使用次数最少的数据自所述数据缓存器中删除。
10.一种读取数据的方法,包含有:
接收一加载指令;
判断所述加载指令是否具有一加载/使用条件;以及
当判断所述加载指令具有所述加载/使用条件时,将执行所述加载指令所读取的一特定数据储存至一数据缓存器中。
11.根据权利要求10所述的方法,其中,所述加载/使用条件是指于执行下一指令时会发生加载/使用损失事件。
12.根据权利要求10所述的方法,其中,将执行所述加载指令所读取的所述特定数据储存至所述数据缓存器中的步骤包含有:
将所述特定数据以及所述特定数据于一外部存储器的地址储存至所述数据缓存器中。
13.根据权利要求10所述的方法,还包含有:
提供一高速存储器,耦接于所述处理单元与所述外部存储器之间;
当所述处理单元要自所述外部存储器读取一所需数据时,同时发出一读取请求至所述数据缓存器与所述高速存储器中。
14.根据权利要求13所述的方法,其中,所述处理单元仅使用所述数据缓存器因响应所述读取请求所回传的所述所需数据。
15.根据权利要求13所述的方法,还包含有:
当判断所述加载指令不具有所述加载/使用条件时,直接自所述高速存储器或是所述外部存储器读取所述特定数据。
16.根据权利要求10所述的方法,还包含有:
使用一最近最少使用算法将所述特定数据以及所述特定数据于所述外部存储器的地址储存至所述数据缓存器中。
17.根据权利要求10所述的方法,还包含有:
当所述数据缓存器中的数据饱和时,将储存于所述数据缓存器中使用次数最少的数据自所述数据缓存器中删除。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110023398.7A CN102609240B (zh) | 2011-01-20 | 2011-01-20 | 处理器电路及读取数据的方法 |
US13/345,754 US20120191910A1 (en) | 2011-01-20 | 2012-01-09 | Processing circuit and method for reading data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110023398.7A CN102609240B (zh) | 2011-01-20 | 2011-01-20 | 处理器电路及读取数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102609240A true CN102609240A (zh) | 2012-07-25 |
CN102609240B CN102609240B (zh) | 2016-04-06 |
Family
ID=46526641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110023398.7A Active CN102609240B (zh) | 2011-01-20 | 2011-01-20 | 处理器电路及读取数据的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20120191910A1 (zh) |
CN (1) | CN102609240B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577347A (zh) * | 2012-08-03 | 2014-02-12 | 国际商业机器公司 | 用于操作存储器设备的方法和用于存储器操作的系统 |
CN103810116A (zh) * | 2013-12-24 | 2014-05-21 | 苏州国芯科技有限公司 | 用于嵌入式系统的指令存储装置 |
CN103810117A (zh) * | 2013-12-24 | 2014-05-21 | 苏州国芯科技有限公司 | 处理器用指令存储系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020004888A1 (en) * | 2000-05-18 | 2002-01-10 | Hiroshi Hayakawa | Method of controlling access to memories and an access controlling unit |
US20050060517A1 (en) * | 2003-09-12 | 2005-03-17 | Morrow Michael W. | Switching processor threads during long latencies |
US20050066131A1 (en) * | 2003-09-24 | 2005-03-24 | Arm Limited | Apparatus and method for loading data values |
CN1834942A (zh) * | 2005-03-17 | 2006-09-20 | 富士通株式会社 | 信息处理设备和信息处理设备的数据控制方法 |
US20070050603A1 (en) * | 2002-08-07 | 2007-03-01 | Martin Vorbach | Data processing method and device |
CN101535992A (zh) * | 2006-09-17 | 2009-09-16 | 诺基亚公司 | 用于便携设备的自适应高速缓存架构和数据传送 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100258079B1 (ko) * | 1997-12-17 | 2000-06-01 | 이계철 | 밀결합 결함 허용 시스템에서 메모리 버스 확장에 의한 동시 쓰기 이중화 장치 |
US6542991B1 (en) * | 1999-05-11 | 2003-04-01 | Sun Microsystems, Inc. | Multiple-thread processor with single-thread interface shared among threads |
US20110022802A1 (en) * | 2009-07-27 | 2011-01-27 | Arm Limited | Controlling data accesses to hierarchical data stores to retain access order |
-
2011
- 2011-01-20 CN CN201110023398.7A patent/CN102609240B/zh active Active
-
2012
- 2012-01-09 US US13/345,754 patent/US20120191910A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020004888A1 (en) * | 2000-05-18 | 2002-01-10 | Hiroshi Hayakawa | Method of controlling access to memories and an access controlling unit |
US20070050603A1 (en) * | 2002-08-07 | 2007-03-01 | Martin Vorbach | Data processing method and device |
US20050060517A1 (en) * | 2003-09-12 | 2005-03-17 | Morrow Michael W. | Switching processor threads during long latencies |
US20050066131A1 (en) * | 2003-09-24 | 2005-03-24 | Arm Limited | Apparatus and method for loading data values |
CN1834942A (zh) * | 2005-03-17 | 2006-09-20 | 富士通株式会社 | 信息处理设备和信息处理设备的数据控制方法 |
CN101535992A (zh) * | 2006-09-17 | 2009-09-16 | 诺基亚公司 | 用于便携设备的自适应高速缓存架构和数据传送 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577347A (zh) * | 2012-08-03 | 2014-02-12 | 国际商业机器公司 | 用于操作存储器设备的方法和用于存储器操作的系统 |
CN103577347B (zh) * | 2012-08-03 | 2016-12-28 | 国际商业机器公司 | 用于操作存储器设备的方法和用于存储器操作的系统 |
CN103810116A (zh) * | 2013-12-24 | 2014-05-21 | 苏州国芯科技有限公司 | 用于嵌入式系统的指令存储装置 |
CN103810117A (zh) * | 2013-12-24 | 2014-05-21 | 苏州国芯科技有限公司 | 处理器用指令存储系统 |
CN103810117B (zh) * | 2013-12-24 | 2017-03-22 | 苏州国芯科技有限公司 | 处理器用指令存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102609240B (zh) | 2016-04-06 |
US20120191910A1 (en) | 2012-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102668599B1 (ko) | 하드웨어 가속을 위한 하드웨어 리소스들의 임베디드 스케줄링 | |
US8516492B2 (en) | Soft partitions and load balancing | |
CN103827818B (zh) | Fifo加载指令 | |
CN102750174A (zh) | 文件加载方法及装置 | |
KR20160079646A (ko) | 비대칭적 프로세서 코어 간의 협력적 실행을 위한 기법 | |
CN110865888A (zh) | 一种资源加载方法、装置、服务器及存储介质 | |
CN104407809A (zh) | 多通道fifo缓冲器及其控制方法 | |
CN101310241A (zh) | 用于在多处理器系统中共享存储器的方法和装置 | |
CN107480074A (zh) | 一种缓存方法、装置及电子设备 | |
CN105095104A (zh) | 数据缓存处理方法及装置 | |
CN102609240A (zh) | 处理器电路及读取数据的方法 | |
CN110543435B (zh) | 存储单元的混合映射操作方法、装置、设备及存储介质 | |
CN110928574A (zh) | 微控制器、中断处理芯片、设备及中断处理方法 | |
US20210318883A1 (en) | Apparatus and method for writing back instruction execution result and processing apparatus | |
CN101341471B (zh) | 动态高速缓存管理的设备和方法 | |
CN103377060B (zh) | 一种计算机程序加速方法和系统 | |
WO2021061514A1 (en) | Processor and interrupt controller therein | |
CN103761052A (zh) | 一种管理高速缓存的方法及存储装置 | |
TWI435267B (zh) | 處理器電路及讀取資料的方法 | |
CN105630556A (zh) | 一种加载资源的方法和系统 | |
CN105760317A (zh) | 数据写系统和用于核心处理器的数据写方法 | |
CN101593095B (zh) | 基于流水级的数据处理方法和系统 | |
JP5505195B2 (ja) | メモリの制御装置、及び制御方法 | |
CN102929677A (zh) | 多数字信号处理器的加载系统及方法 | |
US9645936B1 (en) | System and method for informing hardware to limit writing in a memory hierarchy |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |