RISC-V怎么实现核间中断?核心本地中断控制器(CLINT)深度解析

全称为 Core Local Interruptor(核心本地中断控制器),是 RISC-V 特权架构规范(Privileged Architecture Specification)中明确定义的内建于每个核心 / 硬件线程(hart)的中断控制器,专门处理「核心本地、非共享」的中断类型,区别于处理外设共享中断的 PLIC(Platform-Level Interrupt Controller,平台级中断控制器)。

1、为什么需要 CLINT?

RISC-V 核心在运行时,需要处理两类截然不同的中断需求:

一类是全局共享中断(如 UART 收发、GPIO 电平变化、SPI 通信完成等),这类中断来自外部外设,需多个核心共享处理;

另一类是核心本地中断(如定时任务、核心间通信),这类中断仅属于单个核心,要求极低的响应延迟,无需总线仲裁。

CLINT 的设计初衷正是为了解决第二类需求 ------ 通过将中断控制器 "内嵌" 到每个 hart 中,避免总线传输带来的延迟,确保核心对本地关键事件(如定时器到期、核心间唤醒)的快速响应,这也是其 "Core Local"(核心本地)命名的由来。

CLINT 模块产生 CSR 寄存器的定时器中断、软件中断和计时器。

CLINT的系统架构示意图

2、CLINT 功能说明

CLINT 由软件中断触发器、定时器中断触发器、计数器组成。 软件中断触发器由一个寄存器构成,直连 CPU 的机器级软件中断。 计数器负责提供 CPU 的 TIME 与 TIMEH,并参与定时器中断的触发。 定时器中断触发器用于定时器中断 的触发,当计数器值大于配置的值时会触发定时器中断,定时器中断是嵌入式系统中最常用的中断类型,几乎所有 RTOS(如 FreeRTOS、RT-Thread)的任务调度都依赖定时器中断提供的 "时钟节拍"。

2.1 CLINT初始化

2.2 软件中断:

写 0 则清除中断挂起状态

2.3定时器中断:

中断处理函数中,更新比较阈值(实现周期性触发),并执行调度逻辑(如 RTOS 的任务切换)。

2.3读取CLINT计数器:

2.4延时函数通过计数器功能计算延时时间

CLINT 的 64 位全局计数器time/timeh提供了高精度的时间基准,可直接用于实现微秒级 / 毫秒级精准延时,无需依赖外部定时器。

延时函数实现原理:

进入延时函数时,读取当前计数器值told;

计算需要的总时钟节拍数(ticks = 延时时间(us) × 时钟频率(MHz));

循环读取当前计数器值tnow,计算累计节拍数tcnt;

当tcnt >= ticks时,延时结束。

3、CLINT 的常见应用场景

① RTOS 时钟节拍生成

FreeRTOS 等 RTOS 的任务调度依赖固定周期的时钟节拍,通常将 CLINT 定时器中断配置为 1ms 触发一次,在中断处理函数中调用vTaskIncrementTick(),实现任务就绪状态更新和调度器切换。

② 多核系统启动

在 RISC-V 多核芯片中,主核心启动后,通过向从核心的SOFTICR寄存器写 1,触发从核心的软件中断,从核心在中断处理函数中完成栈初始化、应用加载,实现多核心协同工作。

③ 精准数据采样

在工业控制、传感器采集等场景中,需按固定时间间隔(如 100us)采集数据,通过 CLINT 定时器中断触发采样函数,确保采样周期的稳定性和精准度。

相关推荐
深圳光特通信豆子1 小时前
TTL 光模块在工业控制与串口通信中的应用指南(10M BIDI 单模系列)
单片机·嵌入式硬件
蓝祁子yoky1 小时前
Qt学习日记 Day13:网络编程(一)-TCP基础与Socket实战
网络·qt·学习
桀人1 小时前
SPI概念引入
stm32·单片机·嵌入式硬件
箓维1 小时前
TCP Socket的进阶实现
网络·笔记·tcp/ip
离凌寒2 小时前
一、基于stm32+freertos下LD2410D和R60ADB1两款雷达的使用效果
stm32·单片机·嵌入式硬件
小羊没烦恼!2 小时前
关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁
java·服务器·网络·学习·负载均衡
小Ti客栈2 小时前
Netty 零拷贝原理与实战
运维·服务器·网络
国科安芯2 小时前
商业光学遥感载荷焦平面供电链的低噪声稳压器研究综述——以国科安芯ASP7A84AS型3A低压差线性稳压器为器件级参照
大数据·网络·嵌入式硬件·平面·卫星·商业航天·抗辐射
幼儿园蛋小黄2 小时前
从 STM32N647 的 AI 部署入门嵌入式:一条可落地的学习路线
人工智能·stm32·学习
静以修身zzz2 小时前
计算云服务
运维·网络·云计算