CN101526896A - 嵌入式处理器的加载/存储单元 - Google Patents

嵌入式处理器的加载/存储单元 Download PDF

Info

Publication number
CN101526896A
CN101526896A CN200910095782A CN200910095782A CN101526896A CN 101526896 A CN101526896 A CN 101526896A CN 200910095782 A CN200910095782 A CN 200910095782A CN 200910095782 A CN200910095782 A CN 200910095782A CN 101526896 A CN101526896 A CN 101526896A
Authority
CN
China
Prior art keywords
speed cache
sheet
cache
instruction
visit
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
Application number
CN200910095782A
Other languages
English (en)
Other versions
CN101526896B (zh
Inventor
严晓浪
丁永林
葛海通
孟建熠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou C Sky Microsystems Co Ltd
Original Assignee
Hangzhou C Sky Microsystems Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou C Sky Microsystems Co Ltd filed Critical Hangzhou C Sky Microsystems Co Ltd
Priority to CN2009100957820A priority Critical patent/CN101526896B/zh
Publication of CN101526896A publication Critical patent/CN101526896A/zh
Application granted granted Critical
Publication of CN101526896B publication Critical patent/CN101526896B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种嵌入式处理器的加载/存储单元,在所述加载/存储单元中,采用全流水线方式读写指令对片上高速缓存进行访问,如果前序指令发生访问缺失时,将引起访问缺失的指令保存到专用访问缺失缓冲器中,并释放流水线资源,后续指令继续访问高速缓存;设置独立的片外更新缓冲器缓存片外存储器的写操作,将片外存储器写操作的快速退休;设置独立的片上更新缓冲器缓存片上高速缓存更新操作,将高速缓存写操作的快速退休。本发明在发生高速缓存访问缺失时,不会阻塞流水线,提升了处理器性能。

Description

嵌入式处理器的加载/存储单元
技术领域
本发明涉及一种嵌入式处理器的加载/存储单元。
背景技术
近年来随着高性能嵌入式处理器的发展,为了提高内部逻辑元件的利用率以提高整个处理器的性能,通常会采用多指令发射、乱序执行等各种方法。现在普遍使用的一些超标量处理器通常能够在一个指令周期内并发执行多条指令。处理器从指令高速缓存中预取了一批指令后,就会分析出那些没有关联性可以并行执行的指令,然后发射到几个独立的执行单元进行并行执行。
通常来说加载/存储指令(由加载/存储单元执行)需要多个指令周期,而一般的算术指令通常在一个指令周期执行完成,所以数据的加载/存储指令成为了限制嵌入式处理器性能提升的瓶颈。为了解决这个矛盾,处理器设计的先驱们提出了采用存储器层次结构的想法,其依据是程序访问的局部性原理和内存技术的性能价格比原则。通过在嵌入式处理器和存储器之间设置高速缓存的层次结构来提升嵌入式处理器的整体性能。
在过去的十几年中,无数科学家和工程师为此做了大量的工作,目标就是为了减少访问高速缓存的时间。在他们的不懈努力下,高速缓存的访问时间已经减少到了接近一个时钟周期。也就是说,只要不发生高速缓存的访问缺失,执行加载/存储指令也可以在一个指令周期内完成。但是由于高速缓存访问缺失的存在,一旦发生访问缺失,数据的加载/存储需要通过外部总线从片外存储器中去加载/存储数据,这个过程需要几个甚至几十个指令周期。而由于当前主流的嵌入式高性能处理器普遍采用流水线结构,前续指令的停顿会阻塞整条流水线的正常执行。
发明内容
为了克服已有的嵌入式处理器的加载/存储单元由于高速缓存的缺失,在长延时的存储器访问时阻塞流水线,削弱了处理器性能的不足,本发明提供一种在发生高速缓存访问缺失时,不会阻塞流水线,提升处理器性能的嵌入式处理器的加载/存储单元。
本发明解决其技术问题所采用的技术方案是:
一种嵌入式处理器的加载/存储单元,在所述加载/存储单元中,采用全流水线方式读写指令对片上高速缓存进行访问,如果前序指令发生访问缺失时,将引起访问缺失的指令保存到专用访问缺失缓冲器中,并释放流水线资源,后续指令继续访问高速缓存。
作为优选的一种方案:设置独立的片外更新缓冲器缓存片外存储器的写操作,将片外存储器写操作的快速退休。
作为优选的另一种方案:设置独立的片上更新缓冲器缓存片上高速缓存更新操作,将高速缓存写操作的快速退休。
作为优选的再一种技术方案:所述的片上更新缓冲器的更新请求,在高速缓存空闲的间隙进行更新片上高速缓存操作。
进一步,将片上更新缓冲器的更新请求设置为优先级最低的请求,当其他访问片上高速缓存的模块出现访问间隙时,片上更新缓冲器获得更新片上高速缓存的权限。
作为优选的再另一种方案:所述的专用访问缺失缓冲器支持存储多条高速缓存访问指令的缺失请求,同时将造成高速缓存访问缺失的指令从流水线上剔除。
再进一步,全流水方式实现读写指令对片上高速缓存的访问的过程为:通过将读写指令访问片上高速缓存划分为若干个步骤,当前序指令在执行的时候,立刻启动后序指令的操作步骤。
更进一步,执行读取高速缓存数据的指令,需要经过数据存储地址计算阶段、高速缓存访问阶段和读取数据处理阶段,每一条读指令经过流水线的三拍完成数据的读取工作并返回所读取到底正确数据;执行高速缓存写入操作的指令,经过数据存储地址计算阶段和高速缓存访问阶段。
本发明的技术构思为:一种嵌入式处理器的加载/存储单元的非阻塞流水线技术,使得前续加载/存储指令在发生高速缓存访问缺失,造成长延时的存储器访问时,后面的加载/存储指令仍然可以正常执行,更新高速缓存。
本发明的有益效果主要表现在:在发生高速缓存访问缺失时,不会阻塞流水线,可提升处理器性能达5%。
附图说明
图1是一种非阻塞的片上高速缓存访问机制的流水线划分图。
图2是一种非阻塞的片上高速缓存访问机制的硬件结构图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1和图2,一种嵌入式处理器的加载/存储单元,在所述加载/存储单元中,采用全流水线方式读写指令对片上高速缓存进行访问,如果前序指令发生访问缺失时,将引起访问缺失的指令保存到专用访问缺失缓冲器中,并释放流水线资源,后续指令继续访问高速缓存。
设置独立的片外更新缓冲器缓存片外存储器的写操作,将片外存储器写操作的快速退休;设置独立的片上更新缓冲器缓存片上高速缓存更新操作,将高速缓存写操作的快速退休。
本实施例采用全流水方式实现读写指令对片上高速缓存的访问:全流水方式实现读写指令对片上高速缓存的访问指的是,每次对片上高速缓存的访问操作,需要经过多个操作步骤(多个时钟周期),才能实现读写指令对片上高速缓存所进行的访问操作。具体来说,执行读取高速缓存数据的指令,需要经过三个操作步骤(数据存储地址计算阶段,高速缓存访问阶段,读取数据处理阶段),如图一所示。每一条读指令,经过流水线的三拍,完成数据的读取工作并返回所读取到底正确数据。而执行高速缓存写入操作的指令,只需要经过两个操作步骤(数据存储地址计算阶段,高速缓存访问阶段),提前完成对高速缓存的数据的写入指令的操作。
所述的当前序指令发生访问缺失时,不阻塞流水线,后序指令继续访问高速缓存,实现在前序指令访问缺失下的后序指令不停顿地对高速缓存的访问:当程序指令中的前续指令发生高速缓存访问缺失时,前续指令会被保存到专门的缓冲器中,并会被从流水线上剔除。这样流水线不会出现阻塞,后续访问高速缓存的指令自然就不会发生停顿,按照正常的指令执行步骤执行,对高速缓存进行读写访问。
所述的当出现高速缓存访问缺失时,将引起访问缺失的指令保存到专用访问缺失缓冲器中,并释放流水线资源:当发生高速缓存访问缺失时,为了保持流水线运行的通畅,采用专门的访问缺失缓冲器来缓存造成高速缓存访问缺失的指令(如图2所示),并把这条指令从流水线上剔除。而访问缺失缓冲器则负责在高速缓存访问缺失情况下,从片外内存装载数据回填高速缓存,并完成读取数据的指令。
所述的访问缺失缓冲器支持多次连续高速缓存访问缺失请求:访问缺失缓冲器由多个表项组成,用来存储当发生高速缓存访问缺失时的数据读取指令。当多条数据读取指令发生连续高速缓存访问缺失时,这些指令会以先进先出的形式,被保存到访问缺失缓冲器中,同时这些高速缓存访问缺失指令都将被从流水线上剔除,以保证流水线的通畅。
所述的采用独立的片外更新缓冲器缓存片外存储器的写操作,实现片外存储器写操作的快速退休,消除因总线延时产生的流水线阻塞:如图2所示,片外更新缓冲器由多个表项组成,专门用于缓存对片外存储器的写操作指令。由于片外更新缓冲器将流水线和数据总线隔离,避免了因数据总线的延时而造成的流水线阻塞。当对片外存储器的写操作指令存储到片外更新缓冲器后,该指令会快速退休。而片外更新缓冲器则负责通过数据总线将数据写出到片外内存中。
所述的采用独立的片上更新缓冲器缓存片上高速缓存更新操作,实现高速缓存写操作的快速退休:如图2所示,独立的片上更新缓冲器,是由多个表项组成,专门用于缓存对片上高速缓存的写操作指令。将片上高速缓存的写操作指令存储到片上更新缓冲器后,该指令会快速退休。同时片上高速缓存更新缓冲器负责将需要更新的数据写入到片上高速缓存中。
所述的片上更新缓冲器的更新请求,仅在数据读写指令访问片上高速缓存的间隙更新片上高速缓存,解决由于访问片上高速缓存的资源冲突所造成的流水线阻塞:片上更新缓冲器是负责更新片上高速缓存数据的模块,它的更新请求被设计成各种访问片上高速缓存的请求中优先级最低的请求。只有在其他访问片上高速缓存的请求出现访问间隙时,片上更新缓冲器才能获得更新片上高速缓存的机会,这样就解除了由于多个模块竞争访问片上高速缓存,出现的资源冲突所造成的流水线阻塞。

Claims (10)

1、一种嵌入式处理器的加载/存储单元,在所述加载/存储单元中,采用全流水线方式实现读写指令对片上高速缓存进行访问,其特征在于:如果前序指令发生访问缺失时,将引起访问缺失的指令保存到专用访问缺失缓冲器中,并释放流水线资源,后续指令继续访问高速缓存。
2、如权利要求1所述的嵌入式处理器的加载/存储单元,其特征在于:设置独立的片外更新缓冲器缓存片外存储器的写操作,将片外存储器写操作的快速退休。
3、如权利要求1所述的嵌入式处理器的加载/存储单元,其特征在于:设置独立的片上更新缓冲器缓存片上高速缓存更新操作,将高速缓存写操作的快速退休。
4、如权利要求2所述的嵌入式处理器的加载/存储单元,其特征在于:设置独立的片上更新缓冲器缓存片上高速缓存更新操作,将高速缓存写操作的快速退休。
5、如权利要求1-4之一所述的嵌入式处理器的加载/存储单元,其特征在于:所述的片上更新缓冲器的更新请求,在高速缓存空闲的间隙进行更新片上高速缓存操作。
6、如权利要求1-4之一所述的嵌入式处理器的加载/存储单元,其特征在于:将片上更新缓冲器的更新请求设置为优先级最低的请求,当其他访问片上高速缓存的模块出现访问间隙时,片上更新缓冲器获得更新片上高速缓存的权限。
7、如权利要求1-4之一所述的嵌入式处理器的加载/存储单元,其特征在于:所述的专用访问缺失缓冲器支持存储多条高速缓存访问指令的缺失请求,同时将造成高速缓存访问缺失的指令从流水线上剔除。
8、如权利要求1-4之一所述的嵌入式处理器的加载/存储单元,其特征在于:全流水方式实现读写指令对片上高速缓存的访问的过程为:通过将读写指令访问片上高速缓存划分为若干个步骤,当前序指令在执行的时候,立刻启动后序指令的操作步骤。
9、如权利要求7所述的嵌入式处理器的加载/存储单元,其特征在于:执行读取高速缓存数据的指令,需要经过数据存储地址计算阶段、高速缓存访问阶段和读取数据处理阶段,每一条读指令经过流水线的三拍完成数据的读取工作并返回所读取到的正确数据;执行高速缓存写入操作的指令,经过数据存储地址计算阶段和高速缓存访问阶段。
10、如权利要求7所述的嵌入式处理器的加载/存储单元,其特征在于:全流水方式实现读写指令对片上高速缓存的访问的过程为:通过将读写指令访问片上高速缓存划分为若干个步骤,当前序指令在执行的时候,立刻启动后序指令的操作步骤。
CN2009100957820A 2009-01-22 2009-01-22 嵌入式处理器的加载/存储单元 Active CN101526896B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100957820A CN101526896B (zh) 2009-01-22 2009-01-22 嵌入式处理器的加载/存储单元

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100957820A CN101526896B (zh) 2009-01-22 2009-01-22 嵌入式处理器的加载/存储单元

Publications (2)

Publication Number Publication Date
CN101526896A true CN101526896A (zh) 2009-09-09
CN101526896B CN101526896B (zh) 2011-11-23

Family

ID=41094767

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100957820A Active CN101526896B (zh) 2009-01-22 2009-01-22 嵌入式处理器的加载/存储单元

Country Status (1)

Country Link
CN (1) CN101526896B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662634A (zh) * 2012-03-21 2012-09-12 杭州中天微系统有限公司 非阻塞发射和执行的存储器访问执行装置
CN102722341A (zh) * 2012-05-17 2012-10-10 杭州中天微系统有限公司 存储载入单元投机执行控制装置
CN101719055B (zh) * 2009-12-03 2012-10-10 杭州中天微系统有限公司 快速执行加载存储指令模块
WO2016206490A1 (zh) * 2015-06-26 2016-12-29 深圳市中兴微电子技术有限公司 一种用于提高表项访问带宽和原子性操作的装置及方法
CN107368450A (zh) * 2016-05-11 2017-11-21 国际商业机器公司 实现维护被拒指令的加载/存储单元的多片处理器的操作
CN110647357A (zh) * 2018-06-27 2020-01-03 展讯通信(上海)有限公司 同步多线程处理器
CN110889147A (zh) * 2019-11-14 2020-03-17 中国人民解放军国防科技大学 一种利用填充缓存抵御Cache边信道攻击的方法
CN111142941A (zh) * 2019-11-27 2020-05-12 核芯互联科技(青岛)有限公司 一种非阻塞高速缓存缺失处理方法及装置
CN113934653A (zh) * 2021-09-15 2022-01-14 合肥大唐存储科技有限公司 一种嵌入式系统的Cache实现方法和装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5933651A (en) * 1995-09-29 1999-08-03 Matsushita Electric Works, Ltd. Programmable controller
US6185660B1 (en) * 1997-09-23 2001-02-06 Hewlett-Packard Company Pending access queue for providing data to a target register during an intermediate pipeline phase after a computer cache miss
CN1375771A (zh) * 2001-03-16 2002-10-23 矽统科技股份有限公司 回写型高速缓冲存储器的装置与控制方法
US7383403B1 (en) * 2004-06-30 2008-06-03 Sun Microsystems, Inc. Concurrent bypass to instruction buffers in a fine grain multithreaded processor
US7461239B2 (en) * 2006-02-02 2008-12-02 International Business Machines Corporation Apparatus and method for handling data cache misses out-of-order for asynchronous pipelines
CN100461095C (zh) * 2007-11-20 2009-02-11 浙江大学 一种支持多模式的媒体增强流水线乘法单元设计方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719055B (zh) * 2009-12-03 2012-10-10 杭州中天微系统有限公司 快速执行加载存储指令模块
CN102662634A (zh) * 2012-03-21 2012-09-12 杭州中天微系统有限公司 非阻塞发射和执行的存储器访问执行装置
CN102722341A (zh) * 2012-05-17 2012-10-10 杭州中天微系统有限公司 存储载入单元投机执行控制装置
CN102722341B (zh) * 2012-05-17 2014-12-24 杭州中天微系统有限公司 存储载入单元投机执行控制装置
US10545867B2 (en) 2015-06-26 2020-01-28 Sanechips Technology Co., Ltd. Device and method for enhancing item access bandwidth and atomic operation
WO2016206490A1 (zh) * 2015-06-26 2016-12-29 深圳市中兴微电子技术有限公司 一种用于提高表项访问带宽和原子性操作的装置及方法
CN107368450A (zh) * 2016-05-11 2017-11-21 国际商业机器公司 实现维护被拒指令的加载/存储单元的多片处理器的操作
CN110647357A (zh) * 2018-06-27 2020-01-03 展讯通信(上海)有限公司 同步多线程处理器
CN110889147A (zh) * 2019-11-14 2020-03-17 中国人民解放军国防科技大学 一种利用填充缓存抵御Cache边信道攻击的方法
CN110889147B (zh) * 2019-11-14 2022-02-08 中国人民解放军国防科技大学 一种利用填充缓存抵御Cache边信道攻击的方法
CN111142941A (zh) * 2019-11-27 2020-05-12 核芯互联科技(青岛)有限公司 一种非阻塞高速缓存缺失处理方法及装置
CN113934653A (zh) * 2021-09-15 2022-01-14 合肥大唐存储科技有限公司 一种嵌入式系统的Cache实现方法和装置
CN113934653B (zh) * 2021-09-15 2023-08-18 合肥大唐存储科技有限公司 一种嵌入式系统的Cache实现方法和装置

Also Published As

Publication number Publication date
CN101526896B (zh) 2011-11-23

Similar Documents

Publication Publication Date Title
CN101526896B (zh) 嵌入式处理器的加载/存储单元
Joshi et al. Atom: Atomic durability in non-volatile memory through hardware logging
US8255633B2 (en) List based prefetch
US20150186278A1 (en) Runtime persistence
TWI454909B (zh) 減少記憶體裝置之功率消耗之記憶體裝置、方法及系統
US9645942B2 (en) Method for pinning data in large cache in multi-level memory system
US9092346B2 (en) Speculative cache modification
CN101187908A (zh) 单芯片多处理器共享数据存储空间的访问方法
KR102594288B1 (ko) 성능 또는 에너지 소모 특성이 상이한 제1 및 제2 처리 모드를 갖는 처리 파이프라인
US20100191913A1 (en) Reconfiguration of embedded memory having a multi-level cache
US9870315B2 (en) Memory and processor hierarchy to improve power efficiency
EP2831744A1 (en) Apparatus and method for fast cache shutdown
US20050228971A1 (en) Buffer virtualization
WO2023129386A1 (en) Leveraging processing-in-memory (pim) resources to expedite non-pim instructions executed on a host
CN104182281A (zh) 一种gpgpu寄存器缓存的实现方法
CN114911724B (zh) 一种基于多bank的cache预取技术的访存结构
US7900023B2 (en) Technique to enable store forwarding during long latency instruction execution
CN105608014B (zh) 一种使用mram的存储设备
US10261909B2 (en) Speculative cache modification
CN101552041A (zh) 一种fifo存储单元及其实现方法
Hoseinghorban et al. Fast write operations in non-volatile memories using latency masking
US9015423B2 (en) Reducing store operation busy times
US9047199B2 (en) Reducing penalties for cache accessing operations
Kawashima et al. Register port prediction for a banked register file
Talpes et al. Increased scalability and power efficiency by using multiple speed pipelines

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