CN113435148B - 一种参数化缓存数字电路微架构及其设计方法 - Google Patents
一种参数化缓存数字电路微架构及其设计方法 Download PDFInfo
- Publication number
- CN113435148B CN113435148B CN202110626546.8A CN202110626546A CN113435148B CN 113435148 B CN113435148 B CN 113435148B CN 202110626546 A CN202110626546 A CN 202110626546A CN 113435148 B CN113435148 B CN 113435148B
- Authority
- CN
- China
- Prior art keywords
- cache
- submodule
- request
- size
- capacity
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/10—Processors
-
- 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)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种参数化缓存数字电路微架构及其设计方法,其将一些系统量化参数转化为自定义设计参数,并用自定义设计参数实现参数化设计。在系统要求有变时,无需更改缓存子模块内部逻辑设计,依赖自定义参数改变一些子模块的接口数量、子模块实例化数量、存储器深度等就可以满足不同系统条件对缓存的需求。本发明是个较通用化的缓存微架构,利用本发明能够缩短缓存数字设计模块开发周期。
Description
技术领域
本发明涉及一种参数化缓存数字电路微架构及其设计方法。
背景技术
缓存模块是CPU/GPU处理器中必要模块。一般根据产品规格会定义不同的芯片架构,不同的芯片架构会对缓存模块提出不同的需求。主要需求如缓存模块能够提供给上游特定的数据带宽,能够用满下游提供的数据带宽,上游接口数量,下游接口数量,缓存容量大小,缓存级联方式,缓存一致性协议等等。缓存控制器设计根据上述需求定义缓存模块的微架构。
缓存设计中由于需要判断前后请求是否发生冲突和解决一致性等问题,微架构设计中一般需要定义操作队列来记录处理所有正在处理还未完成的请求。基于冲突一致性监测等缓存逻辑,一般这个操作队列的深度决定了缓存模块能够向下游发出的最大请求数量。而队列由于设计面积和满足设计时序等限制无法随意增大。而向下游发出的最大请求数量,是缓存设计中满足性能需求很重要的一个点,
当最大发出请求数量小于请求访问来回的延时时,需满足公式:
发起者请求带宽*(最大发出请求数量/请求访问来回延时)>=发起者希望得到的带宽;即,最大发出请求数量>=(发起者希望得到的带宽/发起者请求带宽)*请求访问来回延时;
才能理论上用满下游提供的带宽。要用满下游提供的数据带宽,在请求带宽固定的情况下,则访问延时越大,要求的最大请求数量越大。
所以在整体架构设计定义时,即使匹配了缓存向下游的访问带宽和下游的提供带宽,但当下游请求完成时延过大时,向下游发送请求数量不足会成为无法满足带宽需求的根本原因。
发明内容
本发明所要解决的技术问题是,提供一种通用的参数化缓存数字电路微架构及其设计方法。其将一些必要的系统量化参数转化为自定义设计参数,并用自定义设计参数参数化缓存模块设计,能够以较小的改动满足不同系统环境下对缓存模块的不同需求,加速缓存模块的设计收敛。
本发明为解决上述技术问题采用以下技术方案:
一种参数化缓存数字电路微架构,所述参数化缓存数字电路微架构为缓存模块,包括入口分配子模块、出口分配子模块和m个缓存核心子模块,所述入口分配子模块有p组输入接口一一对应连接p个上游接口,m组输出接口一一对应连接所述m个缓存核心子模块;所述出口分配子模块有m组输入接口一一对应连接所述m个缓存核心子模块,q组输出接口一一对应连接q个下游接口;
所述入口分配子模块用于实现上游接口到缓存核心子模块的请求路由和仲裁;所述出口分配子模块用于实现缓存核心子模块到下游接口的路由和仲裁。
进一步地,为实现路由平衡,所述入口分配子模块包括但不限于插入地址哈希功能,所述出口分配子模块包括但不限于插入反哈希功能,恢复原始请求地址。
进一步地,缓存核心子模块包括缓存查找表子模块、操作队列子模块和数据处理子模块;
所述缓存查找表子模块用于完成包括请求缓存行的查找、分配缓存地址的常规缓存处理;
所述操作队列子模块中包含n个操作条目,n的大小受时钟频率、面积限制,在满足面积条件和时序约束的条件下取值;一个操作条目负责记录一个未完成的请求及其状态,并通过内置状态机逻辑控制该请求的完成步骤;
所述数据处理子模块用于完成对缓存及对下游的访存操作,包含slice_capacity大小的缓存存储块和一个深度为n,宽度为op_size的数据处理缓冲单元,对应于n个操作条目,每个操作条目有一份宽度为op_size缓冲数据。
进一步地,所述缓存存储块可分为k个大小为slice_bank_capacity缓存子存储块。
一种参数化缓存数字电路微架构的设计方法,采用上述的参数化缓存数字电路微架构,其特征在于,包括:
步骤一、根据芯片架构,先验获取以下量化参数:
提供给缓存模块的时钟频率(clk_f)
需求的上游接口数量(up_n)
需求的下游接口数量(dp_n)
需求从下游每个接口能够得到的带宽(dp_required_bw)
请求数据位宽(req_size)
需求的缓存的容量(cache_capacity)
此外,根据系统整体定义,得到或预估下游接口请求完成的平均时延(dp_latency);
步骤二、根据步骤一中的参数,转化得到以下自定义设计参数:
输入接口数p=up_n
输出接口数q=dp_n
数据操作粒度op_size=req_size
操作队列深度及操作条目个数n=32/64/128/256,选择需保证基于n深度的相关逻辑能够满足在时钟频率clk_f下的时序约束收敛
向下游接口单路请求带宽dp_request_bw=op_size*clk_f
缓存核心子模块例化份数:
当dp_latency>=n时,
m=max{[dp_required_bw*dp_latency/(dp_request_bw*n)]*q,p,q}
当dp_latency<n时,
m=max{[dp_required_bw/dp_request_bw]*q,p,q}
缓存存储块尺寸slice_capacity=cache_capacity/p
缓存子存储块尺寸slice_bank_capacity=slice_capacity/k,k的值根据访问缓存效率需求定义。
进一步地,k的值取4。
本发明的有益效果在于:
本发明量化一些系统参数并转化出一些自定义设计参数,基于这些自定义参数,实现参数化设计。在系统要求有变时,无需更改缓存子模块内部逻辑设计,依赖自定义参数改变一些子模块的接口数量、子模块实例化数量、存储器深度等就可以满足不同系统条件(不同工艺、不同时钟频率要求、不同访问延时、不同访问带宽、不同接口数量等)对缓存的需求。
本发明兼顾考虑了缓存基本功能设计和随系统要求变化的接口需求、带宽需求等,是个较通用化的缓存微架构。利用本发明能够缩短缓存数字设计模块开发周期。
附图说明
图1为缓存微架构顶层结构示意图;
图2为缓存核心子模块结构示意图;
图3为本发明实施例中一个具体的总架构系统框图;
图4为本发明实施例中缓存微架构顶层结构示意图;
图5为本发明实施例中缓存核心子模块结构示意图。
具体实施方式
下面结合附图和具体的实施例对本发明的参数化缓存数字电路微架构及其设计方法作进一步地详细说明。
如图1所示,一种参数化缓存数字电路微架构,参数化缓存数字电路微架构为缓存模块,包括入口分配子模块、出口分配子模块和m个缓存核心子模块,入口分配子模块有p组输入接口一一对应连接p个上游接口,m组输出接口一一对应连接m个缓存核心子模块。出口分配子模块有m组输入接口一一对应连接m个缓存核心子模块,q组输出接口一一对应连接q个下游接口。
入口分配子模块用于实现上游接口到缓存核心子模块的请求路由和仲裁。出口分配子模块用于实现缓存核心子模块到下游接口的路由和仲裁。
为实现路由平衡,入口分配子模块包括但不限于插入地址哈希功能,出口分配子模块包括但不限于插入反哈希功能,恢复原始请求地址。
如图2所示,缓存核心子模块包括缓存查找表子模块、操作队列子模块和数据处理子模块。
缓存查找表子模块用于完成包括请求缓存行的查找、分配缓存地址的常规缓存处理。
操作队列子模块中包含n个操作条目,n的大小受时钟频率、面积限制,在满足面积条件和时序约束的条件下取值。一个操作条目负责记录一个未完成的请求及其状态,并通过内置状态机逻辑控制该请求的完成步骤。
数据处理子模块用于完成对缓存及对下游的访存操作,包含slice_capacity大小的缓存存储块和一个深度为n,宽度为op_size的数据处理缓冲单元,对应于n个操作条目,每个操作条目有一份宽度为op_size缓冲数据。缓存存储块可分为k个大小为slice_bank_capacity缓存子存储块。
一种参数化缓存数字电路微架构的设计方法,采用上述的参数化缓存数字电路微架构,包括:
步骤一、根据芯片架构,先验获取以下量化参数:
提供给缓存模块的时钟频率(clk_f)
需求的上游接口数量(up_n)
需求的下游接口数量(dp_n)
需求从下游每个接口能够得到的带宽(dp_required_bw)
请求数据位宽(req_size)
需求的缓存的容量(cache_capacity)
此外,根据系统整体定义,得到或预估下游接口请求完成的平均时延(dp_latency)。
步骤二、根据步骤一中的参数,转化得到以下自定义设计参数:
输入接口数p=up_n
输出接口数q=dp_n
数据操作粒度op_size=req_size
操作队列深度及操作条目个数n=32/64/128/256,选择需保证基于n深度的相关逻辑能够满足在时钟频率clk_f下的时序约束收敛
向下游接口单路请求带宽dp_request_bw=op_size*clk_f
缓存核心子模块例化份数:
当dp_latency>=n时,
m=max{[dp_required_bw*dp_latency/(dp_request_bw*n)]*q,p,q}
当dp_latency<n时,
m=max{[dp_required_bw/dp_request_bw]*q,p,q}
缓存存储块尺寸slice_capacity=cache_capacity/p
缓存子存储块尺寸slice_bank_capacity=slice_capacity/k,k的值根据访问缓存效率需求定义,一般取4。
下面以图3所示的一个具体的总架构系统框图对本发明进行示例性说明。
步骤一、如图1所示的连接关系和系统需求,对于单个缓存模块而言,有:
时钟频率clk_f=1~2GHZ(支持不同频率)
有两路上游接口up_n=4
有两路下游接口dp_n=2
请求的数据宽度req_size=64B(字节)
下游每个接口能够得到的带宽51.2GB/s
需求的容量4MB
预估单笔请求完成的平均延时500cycle;
步骤二、根据以上参数,生成设计参数如下:
p=up_n=4
q=dp_n=2
op_size=req_size=64B
选取n=128(根据clk_f=2G时钟频率较高,256无法满足设计时序收敛)
dp_request_bw=op_size*clk_f=64GB/s~128GB/s(1GHZ~2GHZ clock)
因为
dp_latency=500>n(128)
所以
m=max{[dp_required_bw*dp_latency/(dp_request_bw*n)]*q,p,q}
=max{[51.2*500/(128*64)]*2,4,2}
=8
slice_capacity=4MB/8=512KB
k取4,
slice_bank_capacity=512KB/4=128KB;
根据以上设计参数,得到缓存微架构框图如图4,缓存核心子模块如图5所示。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术方法范围内,可轻易想到的替换或变换方法,都应该涵盖在本发明的保护范围之内。
Claims (5)
1.一种参数化缓存数字电路微架构,其特征在于,所述参数化缓存数字电路微架构为缓存模块,包括入口分配子模块、出口分配子模块和m个缓存核心子模块,所述入口分配子模块有p组输入接口一一对应连接p个上游接口,m组输出接口一一对应连接所述m个缓存核心子模块;所述出口分配子模块有m组输入接口一一对应连接所述m个缓存核心子模块,q组输出接口一一对应连接q个下游接口;
所述入口分配子模块用于实现上游接口到缓存核心子模块的请求路由和仲裁;所述出口分配子模块用于实现缓存核心子模块到下游接口的路由和仲裁;
缓存核心子模块包括缓存查找表子模块、操作队列子模块和数据处理子模块;
所述缓存查找表子模块用于完成包括请求缓存行的查找、分配缓存地址的常规缓存处理;
所述操作队列子模块中包含n个操作条目,n的大小受时钟频率、面积限制,在满足面积条件和时序约束的条件下取值;一个操作条目负责记录一个未完成的请求及其状态,并通过内置状态机逻辑控制该请求的完成步骤;
所述数据处理子模块用于完成对缓存及对下游的访存操作,包含slice_capacity大小的缓存存储块和一个深度为n,宽度为op_size的数据处理缓冲单元,对应于n个操作条目,每个操作条目有一份宽度为op_size缓冲数据。
2.根据权利要求1所述的参数化缓存数字电路微架构,其特征在于,为实现路由平衡,所述入口分配子模块包括但不限于插入地址哈希功能,所述出口分配子模块包括但不限于插入反哈希功能,恢复原始请求地址。
3.根据权利要求2所述的参数化缓存数字电路微架构,其特征在于,所述缓存存储块可分为k个大小为slice_bank_capacity缓存子存储块。
4.一种参数化缓存数字电路微架构的设计方法,采用权利要求3所述的参数化缓存数字电路微架构,其特征在于,包括:
步骤一、根据芯片架构,先验获取以下量化参数:
提供给缓存模块的时钟频率clk_f
需求的上游接口数量up_n
需求的下游接口数量dp_n
需求从下游每个接口能够得到的带宽dp_required_bw
请求数据位宽req_size
需求的缓存的容量cache_capacity
此外,根据系统整体定义,得到或预估下游接口请求完成的平均时延dp_latency;
步骤二、根据步骤一中的参数,转化得到以下自定义设计参数:
输入接口数p=up_n
输出接口数q=dp_n
数据操作粒度op_size=req_size
操作队列深度及操作条目个数n=32/64/128/256,选择需保证基于n深度的相关逻辑能够满足在时钟频率clk_f下的时序约束收敛
向下游接口单路请求带宽dp_request_bw=op_size*clk_f
缓存核心子模块例化份数:
当dp_latency>=n时,
m=max{[dp_required_bw*dp_latency/(dp_request_bw*n)]*q,p,q}
当dp_latency<n时,
m=max{[dp_required_bw/dp_request_bw]*q,p,q}
缓存存储块尺寸slice_capacity=cache_capacity/p
缓存子存储块尺寸slice_bank_capacity=slice_capacity/k,k的值根据访问缓存效率需求定义。
5.根据权利要求4所述的参数化缓存数字电路微架构的设计方法,其特征在于,k的值取4。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110626546.8A CN113435148B (zh) | 2021-06-04 | 2021-06-04 | 一种参数化缓存数字电路微架构及其设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110626546.8A CN113435148B (zh) | 2021-06-04 | 2021-06-04 | 一种参数化缓存数字电路微架构及其设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113435148A CN113435148A (zh) | 2021-09-24 |
CN113435148B true CN113435148B (zh) | 2022-11-08 |
Family
ID=77803750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110626546.8A Active CN113435148B (zh) | 2021-06-04 | 2021-06-04 | 一种参数化缓存数字电路微架构及其设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113435148B (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8812609B2 (en) * | 2011-06-06 | 2014-08-19 | Jaguna Networks Ltd | Methods, circuits, devices, systems and associated computer executable code for distributed content caching and delivery |
US8996840B2 (en) * | 2011-12-23 | 2015-03-31 | International Business Machines Corporation | I/O controller and method for operating an I/O controller |
CN103198856B (zh) * | 2013-03-22 | 2016-04-13 | 烽火通信科技股份有限公司 | 一种ddr控制器及请求调度方法 |
CN104780122B (zh) * | 2015-03-23 | 2018-09-11 | 中国人民解放军信息工程大学 | 基于缓存再分配的层次化片上网络路由器的控制方法 |
CN105045722B (zh) * | 2015-08-26 | 2018-06-05 | 东南大学 | 一种ddr2-sdram控制器及其低延迟优化方法 |
CN111274198B (zh) * | 2020-01-17 | 2021-11-19 | 中国科学院计算技术研究所 | 一种微架构 |
CN112214427B (zh) * | 2020-10-10 | 2022-02-11 | 中科声龙科技发展(北京)有限公司 | 缓存结构、工作量证明运算芯片电路及其数据调用方法 |
-
2021
- 2021-06-04 CN CN202110626546.8A patent/CN113435148B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113435148A (zh) | 2021-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10671562B2 (en) | Clock gating circuit | |
US8250394B2 (en) | Varying the number of generated clock signals and selecting a clock signal in response to a change in memory fill level | |
US7624221B1 (en) | Control device for data stream optimizations in a link interface | |
CN106294239B (zh) | 一种外围总线apb总线桥 | |
CN111095220B (zh) | 在服务于存储事务时的服务质量控制方法和系统 | |
EP4028859A1 (en) | Methods and apparatus for improved polling efficiency in network interface fabrics | |
WO2014169876A1 (zh) | 一种总线仲裁方法及装置、存储介质 | |
CN105677609A (zh) | 一种SoC系统的总线结构 | |
CN116028413A (zh) | 一种总线仲裁器、总线仲裁的方法、装置及介质 | |
CN118114615B (zh) | 一种控制与计算分离的系统芯片结构 | |
WO2021113778A1 (en) | Data transfers between a memory and a distributed compute array | |
KR100762264B1 (ko) | 지연 시간을 감소시키는 버스 매트릭스 구조 | |
CN110781109A (zh) | 用于提供可配置存储媒体接口的系统及方法 | |
CN113435148B (zh) | 一种参数化缓存数字电路微架构及其设计方法 | |
CN117251400A (zh) | 一种N端口PCIe Switch端口仲裁逻辑结构 | |
EP1370930A2 (en) | A communication system | |
US20110314197A1 (en) | Data processing system | |
CN113360130B (zh) | 一种数据传输方法、装置及系统 | |
CN112463668B (zh) | 一种基于stt-mram的多通道高速数据访存结构 | |
CN113868166A (zh) | 自适应请求应答系统、方法、设备和计算机介质 | |
CN113886104A (zh) | 多核芯片及其通信方法 | |
Zhang et al. | High performance and low area interconnect structure based on AXI | |
JP7561033B2 (ja) | 効率的な並列計算のための装置および方法 | |
RU2815262C2 (ru) | Устройство и способ эффективного параллельного вычисления | |
Agrawal et al. | AXI Based Three 8-bit Parallel Input to One Serial Output Converter with Priority Management System and Asynchronous Clocks at Input and Output |
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 |