diff --git a/docs/doc/processor/riscv.md b/docs/doc/processor/riscv.md index b696fb4..f1b2533 100644 --- a/docs/doc/processor/riscv.md +++ b/docs/doc/processor/riscv.md @@ -1,13 +1,12 @@ # RISC-V -RISC-V是一个新的开源精简指令集体系架构(ISA),诞生于美国加州大学伯克利分校,RISC-V架构相比主流的指令集架构更加简洁、灵活。自2016年RISC-V基金会成立以来,受到了广泛的关注,并被业界高度接纳。国内也产生众多RISC-V架构的处理器芯片,例如嘉楠K210等。--摘自《RISC-V架构与嵌入式开发快速入门--胡振波著》 +RISC-V 是一个新的开源精简指令集体系架构(ISA),诞生于美国加州大学伯克利分校,RISC-V 架构相比主流的指令集架构更加简洁、灵活。自2016年 RISC-V 基金会成立以来,RISC-V 受到了广泛的关注,并被业界高度接纳。国内也产生众多 RISC-V 架构的处理器芯片,例如嘉楠 K210。--摘自《RISC-V架构与嵌入式开发快速入门--胡振波著》 下面以kendryte K210为例介绍RISC-V芯片的特性,以下内容摘自 [K210 技术规格书](https://canaan-creative.com/developer)。 ## 概述 -Kendryte K210是一款RISC-V架构且集成机器视觉与机器听觉能力的系统级芯片(SoC)。具有双核64位处理器,拥有较好的功耗性能,稳定性与可靠性。 -温度范围-40°C 到 125°C。芯片系统架构如下图所示: +Kendryte K210 是一款基于 RISC-V 架构且集成机器视觉与机器听觉能力的系统级芯片(SoC),具有双核64位处理器,拥有较好的功耗性能,稳定性与可靠性,温度范围-40°C 到 125°C。芯片系统架构如下图所示:
@@ -15,17 +14,16 @@ Kendryte K210是一款RISC-V架构且集成机器视觉与机器听觉能力的
-K210 包含 RISC-V 64位双核 CPU,每个核心内置独立FPU. +K210 包含 RISC-V 64位双核 CPU,每个核心内置独立FPU。 K210 内嵌AES与SHA256算法加速器,提供安全功能。 K210 拥有高性能、低功耗的SRAM,以及功能强大的DMA,在数据吞吐能力方面性能优异。 K210 具备丰富的外设单元,分别是:DVP、JTAG、OTP、FPIOA、GPIO、UART、SPI、RTC、I²S、I²C、 WDT、Timer 与 PWM,可满足海量应用场景。 - ## 功能描述 ### 中央处理器 (CPU) #### 基本特性 | 项目 | 内容 | 描述 | -| --- | --- | --- | +| :---: | :---: | --- | | 核心数量| 2核心 | 双核对等,各个核心具备独立FPU | | 处理器位宽 | 64位 | 64位CPU位宽,为高性能算法计算提供位宽基础,计算带宽充足 | | 标称频率 | 400MHz | 频率可调,可通过调整PLL VCO与分频进行变频 | @@ -38,15 +36,15 @@ WDT、Timer 与 PWM,可满足海量应用场景。 | 片上 SRAM | 8MiB | 共计8兆字节的片上 SRAM | #### FPU 与浮点计算能力 -* FPU 满足 IEEE754-2008 标准,计算流程以流水线方式进行,具备很强的运算能力 +* FPU 满足 IEEE754-2008 标准,计算流程按照流水线方式进行,具备很强的运算能力 * 核心 0 与核心 1 各具备独立 FPU,两个核心皆可胜任高性能硬件浮点计算 * 支持 F 扩展,即单精度浮点扩展,CPU 内嵌的 FPU 支持单精度浮点硬件加速 * 支持 D 扩展,即双精度浮点扩展,CPU 内嵌的 FPU 支持双精度浮点硬件加速 -* FPU 具备除法器,支持单精度、双精度的浮点的硬件除法运算 +* FPU 具备除法器,支持单精度、双精度浮点的硬件除法运算 * FPU 具备平方根运算器,支持单精度、双精度的浮点的硬件平方根运算 #### 高级中断管理能力 -该 RISC-V CPU 的 PLIC 控制器支持灵活的高级中断管理,可分7个优先级配置64个外部中断源,两个核心都可独立进行配置: +RISC-V CPU 的 PLIC 控制器支持灵活的高级中断管理,可分7个优先级配置64个外部中断源,两个核心都可独立进行配置: * 可对两个核心独立进行中断管理与中断路由控制 * 支持软件中断,并且双核心可以相互触发跨核心中断 * 支持 CPU 内置定时器中断,两个核心都可自由配置 @@ -54,7 +52,7 @@ WDT、Timer 与 PWM,可满足海量应用场景。 #### 调试能力 * 支持性能监控指令,可统计指令执行周期 -* 具备用以调试的高速 UART 与 JTAG 接口 +* 具备用于调试的高速 UART 与 JTAG 接口 * 支持 DEBUG 模式以及硬件断点 ### 神经网络处理器 (KPU) @@ -67,9 +65,9 @@ KPU 是通用神经网络处理器,内置卷积、批归一化、激活、池 * 非实时工作时最大支持网络参数大小为(Flash 容量-软件体积) | 工况 | 最大定点模型大小(MiB) | 量化前浮点模型大小(MiB) | -| --- | --- | --- | +| :---: | :---: | :---: | | 实时(≥ 30fps)| 5.9 | 11.8 | -| 非实时(< 10fps)*1 | 与Flash容量相关*2 | 与Flash容量相关 | +| 非实时(< 10fps)* 1 | 与Flash容量相关 * 2 | 与Flash容量相关 | ### 音频处理器 (APU) APU 前处理模块负责语音方向扫描和语音数据输出的前置处理工作。APU前处理模块的功能特性有: * 可以支持最多8路音频输入数据流,即4路双声道 @@ -80,7 +78,7 @@ APU 前处理模块负责语音方向扫描和语音数据输出的前置处理 * 支持多路原始信号直接输出 * 可以支持高达192K采样率的音频输入 * 内置FFT变换单元,可对音频数据提供512点快速傅里叶变换 -* 利用系统DMAC将输出数据存储到SoC的系统内存中 +* 利用系统 DMAC 将输出数据存储到 SoC 的系统内存中 ### 静态随机存取存储器 (SRAM) SRAM 包含两个部分,分别是 6MiB 的片上通用 SRAM 存储器与 2MiB 的片上 AI SRAM 存储器,共计 8MiB(1MiB 为 1 兆字节)。其中,AI SRAM 存储器是专为 KPU 分配的存储器。它们分布在连续的地址空 @@ -94,8 +92,8 @@ SRAM 映射分布: | 通用SRAM存储器 | 非CPU缓存 | 0x40000000 | 0x405FFFFF | 0x600000 | | AI SRAM存储器 | 非CPU缓存 | 0x40600000 | 0x407FFFFF | 0x200000 | #### 通用 SRAM 存储器 -通用SRAM存储器在芯片正常工作的任意时刻都可以访问。该存储器分为两个Bank,分别为MEM0与 -MEM1,并且DMA控制器可同时操作不同Bank。 +通用SRAM存储器在芯片正常工作的任意时刻都可以访问。该存储器分为两个 Bank,分别为 MEM0 与 + MEM1 ,并且 DMA 控制器可同时操作不同 Bank。 通用 SRAM 存储器地址空间: | 模块名称 | 映射类型 | 开始地址 | 结束地址 | 空间大小 | | --- | --- | --- | --- | --- | @@ -106,7 +104,8 @@ MEM1,并且DMA控制器可同时操作不同Bank。 #### AI SRAM 存储器 AI SRAM存储器仅在以下条件都满足时才可访问: * PLL1已使能,时钟系统配置正确 -* KPU没有在进行神经网络计算 +* KPU没有在进行神经网络计算 + AI SRAM存储器地址空间: | 模块名称 | 映射类型 | 开始地址 | 结束地址 | 空间大小 | @@ -114,7 +113,7 @@ AI SRAM存储器地址空间: | AI SRAM存储器 | 经CPU缓存 | 0x80600000 | 0x807FFFFF | 0x200000 | | AI SRAM存储器 | 非CPU缓存 | 0x40600000 | 0x407FFFFF | 0x200000 | ### 系统控制器 (SYSCTL) -控制芯片的时钟,复位和系统控制寄存器: +控制芯片的时钟,复位和系统控制寄存器。 * 配置 PLL 的频率 * 配置时钟选择 * 配置外设时钟的分频比 @@ -122,7 +121,7 @@ AI SRAM存储器地址空间: * 控制模块复位 * 选择 DMA 握手信号 ### 现场可编程 IO 阵列 (FPIOA/IOMUX) -FPIOA 允许用户将 255 个内部功能映射到芯片外围的 48 个自由 IO 上: +FPIOA 允许用户将 255 个内部功能映射到芯片外围的 48 个自由 IO 上。 * 支持 IO 的可编程功能选择 * 支持 IO 输出的 8 种驱动能力选择 * 支持 IO 的内部上拉电阻选择 @@ -132,7 +131,7 @@ FPIOA 允许用户将 255 个内部功能映射到芯片外围的 48 个自由 I * 支持内部输入逻辑的电平设置 ### 一次性可编程存储器 (OTP) OTP 是一次性可编程存储器单元,具体应用特性如下: -* 具有 128Kbit 的大容量存储空间 +* 具有 128 Kbit 的大容量存储空间 * 内部划分多个容量不同的 BLOCK,每个 BLOCK 对应一个写保护位,可以单独进行写保护操作 * 具有坏点修复功能 * 内部存储了 64 个 REGISTER_ENABLE 标志位,可以作为控制某些 SoC 的硬件电路行为的开关 @@ -147,55 +146,57 @@ AES 加速器是用来加密和解密的模块,具体性能如下: DVP 是摄像头接口模块,特性如下: * 支持 DVP 接口的摄像头 * 支持 SCCB 协议配置摄像头寄存器 -* 最大支持 640X480 及以下分辨率,每帧大小可配置 +* 最大支持 640 X 480 及以下分辨率,每帧大小可配置 * 支持 YUV422 和 RGB565 格式的图像输入 -* 支持图像同时输出到 KPU 和显示屏: - – 输出到 KPU 的格式可选 RGB888,或 YUV422 输入时的 Y 分量 - – 输出到显示屏的格式为 RGB565 +* 支持图像同时输出到 KPU 和显示屏 + * 输出到 KPU 的格式可选 RGB888,或 YUV422 输入时的 Y 分量 + * 输出到显示屏的格式为 RGB565 * 检测到一帧开始或一帧图像传输完成时可向 CPU 发送中断 ### 快速傅里叶变换加速器 (FFT Accelerater) -FFT 加速器是用硬件的方式来实现 FFT 的基 2 时分运算。 +FFT 加速器用硬件的方式来实现 FFT 的基 2 时分运算。 * 支持多种运算长度,即支持 64 点、128 点、256 点以及 512 点运算 * 支持两种运算模式,即 FFT 以及 IFFT 运算 * 支持可配的输入数据位宽,即支持 32 位及 64 位输入 * 支持可配的输入数据排列方式,即支持虚部、实部交替,纯实部以及实部、虚部分离三种数据排列方式 * 支持 DMA 传输 ### 安全散列算法加速器 (SHA256 Accelerater) -SHA256 加速器是用来计算 SHA-256 的计算单元: +SHA256 加速器是用来计算 SHA-256 的计算单元。 * 支持 SHA-256 的计算 * 支持输入数据的 DMA 传输 ## 外设模块 ### 通用异步收发传输器 (UART) #### 高速 UART: -高速 UART 为 UARTHS(UART0) +高速 UART 为 UARTHS(UART0)。 * 通信速率可达 5Mbps * 8 字节发送和接收 FIFO * 可编程式 THRE 中断 * 不支持硬件流控制或其他调制解调器控制信号,或同步串行数据转换器 -#### 通用 UART: -通用 UART 为 UART1、UART2 和 UART3,支持异步通信(RS232 和 RS485 和 IRDA,通信速率可达到5Mbps。 +#### 通用 UART +通用 UART 为 UART1、UART2 和 UART3,支持异步通信(RS232、RS485 和 IRDA),通信速率可达到5Mbps。 UART 支持 CTS 和 RTS 信号的硬件管理以及软件流控 (XON 和 XOFF)。3 个接口均可被 DMA 访问或者 CPU 直接访问。 * 8 字节发送和接收 FIFO * 异步时钟支持 - – 为了应对 CPU 对于数据同步的对波特率的要求, UART 可以单独配置数据时钟. 全双工模式能保证两个时钟域中数据的同步 + * 为了应对 CPU 对于数据同步的对波特率的要求, UART 可以单独配置数据时钟。 全双工模式能保证两个时钟域中数据的同步 * RS485 接口支持 - – UART 可以配置为软件可编程式 RS485 模式。默认为 RS232 模式 + * UART 可以配置为软件可编程式 RS485 模式。默认为 RS232 模式 * 可编程式 THRE 中断 - – 用 THRE 中断模式来提升串口性能。当 THRE 模式和 FIFO 模式被选择之后,如果 FIFO 中少于阈值便触发 THRE 中断 + * 用 THRE 中断模式来提升串口性能。当 THRE 模式和 FIFO 模式被选择之后,如果 FIFO 中少于阈值便触发 THRE 中断 ### 看门狗定时器 (WDT) WDT 是 APB 的一种从外设,并且也是 “同步化硬件组件设计” 的组成部分。具有两个 WDT, 分别为 -WDT0、WDT1 看门狗定时器主要包含模块有: +WDT0、WDT1。 看门狗定时器主要包含模块有: * 一个 APB 从接口 * 一个当前计数器同步的寄存器模块 * 一个随着计数器递减的中断/系统重置模块和逻辑控制电路 -* 一个同步时钟域来为异步时钟同步做支持 +* 一个同步时钟域来为异步时钟同步做支持 + 看门狗定时器支持如下设置: -* APB 总线宽度可配置为 8、16 和 32 位 • 时钟计数器从某一个设定的值递减到 0 来指示时间的计时终止 +* APB 总线宽度可配置为 8、16 和 32 位 +* 时钟计数器从某一个设定的值递减到 0 来指示时间的计时终止 * 可选择的外部时钟使能信号,用于控制计数器的计数速率 -* 一个时钟超时 WDT 可以执行以下任务: - – 产生一个系统复位信号 - – 首先产生一个中断,即使该位是否已经被中断服务清除,其次它会产生一个系统复位信号 +* 一个时钟超时 WDT 可以执行以下任务 + * 产生一个系统复位信号 + * 首先产生一个中断,即使该位是否已经被中断服务清除,其次它会产生一个系统复位信号 * 占空比可编程调节 * 可编程和硬件设定计数器起始值 * 计数器重新计时保护 @@ -233,7 +234,9 @@ DMAC 具有如下特点: ### 集成电路内置总线 (I²C) 集成电路总线有 3 个 I²C 总线接口,根据用户的配置,总线接口可以用作 I²C MASTER 或 SLAVE 模 式。I²C 接口支持: -* 标准模式(0 到 100Kb/s) • 快速模式(<= 400Kb/s) • 7-位/10-位 寻址模式 +* 标准模式(0 到 100Kb/s) +* 快速模式(<= 400Kb/s) +* 7-位/10-位 寻址模式 * 批量传输模式 * 中断或轮询模式操作 ### 串行外设接口 (SPI) @@ -250,10 +253,12 @@ DMAC 具有如下特点: ### 集成电路内置音频总线 (I²S) 集成电路内置音频总线共有 3 个 (I²S0、I²S1、I²S2),都是 MASTER 模式。其中 I²S0 支持可配置连 接语音处理模块,实现语音增强和声源定向的功能。下面是一些共有的特性: -* 总线宽度可配置为 8,16,和 32 位 • 每个接口最多支持 4 个立体声通道 +* 总线宽度可配置为 8,16 和 32 位 +* 每个接口最多支持 4 个立体声通道 * 由于发送器和接收器的独立性,所以支持全双工通讯 * APB 总线和 I²S SCLK 的异步时钟 -* 音频数据分辨率为 12,16,20,24 和 32 位 • I²S0 发送 FIFO 深度为 64 字节, 接收为 8 字节,I²S1 和 I²S2 的发送和接收 FIFO 深度都为 8字节 +* 音频数据分辨率为 12,16,20,24 和 32 位 +* I²S0 发送 FIFO 深度为 64 字节, 接收为 8 字节,I²S1 和 I²S2 的发送和接收 FIFO 深度都为 8字节 * 支持 DMA 传输 * 可编程 FIFO 阈值 ### 定时器 (TIMER)