《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于RISC-V架构的Spike缓存模型的设计和实现
基于RISC-V架构的Spike缓存模型的设计和实现
电子技术应用
唐屹晨,孙维东,胡小刚,毛晓炜
(中国电子科技集团公司第五十八研究所,江苏 无锡 214072)
摘要: 使用基于精简指令集原则的指令架构(RISC-V)的指令集,针对现有Spike验证模型中的缓存写回功能的缺失问题,设计一种基于RISC-V指令集的现代超标量处理器缓存模型。基于现代高速缓存的基本原理,结合Spike验证模型,实现现代高速缓存的基本读写操作,并进行系统级芯片(SoC)环境下的仿真和验证,可作为微型电子芯片(IC)前端逻辑设计中的验证模型使用。该方案能够以较快的时间完成基于RISC-V指令集的大型SoC的设计与验证。
关键词: RISC-V Spike 缓存模型
中图分类号:TN407
文献标志码:A
DOI: 10.16157/j.issn.0258-7998.223521
中文引用格式: 唐屹晨,孙维东,胡小刚,等. 基于RISC-V架构的Spike缓存模型的设计和实现[J]. 电子技术应用,2023,49(7):48-54.
英文引用格式: Tang Yichen,Sun Weidong,Hu Xiaogang,et al. Design and implementation of Spike cache model based on RISC-V architecture[J]. Application of Electronic Technique,2023,49(7):48-54.
Design and implementation of Spike cache model based on RISC-V architecture
Tang Yichen,Sun Weidong,Hu Xiaogang,Mao Xiaowei
(China Key System & Integrated Circuit Co., Ltd., Wuxi 214072, China)
Abstract: In order to solve the cache write back missing problem of the Spike verification model,this paper presents a superscalar cache model based on the reduced instruction set computer(RISC-V) instruction set。This cache model is based on the Spike environment, the cache model implements the basic principles of superscalar cache. This cache model implements the high level cache write back and write through process, and it is verified in the system level chip (SoC) simulation. This scheme can be used as a model for front-end logic verification, and it can complete large scale verification based on the RISC-V instruction set in a shorter time.
Key words : RISC-V;Spike;cache model

0 引言

嵌入式微处理器以性能高、功耗低等特点在电子行业得到了广泛应用。由于RISC-V[1]指令集的开源性、模块化和成熟性,国内基于RISC-V指令集的嵌入式处理器在近几年得到了快速发展。然而,纵观国内对于RISC-V的研究多集中于理论和设计等领域,对于诸如高速缓存等特定方向的研究案例较少,对于Spike等验证模型的研究则更为缺乏。

Spike[2]是RISC-V的基金会指定的根据RISC-V 指令集架构(ISA)标准实现的验证模型, Spike通过tracer 函数完成高速缓存的实时记录,但是没有现代超标量处理器所拥有的缓存处理算法。Spike的内存管理单元通过地址映射实现与处理器模块的交互,通过缓存实现数据在CPU和内存的不同读写速度之间的匹配。内存管理单元主要包括地址转换缓存(TLB)单元和地址映射单元,MMU模块将虚拟地址转换为物理地址,包含地址转换缓存功能。

Spike的缓存模块不存储数据,只是简单地记录访问的次数、命中率、缺失率和写回率。对于经过缓存的数据没有任何的记录,缓存的操作原理也并没有按照超标量高速缓存实现。Spike中的缓存模块通过tracer 函数和victim函数模拟缓存的写回行为,并且允许设置缓存的通道数路数、组路数和行数来配置缓存的参数。这种简单的模拟对于缓存读写场景的验证会带来极大的不准确性,对于前端逻辑设计与验证的工作也带来挑战。


本文详细内容请下载:https://www.chinaaet.com/resource/share/2000005391




作者信息:

唐屹晨,孙维东,胡小刚,毛晓炜

(中国电子科技集团公司第五十八研究所,江苏 无锡 214072)


微信图片_20210517164139.jpg

此内容为AET网站原创,未经授权禁止转载。