🔍 搜索帖子 / 资讯 / 芯片型号…
NICE接口介绍
全国大学生集成电路创新创业大赛 作者 clever 发布于 2021-03-24 18:49(2025 天前) 13388 浏览

一、NICE接口简介

       在开发过程中,为了提高特定领域的性能,同时降低功耗,可以考虑利用定制的硬件协同单元,蜂鸟E203内核支持用户创建自定义指令,主处理器与协处理器通过NICE(Nuclei Instruction Co-unit Extension)接口通信。


二、NICE指令格式

        NICE指令格式如下:

其中各个部分的意思如下表


注:RISC-V ISA在32位指令集中提供了四组custom指令:custom0、custom1、custom2、custom3,它们的opcode分别为:0001011、1101011、1011011、1111011。


三、接口定义


      注:Direction是针对E203 core的。


四、指令处理

指令的处理主要有以下几步:

1、E203内核先取指,译码,如果识别到是一条NICE指令,则通过request channel将这条指令交给协处理器处理,并根据funct3判断是否将源寄存器的值传递给协处理器。

2、如果NICE指令和前一条未完成的指令间存在联系,则需要停顿流水线直到联系解除,就不用考虑数据前递之类的问题,和E203内核的一般指令一样。

3、采用握手机制,E203内核发出的request信号持续拉高,直到协处理器ready信号拉高,握手成功,信息传递给协处理器。

4、协处理器处理完毕,通过response channel将数据发送给E203内核。


五、NICE接口内存的访问

内存访问和指令的处理基本一致,也是采用握手机制,步骤如下:

1、协处理器发送ICB请求,如果E203 ICB ready信号拉高,握手成功,E203将利用LSU(load/store unit)进行内存的访问。

2、E203内核在访存完成后,通过response channel将valid信号以及读取到的数据(如果是读操作)发送给系处理器,当协处理器ready信号拉高,握手成功,数据传输完毕。

3、为防止死锁的发生,在协处理器访问内存时,需要将nice_mem_holdup信号持续拉高,在此期间不允许其他的内存访问。






全部回复 1
c
canbck341 天前 · 1 楼

请问NICE接口和AMBA总线相比有什么更突出的优势?

💡 请 登录 后参与讨论(微信扫码即登录/注册)