CN117130668B - 一种处理器取指重定向时序优化电路 - Google Patents
一种处理器取指重定向时序优化电路 Download PDFInfo
- Publication number
- CN117130668B CN117130668B CN202311407467.3A CN202311407467A CN117130668B CN 117130668 B CN117130668 B CN 117130668B CN 202311407467 A CN202311407467 A CN 202311407467A CN 117130668 B CN117130668 B CN 117130668B
- Authority
- CN
- China
- Prior art keywords
- address
- register
- bus
- selector
- bit
- 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
- 238000005215 recombination Methods 0.000 claims abstract description 11
- 230000006798 recombination Effects 0.000 claims abstract description 11
- 238000004806 packaging method and process Methods 0.000 claims abstract description 7
- 238000005538 encapsulation Methods 0.000 claims description 49
- 238000005457 optimization Methods 0.000 claims description 22
- 230000008521 reorganization Effects 0.000 claims description 21
- 239000011159 matrix material Substances 0.000 claims description 5
- 238000000034 method Methods 0.000 abstract description 6
- 230000008901 benefit Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 abstract description 3
- 230000000630 rising effect Effects 0.000 description 12
- 238000011084 recovery Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- 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/30047—Prefetch instructions; cache control instructions
-
- 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
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- 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, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
- G06F9/3871—Asynchronous instruction pipeline, e.g. using handshake signals between stages
-
- 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
Abstract
本发明公开了一种处理器取指重定向时序优化电路,包括重定向分发器、第一选择器、第二选择器、期望寄存器、总线封装单元、总线寄存器、地址递增单元、顺序寄存器及比较模块,通过采用单独使用或者结合使用部分重定向请求、部分地址数据的优化策略,对重定向取指进行优化,重定向分发器输出第一重组信号至第一选择器,输出第二重组信号至第二选择器,第一选择器连接期望寄存器,第二选择器连接总线封装单元,比较模块用于分别比较期望数据和总线数据,以比较结果判断是否需要对顺序寄存器进行恢复,以保证在时序优化过程中数据的准确性。本发明电路简单,扩展性强,通用性好,同时具备良好的性能和时序表现。
Description
技术领域
本发明属于处理器技术领域,尤其涉及一种处理器取指重定向时序优化电路。
背景技术
处理器取指模块位于现代处理器流水线前端,主要完成程序指令从内存到指令寄存器的预取工作。取指并非总是对连续地址进行访问,还需要快速响应后级流水线的各种重定向请求,例如程序转移、中断请求、异常请求、调试请求等。另一方面,取指模块需要对地址进行译码产生控制信号,例如片选信号、是否可缓存信号,有些应用处理器还需要完成虚拟地址至物理地址的转换,这些控制/地址信号连接至系统的总线互联网络,和系统的其它模块经过仲裁后连接到相应的内存接口中。由上可知,一方面,取指模块需要接受来自后级流水线的重定向请求,要求其快速的完成取指工作;另一方面,需要与系统的总线互联网络相连,要求总线信号有良好的时序,这对于系统的功耗、性能和面积收敛起到至关重要的作用;取指模块设计人员往往需要在时序与性能之间做出选择,较好的时序,则损失性能,较好的性能,则带来更差的时序,引入更大的面积。因此取指模块的性能和时序对于整个处理器架构及系统存储器架构均产生至关重要的作用。
发明内容
发明目的:为了解决现有技术中处理器取指模块在性能和时序上难以兼得的问题,本发明提供一种处理器取指重定向时序优化电路。
技术方案:一种处理器取指重定向时序优化电路,包括重定向分发器、第一选择器、第二选择器、期望寄存器、总线封装单元、总线寄存器、地址递增单元、顺序寄存器及比较模块;
重定向分发器输入CPU重定向请求信号,重定向分发器的输出端输出第一重组信号至第一选择器,输出第二重组信号至第二选择器;
顺序寄存器的输入端连接二选一选择器,输出端连接第一选择器、第二选择器和总线封装单元;
期望寄存器的输入端至少与第一选择器的输出端连接,期望寄存器用于接收完整的期望地址位,期望寄存器输出端连接比较模块及二选一选择器;
总线封装单元的输入端连接第二选择器的输出端及顺序寄存器的输出端,总线封装单元的输出端连接总线寄存器及地址递增单元,总线寄存器的输出端连接比较模块,地址递增单元的输出端连接二选一选择器,总线封装单元将信号送往系统总线矩阵;
比较模块的输出端连接二选一选择器的信号选择端;
其中,CPU重定向请求信号、第一重组信号、第二重组信号均为数组结构,设CPU重定向请求信号、第一重组信号、第二重组信号的数组大小分别为n0、n1、n2,n0、n1、n2表示重定向请求的类型数,n0=n1,所述CPU重定向请求信号中每组数据包括重定向使能位、重定向地址高位及重定向地址低位,第一重组信号中每组数据至少包括重定向使能位、重定向地址高位,第二重组信号中每组数据至少包括重定向使能位、重定向地址低位,且以下条件至少满足一个:
(1)第二重组信号中每组数据不包含重定向地址高位;
(2)n2<n0。
进一步地,当满足的条件含有(1)时,顺序寄存器向第二选择器传输的信号仅包含顺序地址低位;所述顺序寄存器的输出端还连接总线封装单元,用于向总线封装单元提供顺序地址高位。
进一步地,所述第一重组信号中的每组数据还包括重定向地址低位;顺序寄存器向第一选择器传输的信号包括顺序地址高位、顺序地址低位,所述第一选择器用于为期望寄存器提供完整的期望地址位,包括期望地址高位和期望地址低位。
进一步地,当只满足条件(2)时,第二重组信号中每组数据包含重定向使能位、重定向地址高位、重定向地址低位,顺序寄存器向第二选择器传输的信号包含顺序地址高位、顺序地址低位。
进一步地,所述第一重组信号中的每组数据不包括重定向地址低位;顺序寄存器向第一选择器传输的信号仅包括顺序地址高位,所述第一选择器用于为期望寄存器提供期望地址高位;第二选择器的输出端也连接期望寄存器,用于为期望寄存器提供期望地址低位。
进一步地,所述顺序寄存器的输出端还连接总线封装单元,用于向总线封装单元提供顺序地址高位。
进一步地,所述比较模块包括控制比较单元和地址比较单元。
进一步地,期望寄存器包括期望控制生成器和期望地址寄存器,第一选择器的输出端连接期望地址寄存器,期望地址寄存器的输出端连接地址比较单元的输入端及期望控制生成器的输入端,CPU配置信息从期望控制生成器输入,期望控制生成器用于根据期望地址数据和CPU配置信息生成需要的期望控制位数据,期望控制生成器的输出端连接控制比较单元的输入端;
所述总线寄存器包括总线控制寄存器和总线地址寄存器,所述总线控制寄存器的输入端和总线地址寄存器的输入端连接总线封装单元,总线控制寄存器的输出端和总线地址寄存器的输出端分别连接控制比较单元的输入端和地址比较单元的输入端。
进一步地,所述顺序寄存器包括顺序控制寄存器和顺序地址寄存器,顺序控制寄存器和顺序地址寄存器的输入端各连接一个二选一选择器;与顺序控制寄存器连接的二选一选择器的第一输入端连接顺序控制寄存器的输出端,第二输入端连接期望控制生成器的输出端;顺序控制寄存器的输出端连接总线封装单元;与顺序地址寄存器连接的二选一选择器的第一输入端连接地址递增单元的输出端,第二输入端连接期望地址寄存器的输出端;顺序地址寄存器的输出端连接第一选择器、第二选择器。
进一步地,所述总线封装单元用于接收顺序寄存器、第二选择器输出的信号,组装成总线控制位和总线地址位,将总线控制位传输至总线控制寄存器,将总线地址位传输至总线地址寄存器。
相比较现有技术,本发明提供的一种处理器取指重定向时序优化电路,存在以下有益效果:
该时序优化电路结构简单,扩展性强,通用性好;采用优化支路对部分重定向请求和/或部分地址位数据进行选择,并不是对完整数据进行选择,能够在一定程度上加快重定向响应速度,在遇到重定向请求时,处理器能够快速响应,性能较好;又设计了比较机制,将总线数据和期望数据进行比较,防止在对部分数据选择的时候出现错误,对于数据不一致的情况会将其恢复为期望数据,以保证系统能够正确运行;时序表现好,对于系统功耗、面积收敛均有积极影响;能够同时兼顾较好的性能和时序。
附图说明
图1为实施例一处理器取值重定向时序优化电路的结构示意图;
图2为实施例二处理器取值重定向时序优化电路的结构示意图;
图3为实施例三处理器取值重定向时序优化电路的结构示意图;
图4为实施例三重定向不恢复例子的时序;
图5为实施例三重定向恢复例子的时序。
实施方式
下面结合附图和具体实施例对本发明做进一步解释说明。
实施例一:优化支路采用完整重定向请求+部分地址数据的优化策略。
如图1所示,一种处理器取指重定向时序优化电路,包括重定向分发器、第一选择器、第二选择器、期望寄存器、总线封装单元、总线寄存器、地址递增单元、顺序寄存器及比较模块;
重定向分发器的输入端输入CPU重定向请求信号,重定向分发器的输出端输出第一重组信号至第一选择器,输出第二重组信号至第二选择器。
顺序寄存器的输入端连接二选一选择器,输出端连接第一选择器、第二选择器和总线封装单元。所述顺序寄存器包括顺序控制寄存器和顺序地址寄存器,顺序控制寄存器和顺序地址寄存器的输入端各连接一个二选一选择器。与顺序控制寄存器连接的二选一选择器的第一输入端连接顺序控制寄存器的输出端,第二输入端连接期望控制生成器的输出端;顺序控制寄存器的输出端连接总线封装单元;与顺序地址寄存器连接的二选一选择器的第一输入端连接地址递增单元的输出端,第二输入端连接期望地址寄存器的输出端;顺序地址寄存器的输出端连接第一选择器、第二选择器。两个二选一选择器的信号选择端均连接比较模块输出端,比较模块通过对地址和控制位数据的比较,得到是否一致的信号,若比较结果一致,则输出顺序信号,二选一选择器选择第一输入端的数据存入顺序寄存器;若比较结果不一致,则输出恢复信号,二选一选择器选择第二输入端的数据存入顺序寄存器,即来源于期望寄存器的数据。顺序地址寄存器将低位地址数据传输至第二选择器,此时,顺序寄存器向第二选择器传输的信号仅包含顺序地址低位;所述顺序寄存器的输出端还连接总线封装单元,用于向总线封装单元提供顺序地址高位。比如顺序地址总共32位,顺序地址高位为高12位数据,顺序地址低位为低20位数据。
期望寄存器包括期望控制生成器和期望地址寄存器,第一选择器的输出端连接期望地址寄存器,期望地址寄存器的输出端连接地址比较单元的输入端及期望控制生成器的输入端,CPU配置信息从期望控制生成器输入,期望控制生成器用于根据期望地址数据和CPU配置信息,经过译码比较等组合逻辑后生成需要的期望控制位数据,期望控制生成器的输出端连接控制比较单元的输入端。期望寄存器的输入端至少与第一选择器的输出端连接,期望寄存器接收到的信号需要是完整的期望地址,包括期望地址高位和期望地址低位,所以若顺序寄存器向第一选择器传输的只有高位地址时,因为第一选择器只能为期望寄存器提供高位地址,所以期望寄存器还需要与第二选择器连接,由第二选择器提供低位地址。期望寄存器输出端连接比较模块及两个二选一选择器的第二输入端;
总线封装单元的输入端连接第二选择器的输出端及顺序寄存器的输出端,总线封装单元的输出端连接总线寄存器及地址递增单元,总线寄存器的输出端连接比较模块,地址递增单元的输出端连接顺序地址寄存器所连接的二选一选择器的第一输入端。所述总线封装单元用于接收顺序控制寄存器传输的顺序控制位、顺序寄存器直接提供的顺序地址高位及第二选择器输出的顺序地址低位,并将顺序控制位、顺序地址高位、期望地址低位组装在一起,形成总线控制位和总线地址位,并输出总线控制位给总线控制寄存器,输出总线地址位给总线地址寄存器和地址递增单元。总线封装单元将信号送往系统总线矩阵(图中未显示)。
所述总线寄存器包括总线控制寄存器和总线地址寄存器,所述总线控制寄存器的输入端和总线地址寄存器的输入端连接总线封装单元,总线控制寄存器的输出端和总线地址寄存器的输出端分别连接控制比较单元的输入端和地址比较单元的输入端。
比较模块的输出端连接二选一选择器的信号选择端。比较模块用于比较期望寄存器中的数据和总线寄存器中的数据,根据比较是否一致,决定是否恢复所选择的数据,以保证经过优化支路选择后的数据正确。比较模块包括控制比较单元和地址比较单元,控制比较单元用于比较期望控制生成器的数据和总线控制寄存器的数据,地址比较单元用于比较期望地址寄存器的数据和总线地址寄存器的数据。
其中,CPU重定向请求信号、第一重组信号、第二重组信号均为数组结构,设CPU重定向请求信号、第一重组信号、第二重组信号的数组大小分别为n0、n1、n2,n0、n1、n2表示重定向请求的类型数,n0=n1,所述CPU重定向请求信号中每组数据包括重定向使能位、重定向地址高位及重定向地址低位,第一重组信号中每组数据至少包括重定向使能位、重定向地址高位;第二重组信号中每组数据包括重定向使能位、重定向地址低位,且不包含重定向地址高位。比如重定向地址总共32位,重定向地址高位为高12位数据,重定向地址低位为低20位数据。图1至3中标记12代表地址高12位,标记20代表地址低20位。
第一重组信号中可以包含重定向地址低位,也可以不包含重定向地址低位。当包含重定向地址低位时,顺序寄存器向第一选择器传输的信号包括顺序地址高位和顺序地址低位。此时,第一选择器输出端连接期望寄存器,为期望寄存器提供期望地址高位和期望地址低位,但是该方法存在冗余。当第一重组信号中不包含重定向地址低位时,顺序寄存器向第一选择器传输的信号仅包括顺序地址高位。所述第一选择器仅为期望寄存器提供期望地址高位,这时第二选择器也需要连接期望寄存器,第二选择器为期望寄存器提供期望地址低位。相比较前者,后者更佳。
因为重定向地址的关键路径往往来源于加法电路,高位地址受进位链的影响,比低位地址具有更大的延迟,然而大概率情况下重定向的高位地址并不会变化。在这种电路结构下,仅使用低位地址数据参与选择,避免高位地址数据参与选择,可在一定程度上减小输出延迟,使得重定向请求更快得到响应。但是当比较模块得到的比较结果不一致时,说明高位地址数据和/或控制位发生了改变,所以不能继续采用优化支路的选择,需要从期望寄存器处恢复正确的地址数据和/或控制位数据给第二选择器,并重新对总线发起访问,以保证数据正确。
各模块的主要功能:
(1)顺序地址寄存器
该寄存器包含顺序取指的高位地址数据和低位地址数据。顺序预取时,更新为地址递增模块的输出值;信息恢复时,更新为期望地址寄存器的输出值(S1期望地址位);
(2)顺序控制寄存器
该寄存器包括但不限于片选、可缓存、保护等控制信息。顺序预取时,保持不变;信息恢复时,更新为期望控制生成器的输出值(S1期望控制位);
(3)期望地址寄存器
该寄存器的D端(输入端)连接第一选择器的输出地址(S0期望地址位,包括地址高位、地址低位),有时也连接第二选择器的输出端(第一选择器提供地址高位,第二选择器提供地址低位),受流水线握手信号控制,在时钟(CLOCK)的上升沿寄存,输出至Q端(S1期望地址位)。
(4)期望控制生成器
该模块根据期望地址寄存器和CPU的配置信息,经过译码、比较等组合逻辑后生成需要的控制信息(S1期望控制位)。
(5)总线地址寄存器
该寄存器的D端(输入端)连接总线封装单元的地址信号(S0总线地址位,包括高位、低位),受流水线握手信号控制,在时钟(CLOCK)的上升沿寄存,输出至Q端(S1总线地址位)。
(6)总线控制寄存器
该寄存器的D端(输入端)连接总线封装单元的控制信号(S0总线控制位),其最终来源于顺序控制寄存器的输出信号,受流水线握手信号控制,在时钟(CLOCK)的上升沿寄存,输出至Q端(S1总线控制位)。
(7)重定向分发器
该模块的输入为CPU内所有重定向请求的使能和地址信号,根据分配策略生成重组信号,重组信号包含相应的选择、使能和地址信号,并将重组信号分发至第一选择器和第二选择器。其中分发至第一选择器的第一重组信号的数组大小和CPU重定向请求的数组大小一致,需囊括所有的重定向请求,并每组数据至少包括重定向使能位、重定向地址高位,还可以包括重定向地址低位,用于后续生成正确的期望地址信号至期望寄存器。而分发至第二选择器的第二重组信号的数组中每组数据只包含重定向使能位、重定向地址低位,不包含重定向地址高位,且第二重组信号的数组大小和第一重组信号相同。
(8)第一选择器
为多路选择器,用于接收来自于重定向分发器的所有重定向请求使能和完整的重定向地址信息,以及顺序地址寄存器提供的至少顺序地址高位,经过优先级选择后,能够至少为期望寄存器提供高位地址信息,送往期望地址寄存器(EXP_ADDR)的D端(输入端)。若此时没有重定向请求,该模块输出值为顺序地址寄存器提供的地址数据。当顺序地址寄存器为第一选择器只提供高位地址时,该模块输出值就只有高位地址数据。
(9)第二选择器
为多路选择器,用于接收来自于重定向分发器的全部重定向请求使能和重定向地址低位(无重定向地址高位),以及顺序地址寄存器的顺序地址低位,经过优先级选择后,输出低位地址数据,送往总线封装单元。若此时没有重定向请求,该模块输出值为顺序地址寄存器提供的顺序地址低位。
(10)总线封装单元
接收顺序地址寄存器的高位地址数据、第二选择器的低位地址数据、顺序控制寄存器的顺序控制位数据,经过简单的封装后,形成总线信号(BUS),送往地址递增模块、总线地址寄存器和总线控制寄存器,同时送往系统的总线互联矩阵(图中未显示)。
(11)地址递增模块
接收总线封装单元组装的完整总线地址信息(顺序地址寄存器的高位地址信息与第二选择器的低位地址数据拼接),依据取指的宽度,对齐等约束条件,生成下一条指令的地址信号。该模块一般为总线地址信号+常量的加法电路。
(12)比较模块
该模块用于比较期望数据和总线数据的一致性,包括比较期望地址寄存器和总线地址寄存器,以及比较期望控制生成器和总线控制寄存器的输出值。若地址位和控制位数据均一致,则认为此次优化的总线取指有效,可将总线的返回数据及本级的相关地址、控制信息送往后级流水线;否则,认为此次优化的总线取指无效,产生S1恢复请求,并将期望地址寄存器的数据恢复给顺序地址寄存器,将期望控制生成器的数据恢复给顺序控制寄存器,并重新对总线发起访问。
实施例二:优化支路采用部分重定向请求+完整地址数据的优化策略。
相比实施例一而言,实施例二的区别在于,第二重组信号中的每组数据包含重定向使能位、重定向地址低位,还包括重定向地址高位。但是,第二重组信号的数组大小n2小于第一重组信号的数组大小n1(或CPU重定向请求信号n0)。
在连接关系上,如图2所示,顺序地址寄存器将完整的顺序地址(包括顺序地址高位和顺序地址低位)数据传输至第一选择器和第二选择器,总线封装单元接收的地址数据全部由第二选择器提供,此时顺序地址寄存器无需连接总线封装单元。总线封装单元接收的地址数据也可以由顺序地址寄存器直接提供顺序地址高位,由第二选择器提供低位地址,这时顺序地址寄存器就需要连接总线封装单元。第一重组信号包含完整的重定向使能位、重定向地址低位、重定向地址高位。后续期望寄存器的期望地址来源全部来自于第一选择器。
本实施例使用部分重定向参与选择,可减少多路选择器的扇入,可在一定程度上减小输出延迟。例如,系统中普遍存在的五种重定向请求:复位请求、调试请求、中断请求、分支预测请求和预测失败请求。其中,复位请求和调试请求并不需要快速取指,即不频繁,对延迟不敏感。而中断请求、分支预测请求和预测失败请求需要快速取指,即频繁,对延迟敏感。所以可以将需要快速取指的重定向请求通过在第二选择器中进行选择,而第一选择器仍对所有重定向请求进行选择。若实际重定向请求是需要快速取指的,那么可以直接通过第二选择器进行选择,因第二选择器中可以选择的重定向请求比第一选择器中可以选择的重定向请求的个数少些,所以通过第二选择器来选择会实现更快的响应。表现出来的就是CPU重定向请求信号、第一重组信号、第二重组信号的数组大小分别为n0、n1、n2,n0、n1、n2表示重定向请求的类型数,则有n0=n1>n2。如果实际重定向请求是不需要快速取指的,那么通过第二选择器来选择的重定向请求必然是错误的,那么比较模块比较出来的结果也是不一致的,就会利用期望寄存器来恢复顺序寄存器中的数据,使第二选择器中的数据来源于期望寄存器,就是实际正确的数据,并重新对总线发起访问,以保证数据正确。从整体上看,该方法能够实现快速取指的效果,又能保证其正确性。
各模块的主要功能:
(1)顺序地址寄存器、顺序控制寄存器、期望控制生成器、总线地址寄存器、总线控制寄存器、比较模块同实施例一。
(2)期望地址寄存器
该寄存器的D端(输入端)连接第一多路选择器的输出地址(S0期望地址位,包括高位、低位),受流水线握手信号控制,在时钟(CLOCK)的上升沿寄存,输出至Q端(S1期望地址位)。
(3)重定向分发器
该模块的输入为CPU内所有重定向请求的使能和地址信号,根据分配策略生成重组信号,重组信号包含相应的选择、使能和地址信号,并将重组信号分发至第一选择器和第二选择器。其中分发至第一选择器的第一重组信号的数组大小和CPU重定向请求的数组大小一致,即n0=n1,需囊括所有的重定向请求,并包括了完整的重定向地址(高位、低位),用于后续生成正确的期望地址信号至期望寄存器。第二重组信号中每组数据包含重定向使能位、重定向地址低位、重定向地址高位。但是,分发至第二选择器的第二重组信号的数组大小要小于第一重组信号的数组大小,即n2<n1(或CPU重定向请求的数组大小n0)。
(4)第一选择器
为多路选择器,用于接收来自于重定向分发器发送的第一重组数据,以及顺序地址寄存器提供的完整的顺序地址,经过优先级选择后,输出完整的地址信号,送往期望地址寄存器(EXP_ADDR)的D端(输入端)。若此时没有重定向请求,该模块输出值为顺序地址寄存器的提供的地址数据。
(5)第二选择器
为多路选择器,用于接收来自于重定向分发器发送的第二重组数据,以及顺序地址寄存器的完整地址数据,经过优先级选择后,输出至少低位地址数据送往总线封装单元,也可以直接输出完整地址数据至总线封装单元(无需顺序地址寄存器连接总线封装单元),当直接输出只有低位地址时,顺序地址寄存器的输出端还会连接总线封装单元,由顺序地址寄存器直接为其提供高位地址。若此时没有重定向请求,该模块输出值为顺序地址寄存器提供的完整的顺序地址数据。
(6)总线封装单元
接收至少第二选择器(或者包括顺序地址寄存器)的完整地址数据,经过简单的封装后,形成总线信号(BUS),送往地址递增模块、总线地址寄存器和总线控制寄存器,同时送往系统的总线互联矩阵(图中未显示)。
(7)地址递增模块
接收总线封装单元的完整地址信息(顺序地址寄存器的高位地址信息与第二选择器的低位地址数据拼接,或者第二选择器的完整地址数据),依据取指的宽度,对齐等约束条件,生成下一条指令的地址信号。该模块一般为总线地址信号+常量的加法电路。
实施例三:优化支路采用部分重定向请求+部分地址数据的优化策略。
实施例三相当于实施例一和实施例二的结合,其效果也最优。需同时满足以下两个条件:
(1)第二重组信号中每组数据不包含重定向地址高位;
(2)n2<n0。
在连接关系上,实施例三同实施例一。
各模块的主要功能:
(1)顺序地址寄存器、顺序控制寄存器、期望地址寄存器、期望控制生成器 、总线地址寄存器、总线控制寄存器、第一选择器、总线封装单元、地址递增模块、比较模块同实施例一。
(2)重定向分发器
该模块的输入为CPU内所有重定向请求的使能和地址信号,根据分配策略生成重组信号,重组信号包含相应的选择、使能和地址信号,并将重组信号分发至第一选择器和第二选择器。其中分发至第一选择器的第一重组信号的数组大小和CPU重定向请求的数组大小一致,需囊括所有的重定向请求,并至少包括重定向地址高位,还可以包括重定向地址低位,用于后续生成正确的期望地址信号至期望寄存器。而分发至第二选择器的第二重组信号的数组中每组数据只包含重定向使能位、重定向地址低位,不包含重定向地址高位,且第二重组信号的数组大小n2小于第一重组信号的数组大小n1(或CPU重定向请求数组大小n0)。
(3)第二选择器
为多路选择器,用于接收来自于重定向分发器的部分重定向请求使能和重定向地址低位(无重定向地址高位),以及顺序地址寄存器提供的顺序地址低位,经过优先级选择后,输出低位地址数据,送往总线封装单元。若此时没有重定向请求,该模块输出值为顺序地址寄存器提供的顺序地址低位。
本实施例充分利用程序的空间和时间局部性的特点,结合并非所有重定向都需要快速响应的事实,使用选择部分重定向和低位地址数据能够最大程度的减小延迟,同时又不损失关键代码的性能,为优选方案。以下举例说明本实施例优化电路的工作过程。
1、本实施例重定向不恢复例子的时序举例,如图4所示。
S0表示输入期望寄存器和总线寄存器的数据,S1表示期望寄存器和总线寄存器输出的数据,整个过程如下:
(1)T0周期:
假定没有重定向请求,顺序地址寄存器(SEQ_ADDR)的值为0x0000_0000;顺序控制寄存器(SEQ_CTRL)的值为FLASH,不缓存,XR(可执行,可读);
假定当前S1无效;
故:
S0期望地址位0x0000_0000,等同于顺序地址寄存器(SEQ_ADDR);
S0总线地址位0x0000_0000,等同于顺序地址寄存器(SEQ_ADDR);
S0总线控制位FLASH,不缓存,XR(可执行,可读),等同于顺序控制寄存器(SEQ_CTRL);
该周期结束(下周期的上升沿),执行以下步骤:
a.将S0期望地址位寄存至期望地址寄存器(EXP_ADDR);
b.将S0总线地址位寄存至总线地址寄存器(BUS_ADDR);
c.将S0总线控制位寄存至总线控制寄存器(BUS_CTRL);
d.将顺序地址寄存器(SEQ_ADDR)更新为地址递增模块的输出值(0x0000_0004);
e.顺序控制寄存器(SEQ_CTRL)保持不变;
(2)T1周期:
S1期望地址位0x0000_0000,等同于上周期S0期望地址位;
S1总线地址位0x0000_0000,等同于上周期S0总线地址位;
S1期望控制位FLASH,不缓存,XR(可执行,可读),由S1期望地址位和CPU配置寄存器译码、比较获得;
S1总线控制位FLASH,不缓存,XR(可执行,可读),等同于上周期S0总线控制位;
比较模块(CMP)进行比较后,期望数据和总线数据一致,此次总线返回有效,输出0x0000_0000地址处的有效指令,并假定该指令在当周期发生预测转移,其目标地址为0x0000_1000,此外假定该目标地址的控制位为FLASH,不缓存,XR(可执行,可读)。因此重定向分发器接收到预测转移请求,目标地址0x0000_1000,FLASH,不缓存,XR(可执行,可读);
故:
S0期望地址位0x0000_1000,来源于重定向分发器;
S0总线地址位0x0000_1000,高位地址来源于顺序地址寄存器(SEQ_ADDR),低位地址来源于重定向分发器;
S0总线控制位FLASH,不缓存,XR(可执行,可读),等同于顺序控制寄存器(SEQ_CTRL);
该周期结束(下周期的上升沿),执行以下步骤:
a.将S0期望地址位寄存至期望地址寄存器(EXP_ADDR);
b.将S0总线地址位寄存至总线地址寄存器(BUS_ADDR);
c.将S0总线控制位寄存至总线控制寄存器(BUS_CTRL);
d.将顺序地址寄存器(SEQ_ADDR)更新为地址递增模块的输出值(0x0000_1004);
e.顺序控制寄存器(SEQ_CTRL)保持不变;
(3)T2周期:
S1期望地址位0x0000_1000,等同于上周期S0期望地址位;
S1总线地址位0x0000_1000,等同于上周期S0总线地址位;
S1期望控制位FLASH,不缓存,XR(可执行,可读),S1期望地址位和CPU配置寄存器译码、比较获得;
S1总线控制位FLASH,不缓存,XR(可执行,可读),等同于上周期S0总线控制位;
经比较模块(CMP)比较后,期望数据和总线数据一致,此次总线返回有效,输出0x0000_1000地址处的有效指令,并假定该指令为普通指令,不发生预测转移;重定向分发器没有请求,至此取指单元完成重定向,并继续顺序预取流程;
故:
S0期望地址位0x0000_1004,等同于顺序地址寄存器(SEQ_ADDR);
S0总线地址位0x0000_1004,等同于顺序地址寄存器(SEQ_ADDR);
S0总线控制位FLASH,不缓存,XR(可执行,可读),等同于顺序控制寄存器(SEQ_CTRL);
该周期结束(下周期的上升沿),执行以下步骤:
a.将S0期望地址位寄存至期望地址寄存器(EXP_ADDR);
b.将S0总线地址位寄存至总线地址寄存器(BUS_ADDR);
c.将S0总线控制位寄存至总线控制寄存器(BUS_CTRL);
d.将顺序地址寄存器(SEQ_ADDR)更新为地址递增模块的输出值(0x0000_1008);
e.顺序控制寄存器(SEQ_CTRL)保持不变。
2、本实施例重定向恢复例子的时序举例,如图5所示。
(1)T0周期:
假定没有重定向请求,顺序地址寄存器(SEQ_ADDR)的值为0x0000_0000;顺序控制寄存器(SEQ_CTRL)的值为FLASH,不缓存,XR(可执行,可读);
假定当前S1无效;
故:
S0期望地址位0x0000_0000,等同于顺序地址寄存器(SEQ_ADDR);
S0总线地址位0x0000_0000,等同于顺序地址寄存器(SEQ_ADDR);
S0总线控制位FLASH,不缓存,XR(可执行,可读),等同于顺序控制寄存器(SEQ_CTRL);
该周期结束(下周期的上升沿),执行以下步骤:
a.将S0期望地址位寄存至期望地址寄存器(EXP_ADDR);
b.将S0总线地址位寄存至总线地址寄存器(BUS_ADDR);
c.将S0总线控制位寄存至总线控制寄存器(BUS_CTRL);
d.将顺序地址寄存器(SEQ_ADDR)更新为地址递增模块的输出值(0x0000_0004);
e.顺序控制寄存器(SEQ_CTRL)保持不变;
(2)T1周期:
S1期望地址位0x0000_0000,等同于上周期S0期望地址位;
S1总线地址位0x0000_0000,等同于上周期S0总线地址位;
S1期望控制位FLASH,不缓存,XR(可执行,可读),S1期望地址位和CPU配置寄存器译码、比较获得;
S1总线控制位FLASH,不缓存,XR(可执行,可读),等同于上周期S0总线控制位;
比较模块(CMP)进行比较后,期望数据和总线数据一致,此次总线返回有效,输出0x0000_0000地址处的有效指令,并假定该指令在当周期发生预测转移,其目标地址为0x2000_1000,此外假定该目标地址的控制位为SRAM0,不缓存,XR(可执行,可读)。因此重定向分发器接收到预测转移请求,目标地址0x2000_1000,SRAM0,不缓存,XR(可执行,可读);
故:
S0期望地址位0x2000_1000,来源于重定向分发器;
S0总线地址位0x0000_1000,高位地址来源于顺序地址寄存器(SEQ_ADDR),低位地址来源于重定向分发器;
S0总线控制位FLASH,不缓存,XR(可执行,可读),等同于顺序控制寄存器(SEQ_CTRL);
该周期结束(下周期的上升沿),执行以下步骤:
a.将S0期望地址位寄存至期望地址寄存器(EXP_ADDR);
b.将S0总线地址位寄存至总线地址寄存器(BUS_ADDR);
c.将S0总线控制位寄存至总线控制寄存器(BUS_CTRL);
d.将顺序地址寄存器(SEQ_ADDR)更新为地址递增模块的输出值(0x0000_1004);
e.顺序控制寄存器(SEQ_CTRL)保持不变;
(3)T2周期:
S1期望地址位0x2000_1000,等同于上周期S0期望地址位;
S1总线地址位0x0000_1000,等同于上周期S0总线地址位;
S1期望控制位SRAM0,不缓存,XR(可执行,可读),S1期望地址位和CPU配置寄存器译码、比较获得;
S1总线控制位FLASH,不缓存,XR(可执行,可读),等同于上周期S0总线控制位;
经比较模块(CMP)进行比较后,期望数据和总线数据不一致,此次总线返回无效,产生恢复信号,并撤销当前S0的总线访问。
故S0无效。
该周期结束(下周期的上升沿),执行以下步骤:
a.将顺序地址寄存器(SEQ_ADDR)恢复为期望地址寄存器(EXP_ADDR)的输出值(0x2000_1000);
b.将顺序控制寄存器(SEQ_CTRL)恢复为期望控制生成器(EXP_CTRL)的输出值(SRAM0,不缓存,XR(可执行,可读));
(4)T3周期:
上周期S0无效,故本周期S1无效。
上周期产生恢复信号,故:
S0期望地址位0x2000_1000,等同于顺序地址寄存器(SEQ_ADDR);
S0总线地址位0x2000_1000,等同于顺序地址寄存器(SEQ_ADDR);
S0总线控制位SRAM0,不缓存,XR(可执行,可读),等同于顺序控制寄存器(SEQ_CTRL);
该周期结束(下周期的上升沿),执行以下步骤:
a.将S0期望地址位寄存至期望地址寄存器(EXP_ADDR);
b.将S0总线地址位寄存至总线地址寄存器(BUS_ADDR);
c.将S0总线控制位寄存至总线控制寄存器(BUS_CTRL);
d.将顺序地址寄存器(SEQ_ADDR)更新为地址递增模块的输出值(0x2000_1004);
e.顺序控制寄存器(SEQ_CTRL)保持不变;
(5)T4周期:
S1期望地址位0x2000_1000,等同于上周期S0期望地址位;
S1总线地址位0x2000_1000,等同于上周期S0总线地址位;
S1期望控制位SRAM0,不缓存,XR(可执行,可读),S1期望地址位和CPU配置寄存器译码、比较获得;
S1总线控制位SRAM0,不缓存,XR(可执行,可读),等同于上周期S0总线控制位;
比较模块(CMP)进行比较后,期望数据和总线数据一致,此次总线返回有效,输出0x2000_1000地址处的有效指令,至此取指单元完成恢复,并继续顺序预取流程。
故:
S0期望地址位0x2000_1004,等同于顺序地址寄存器(SEQ_ADDR);
S0总线地址位0x2000_1004,等同于顺序地址寄存器(SEQ_ADDR);
S0总线控制位FLASH,不缓存,XR(可执行,可读),等同于顺序控制寄存器(SEQ_CTRL);
该周期结束(下周期的上升沿),执行以下步骤:
f.将S0期望地址位寄存至期望地址寄存器(EXP_ADDR);
g.将S0总线地址位寄存至总线地址寄存器(BUS_ADDR);
h.将S0总线控制位寄存至总线控制寄存器(BUS_CTRL);
i.将顺序地址寄存器(SEQ_ADDR)更新为地址递增模块的输出值(0x2000_1008);
j.顺序控制寄存器(SEQ_CTRL)保持不变。
Claims (10)
1.一种处理器取指重定向时序优化电路,其特征在于,包括重定向分发器、第一选择器、第二选择器、期望寄存器、总线封装单元、总线寄存器、地址递增单元、顺序寄存器及比较模块;
重定向分发器输入CPU重定向请求信号,重定向分发器的输出端输出第一重组信号至第一选择器,输出第二重组信号至第二选择器;
顺序寄存器的输入端连接二选一选择器,输出端连接第一选择器、第二选择器和总线封装单元;
期望寄存器的输入端至少与第一选择器的输出端连接,期望寄存器用于接收完整的期望地址位,期望寄存器输出端连接比较模块及二选一选择器;
总线封装单元的输入端连接第二选择器的输出端及顺序寄存器的输出端,总线封装单元的输出端连接总线寄存器及地址递增单元,总线寄存器的输出端连接比较模块,地址递增单元的输出端连接二选一选择器,总线封装单元将信号送往系统总线矩阵;
比较模块的输出端连接二选一选择器的信号选择端;
其中,CPU重定向请求信号、第一重组信号、第二重组信号均为数组结构,设CPU重定向请求信号、第一重组信号、第二重组信号的数组大小分别为n0、n1、n2,n0、n1、n2表示重定向请求的类型数,n0=n1,所述CPU重定向请求信号中每组数据包括重定向使能位、重定向地址高位及重定向地址低位,第一重组信号中每组数据至少包括重定向使能位、重定向地址高位,第二重组信号中每组数据至少包括重定向使能位、重定向地址低位,且以下条件至少满足一个:
(1)第二重组信号中每组数据不包含重定向地址高位;
(2)n2<n0。
2.根据权利要求1所述的处理器取指重定向时序优化电路,其特征在于,当满足的条件含有(1)时,顺序寄存器向第二选择器传输的信号仅包含顺序地址低位;所述顺序寄存器的输出端还连接总线封装单元,用于向总线封装单元提供顺序地址高位。
3.根据权利要求2所述的处理器取指重定向时序优化电路,其特征在于,所述第一重组信号中的每组数据还包括重定向地址低位;顺序寄存器向第一选择器传输的信号包括顺序地址高位、顺序地址低位,所述第一选择器用于为期望寄存器提供完整的期望地址位,包括期望地址高位和期望地址低位。
4.根据权利要求1所述的处理器取指重定向时序优化电路,其特征在于,当只满足条件(2)时,第二重组信号中每组数据包含重定向使能位、重定向地址高位、重定向地址低位,顺序寄存器向第二选择器传输的信号包含顺序地址高位、顺序地址低位。
5.根据权利要求1至4任一所述的处理器取指重定向时序优化电路,其特征在于,所述第一重组信号中的每组数据不包括重定向地址低位;顺序寄存器向第一选择器传输的信号仅包括顺序地址高位,所述第一选择器用于为期望寄存器提供期望地址高位;第二选择器的输出端也连接期望寄存器,用于为期望寄存器提供期望地址低位。
6.根据权利要求1至4任一所述的处理器取指重定向时序优化电路,其特征在于,所述顺序寄存器的输出端还连接总线封装单元,用于向总线封装单元提供顺序地址高位。
7.根据权利要求1至4任一所述的处理器取指重定向时序优化电路,其特征在于,所述比较模块包括控制比较单元和地址比较单元。
8.根据权利要求1至4任一所述的处理器取指重定向时序优化电路,其特征在于,期望寄存器包括期望控制生成器和期望地址寄存器,第一选择器的输出端连接期望地址寄存器,期望地址寄存器的输出端连接地址比较单元的输入端及期望控制生成器的输入端,CPU配置信息从期望控制生成器输入,期望控制生成器用于根据期望地址数据和CPU配置信息生成需要的期望控制位数据,期望控制生成器的输出端连接控制比较单元的输入端;
所述总线寄存器包括总线控制寄存器和总线地址寄存器,所述总线控制寄存器的输入端和总线地址寄存器的输入端连接总线封装单元,总线控制寄存器的输出端和总线地址寄存器的输出端分别连接控制比较单元的输入端和地址比较单元的输入端。
9.根据权利要求8所述的处理器取指重定向时序优化电路,其特征在于,所述顺序寄存器包括顺序控制寄存器和顺序地址寄存器,顺序控制寄存器和顺序地址寄存器的输入端各连接一个二选一选择器;与顺序控制寄存器连接的二选一选择器的第一输入端连接顺序控制寄存器的输出端,第二输入端连接期望控制生成器的输出端;顺序控制寄存器的输出端连接总线封装单元;与顺序地址寄存器连接的二选一选择器的第一输入端连接地址递增单元的输出端,第二输入端连接期望地址寄存器的输出端;顺序地址寄存器的输出端连接第一选择器、第二选择器。
10.根据权利要求8所述的处理器取指重定向时序优化电路,其特征在于,所述总线封装单元用于接收顺序寄存器、第二选择器输出的信号,组装成总线控制位和总线地址位,将总线控制位传输至总线控制寄存器,将总线地址位传输至总线地址寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311407467.3A CN117130668B (zh) | 2023-10-27 | 2023-10-27 | 一种处理器取指重定向时序优化电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311407467.3A CN117130668B (zh) | 2023-10-27 | 2023-10-27 | 一种处理器取指重定向时序优化电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117130668A CN117130668A (zh) | 2023-11-28 |
CN117130668B true CN117130668B (zh) | 2023-12-29 |
Family
ID=88861330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311407467.3A Active CN117130668B (zh) | 2023-10-27 | 2023-10-27 | 一种处理器取指重定向时序优化电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117130668B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0803803A2 (en) * | 1996-04-26 | 1997-10-29 | Texas Instruments Incorporated | Method of configuring a data packet transfer device |
FR2779542A1 (fr) * | 1998-06-05 | 1999-12-10 | Sgs Thomson Microelectronics | Circuit integre comportant au moins deux memoires |
CN101989242A (zh) * | 2010-11-12 | 2011-03-23 | 深圳国微技术有限公司 | 一种提高soc系统安全的总线监视器及其实现方法 |
CN102665049A (zh) * | 2012-03-29 | 2012-09-12 | 中国科学院半导体研究所 | 基于可编程视觉芯片的视觉图像处理系统 |
CN103592593A (zh) * | 2012-08-13 | 2014-02-19 | 亚德诺半导体股份有限公司 | 用于系统内扫描测试的半导体电路和方法 |
CN103761145A (zh) * | 2009-01-26 | 2014-04-30 | 超威半导体公司 | 用于各个处理器的辅助中断虚拟化的访客中断控制器 |
CN105005463A (zh) * | 2014-04-25 | 2015-10-28 | 美国博通公司 | 具有世代重命名的计算机处理器 |
CN108475194A (zh) * | 2015-10-23 | 2018-08-31 | 弩锋股份有限公司 | 在片上网络架构中的寄存器通信 |
CN210052161U (zh) * | 2018-05-18 | 2020-02-11 | 意法半导体(格勒诺布尔2)公司 | 处理系统、集成电路和微控制器 |
-
2023
- 2023-10-27 CN CN202311407467.3A patent/CN117130668B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0803803A2 (en) * | 1996-04-26 | 1997-10-29 | Texas Instruments Incorporated | Method of configuring a data packet transfer device |
FR2779542A1 (fr) * | 1998-06-05 | 1999-12-10 | Sgs Thomson Microelectronics | Circuit integre comportant au moins deux memoires |
CN103761145A (zh) * | 2009-01-26 | 2014-04-30 | 超威半导体公司 | 用于各个处理器的辅助中断虚拟化的访客中断控制器 |
CN101989242A (zh) * | 2010-11-12 | 2011-03-23 | 深圳国微技术有限公司 | 一种提高soc系统安全的总线监视器及其实现方法 |
CN102665049A (zh) * | 2012-03-29 | 2012-09-12 | 中国科学院半导体研究所 | 基于可编程视觉芯片的视觉图像处理系统 |
CN103592593A (zh) * | 2012-08-13 | 2014-02-19 | 亚德诺半导体股份有限公司 | 用于系统内扫描测试的半导体电路和方法 |
CN105005463A (zh) * | 2014-04-25 | 2015-10-28 | 美国博通公司 | 具有世代重命名的计算机处理器 |
CN108475194A (zh) * | 2015-10-23 | 2018-08-31 | 弩锋股份有限公司 | 在片上网络架构中的寄存器通信 |
CN210052161U (zh) * | 2018-05-18 | 2020-02-11 | 意法半导体(格勒诺布尔2)公司 | 处理系统、集成电路和微控制器 |
Non-Patent Citations (2)
Title |
---|
Gschwind M.Synergistic processing in cell's multicore architecture.《IEEE micro》.2006,10-24. * |
基于PyHCL的RISC-V架构处理器的研究与实现;蔡志荣;《中国优秀硕士学位论文全文数据库信息科技辑》(第02期);I137-70 * |
Also Published As
Publication number | Publication date |
---|---|
CN117130668A (zh) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190065207A1 (en) | Configurable pipeline based on error detection mode in a data processing system | |
US9965274B2 (en) | Computer processor employing bypass network using result tags for routing result operands | |
US20090276587A1 (en) | Selectively performing a single cycle write operation with ecc in a data processing system | |
US11550750B2 (en) | Memory network processor | |
CN108028665B (zh) | 用于使用硬件和软件进行压缩的系统、方法和装置 | |
JPS6323586B2 (zh) | ||
GB2324392A (en) | Decreasing thread switch latency in a multithread processor | |
JP2004157593A (ja) | 多ポート統合キャッシュ | |
US20080010443A1 (en) | System and method for executing conditional branch instructions in a data processor | |
CN112214241A (zh) | 一种分布式指令执行单元的方法及系统 | |
US20030140214A1 (en) | Pipelined completion for asynchronous communication | |
US20220365787A1 (en) | Event handling in pipeline execute stages | |
US6694385B1 (en) | Configuration bus reconfigurable/reprogrammable interface for expanded direct memory access processor | |
US7165166B2 (en) | Data processing system, data processing apparatus and control method for a data processing apparatus | |
EP4020189A1 (en) | Methods, systems, and apparatuses for a scalable reservation station implementing a single unified speculation state propagation and execution wakeup matrix circuit in a processor | |
US8171259B2 (en) | Multi-cluster dynamic reconfigurable circuit for context valid processing of data by clearing received data with added context change indicative signal | |
CN117130668B (zh) | 一种处理器取指重定向时序优化电路 | |
US20040073753A1 (en) | Directoryless L0 cache for stall reduction | |
KR100431975B1 (ko) | 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템 | |
US20020099910A1 (en) | High speed low power cacheless computer system | |
US20020087830A1 (en) | Circuit and method for instruction compression and dispersal in wide-issue processors | |
US5978899A (en) | Apparatus and method for parallel processing and self-timed serial marking of variable length instructions | |
US7613905B2 (en) | Partial register forwarding for CPUs with unequal delay functional units | |
US20110083030A1 (en) | Cache memory control device, cache memory device, processor, and controlling method for storage device | |
US7606991B2 (en) | Dynamic clock switch mechanism for memories to improve performance |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |