ARC学习(1)基本编程模型认识

news2024/12/26 23:29:03

笔者有幸接触了arc处理器,今天就来简单了解一下arc的编程模型

1、ARC基本认识

ARC IP是synopsys 新思公司开发的一个系列ARC IP核,其是一家电子设计自动化(EDA)解决方案提供商。其主页地址在这里!业务主要如下:

在这里插入图片描述
今天主要来聊一下其下的一些IP核,主要有如下几种:

  • ARC 600:ARCv1指令集

    • Synopsys 的 DesignWare® ARC® 600 系列处理器芯核为 32 位 RISC 处理器芯核,其针对嵌入式应用和 DSP 任务高性能和低功耗的要求进行了优化。
    • DesignWare ARC 600 系列处理器芯核拥有灵活的存储器选项,例如针对指令和数据的单周期紧密耦合内存 (CCM),以及可配置指令缓存 (I-cache) 和数据缓存 (D-cache),可有效满足各种处理需求。
    • ARC 600 系列包括 ARC 601、ARC 605、ARC 610D 和 ARC 625D 处理器。这些处理器均可高度配置,每个实例均可以进行定制,从而在性能、能耗和面积之间达到理想的平衡,让 SoC 设计人员能够针对具体目标应用对处理器进行优化。此外,ARC 600 处理器还具有可扩展性,可让设计人员添加自己的定制指令,从而大大提高性能。
    • 可选的 DSP 和浮点单元 (FPU) 功能,使得设计人员可利用单一的主机应用处理器满足各类处理需求。使用单一的处理器可简化设计、减少硅面积,实现更快的芯片调试。
    • ARC处理器采用16/32位指令集架构设计,该架构提供了高代码密度,并且在16和32-位指令之间没有切换开销。凭借灵活的寻址模式,ARC 625D提供多达128个双或单操作数指令代码,可用于用户定义指令,以及多达64个可直接寻址核心寄存器和32个条件执行代码。
      在这里插入图片描述
  • ARC 700:ARCv1指令集

    • Synopsys 的 DesignWare® ARC® 700 系列处理器芯核为 32 位 RISC 处理器芯核,是要求高性能和低功耗的深嵌入式应用和 DSP 任务的完美解决方案。DesignWare ARC 700 系列处理器芯核拥有灵活的存储器选项,例如针对指令和数据的单周期紧密耦合内存 (CCM),以及可配置指令缓存 (I-cache) 和数据缓存 (D-cache),可有效满足各种处理需求。
    • DesignWare ARC 700 系列包括 ARC 710D、ARC 725D 和 ARC 770D 处理器,这些处理器均可高度配置,每个实例均可以进行定制,从而在性能、能耗和面积之间达到理想的平衡,让 SoC 设计人员能够针对具体目标应用对处理器进行优化。此外,ARC 700 处理器还具有可扩展性,可让设计人员添加自己的定制指令,从而大大提高性能。
    • 可选的 DSP 和浮点单元 (FPU) 功能,使得设计人员可利用单一的主机应用处理器满足各类处理需求。使用单一的处理器可简化设计、减少硅面积,实现更快的芯片调试。
      在这里插入图片描述
  • ARC EM 系列:针对微控制器,对内存Flash空间以及功耗敏感的场景。

    • 基于 ARCv2 指令集架构 (ISA) 的 DesignWare® ARC® EM 系列包括 ARC EM4 、EM6、EM5D/7D、EM9D/EM11D以及EM22FS等
    • 超紧凑型 EM 内核具有出色的代码密度、小巧的尺寸和非常低的功耗,使其非常适合注重功耗和面积的嵌入式和深度嵌入式应用。
      在这里插入图片描述
      在这里插入图片描述
  • ARC HS系列:针对高性能嵌入式应用

    • 基于高效 ARCv2 指令集架构 (ISA) 的 DesignWare® ARC® HS 系列包括 HS3x、HS4x 和 DSP 增强型 HS4xD 处理器。所有 HS 处理器都支持紧密耦合内存 (CCM),实现单周期访问指令和数据
    • HS 处理器针对GHz+ 的运行速度进行了优化,并具有超小的面积和功耗,使其非常适合对性能要求非常高的嵌入式应用。所有的 HS 处理器都提供单核、双核和四核配置
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
  • ARC EV系列:针对嵌入式视觉处理器应用

    • 主要有EV74/74FS 、EV72/EV72FS、EV71/EV71FS IP核。
    • DesignWare® ARC EV 处理器是完全可编程和可配置的 IP 核,它针对嵌入式视觉应用进行了优化,融合了软件解决方案的灵活性和硬件的低成本和低功耗等特点。为了快速准确地执行卷积神经网络 (CNN) 或递归神经网络 (RNN),EV 处理器集成了可选的高性能深度神经网络 (DNN) 加速器
    • EV 处理器设计用于无缝集成到 SoC 中,并且能和任何主处理器一同使用,还能和主机并行运行。为了加速应用软件开发,EV 处理器得到了基于现有和新兴嵌入式视觉和神经网络标准的全面软件编程环境的支持,包括 OpenCV、OpenVX™、OpenCL™ C 以及采用 Synopsys 的 ARC MetaWare EV 开发工具包的 Caffe。
      在这里插入图片描述
  • ARC SEM系列:主打安全领域的性能功耗一体的应用场景

    • SEM系列包括性能高效、超低功耗、紧凑型安全处理器,使设计人员能够将安全集成到其SoC中,以抵御逻辑、硬件和物理攻击
    • 基于ARCV2指令集,具有紧密耦合存储器和外围设备的能力。它们集成了非常适合各种嵌入式应用程序的安全功能,可以作为独立的安全核心或同时执行安全和正常功能的单个核心。
    • ARC SEM系列包括SEM110和SEM120D处理器。这两个处理器都包括上面列出的功能,SEM120D增加了一个DSP指令集和统一的乘法/MAC单元。它适用于在同一核心中需要实时处理和安全功能的应用程序
      在这里插入图片描述
      在这里插入图片描述
  • ARC VPX系列:DSP处理器架构,面向嵌入式终端,如物联网以及音频等领域

    • DesignWare® ARC® VPX DSP 系列针对嵌入式工作负载的独特功率、性能和面积 (PPA) 要求进行了优化,例如物联网传感器融合、雷达和激光雷达处理、发动机控制、语音/言语识别、自然语言处理和其他终端 AI 应用。VPX 处理器基于增强型 ARCv2DSP 指令集,在 128 位(VPX2、VPX2FS)和 256 位(VPX3、VPX3FS)矢量字上运行,根据相同的超长指令字 (VLIW)/单指令多数据 (SIMD) 架构补充现有的 512 位 VPX5 和 VPX5FS。
    • 安全增强型 ARC VPXxFS 处理器集成了硬件安全特性,包括针对内存和接口的纠错码 (ECC) 保护、安全监测器和锁步机制,有助于设计人员达到最严格的 ISO 26262 ASIL B、ASIL C 和 ASIL D 功能安全合规水平
      在这里插入图片描述
      在这里插入图片描述
  • ARC NPX系列:面向AI需要神经网络模型支持数据运算的领域,如高级驾驶员辅助驾驶。

    • 全新的 DesignWare® ARC® NPX 神经处理单元 (NPU) IP 系列可为最新、最复杂的神经网络模型提供业界最佳的性能和支持。DesignWare ARC NPX6 NPU IP 提供高达 96K MAC 的能力,支持更高的 MAC 利用率、新的稀疏性和新的可扩展性互连,可满足 AI 应用的超低功耗实时计算需求。
    • 单个 ARC NPX6 NPU IP 实例可在 1.3 GHz, 5nm 工艺最坏情况下 (worst case),提供高达 250 TOPS 的性能,或者通过使用新的稀疏功能提供高达 440 TOPS 的性能,这可以提高神经网络的性能并降低其能源需求。NPU IP 和新的 MetaWare MX 开发工具包都集成了连接特性,可实现多个 NPU 实例的实施,从而在单个 SoC 上实现高达 3,500 TOPS 的性能。
    • 用于功能安全的神经处理器 IP,DesignWare ARC NPX6FS NPU IP 满足严苛的随机硬件故障检测和系统功能安全开发流程要求,可以达到 ISO 26262 ASIL D 安全等级。这些处理器包含全面的安全文档,具有符合 ISO 26262 标准的专用安全机制,可满足下一代区域架构的
      在这里插入图片描述
      在这里插入图片描述
      备注:FS系列:功能安全(Functionality Security)

2、ARC寄存器认识

以ARC HS系列为例,简单介绍其寄存器模型。
在这里插入图片描述
其主要有以上寄存器,都是32位寄存器。
在这里插入图片描述

  • 参数寄存器:r0-r7,8个参数,
  • 暂存器:r10-r15
  • 保存寄存器:r16-r25 调用函数需要保存的寄存器
  • 指针寄存器:gp(全局指针)、fp(栈顶指针)、sp(栈底指针)
  • 链接寄存器:ilink(异常链接寄存器)、blink(分支链接寄存器)
  • 通用目的寄存器:genaral purpose reg,不是暂存器也不是保存寄存器
  • 程序寄存器:PCL = PC & 0xFFFF FFFC ,PC 在arc里面是辅助寄存器,反应的时候实际的指令地址,其是只读半字对齐的寄存器。

3、ARC异常模型认识

在这里插入图片描述
在这里插入图片描述
待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/591499.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python中的按位取反

Python中的按位取反 Python中的按位取反是一种常见的操作,它可以让我们快速地对二进制的数字进行取反操作。在本文中,我们将介绍Python中的按位取反操作,并探讨它的用途和示例。 什么是按位取反 按位取反是一种将二进制数中的每一位进行反…

Vue之前后端交互模式

1. fetch-API的使用 1.1 init <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"…

手机常识汇总

目录 一、手机历史介绍 第一代模拟制式手机(1G) 什么是模拟网? 模拟网络与数字网络的区别 数字通信与模拟通信相比具有明显的优点: 第二代数字手机(2G) 什么是“GSM” 什么是 “CDMA”? GSM 数字机和模拟手机话音相比 什么是“GSM/CDMA 双模机”? 什么是“TDMA”…

FinChat.io,金融领域的chatgpt

投资股票是一个充满挑战的过程,随着市场的起起伏伏,要抓住每一个机会,同时规避各种风险,这需要投资者具有敏锐的洞察力和快速的决策能力。不过现在有好消息,一款人工智能聊天机器人 FinChat.io 诞生了!它能帮助投资者分析市场,挖掘有潜力的股票,并提供买卖的实时建议 --------…

Java与数据库:JDBC和ORM框架的使用和效率优化

第一章&#xff1a;引言 随着互联网的快速发展和大数据时代的到来&#xff0c;数据库在软件开发中起到了至关重要的作用。Java作为一门强大而广泛应用的编程语言&#xff0c;提供了多种与数据库交互的方式。其中&#xff0c;JDBC和ORM框架是最常用的两种方式。本文将深入探讨J…

OpenWRT 实现Exsi8单个公网ip管理与访问

一台Dell R720机器 内存256G(64G*4)硬盘SSD 8T(1T*8)搭建了一个裸金属k8s集群(对比阿里云单台4核8G的费用不相上下) 机房上架提供了一个公网ip 需要一个公网ip能实现exsi虚拟机管理 又可以让虚拟机实现web访问 是终通过OpenWRT实现 OpenWRT实现步骤 1、官网访问并下载img镜…

Kotlin笔记(零)简介

百度百科简介 2017年&#xff0c;google公司在官网上宣布Kotlin成为Android的开发语言&#xff0c;使编码效率大增。Kotlin 语言由 JetBrains 公司推出&#xff0c;这是一个面向JVM的新语言 参考资料 官网&#xff1a;https://kotlinlang.org/中文官网&#xff1a;https://w…

C++ 遍历算法

&#x1f914;遍历算法&#xff1a; &#x1f642;1.for_each 遍历容器 &#x1f50d;介绍&#xff1a; 在C中&#xff0c;for_each是一个用于遍历容器元素并对它们进行操作的算法。它通常有三个参数&#xff1a; &#x1f4d6;1. 容器的起始位置&#xff08;iterator&am…

chatgpt赋能python:Python中调换数据位置的方法

Python中调换数据位置的方法 在Python编程中&#xff0c;我们经常需要操作数据的位置&#xff0c;例如调换数组中的元素顺序、交换多个变量的值等。在本篇文章中&#xff0c;我们将介绍Python中调换数据位置的常用方法&#xff0c;并给出相应的代码示例。 1.使用临时变量交换…

ShardingSphere笔记(三):自定义分片算法 — 按月分表·真·自动建表

ShardingSphere笔记&#xff08;二&#xff09;&#xff1a;自定义分片算法 — 按月分表真自动建表 文章目录 ShardingSphere笔记&#xff08;二&#xff09;&#xff1a;自定义分片算法 — 按月分表真自动建表一、 前言二、 Springboot 的动态数据库三、 实现我们自己的动态数…

chatgpt赋能python:Python中最大公约数计算

Python中最大公约数计算 在Python编程中&#xff0c;求最大公约数是一个非常常见的需求。最大公约数一般简称为gcd&#xff0c;其定义为两个或多个整数的最大公因数。 在本篇文章中&#xff0c;我们将介绍Python中最常用的两种计算gcd的方法&#xff0c;并深入讲解它们的实现…

使用Intel ARC 750 GPU或Intel CPU硬件在GIMP上运行stable diffussion插件进行AI绘图

安装步骤&#xff1a; 1. clone代码&#xff1a; git clone https://gitee.com/cslola/openvino-ai-plugins-gimp.git 或者直接到github上下载最新 git clone https://github.com/intel/openvino-ai-plugins-gimp.git2. 安装python以来库文件 :: run install script open…

LeetCode - 10 正则表达式匹配

目录 题目来源 题目描述 示例 提示 题目解析 算法源码 题目来源 10. 正则表达式匹配 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给你一个字符串 s 和一个字符规律 p&#xff0c;请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符 * 匹配零个或…

SpringBoot框架理解

1 SpringBoot入门 1.2 什么是SpringBoot 1 官网的解释 ​ Spring在官方首页是这么说的&#xff1a;说使用SpringBoot可以构造任何东西&#xff0c;SpringBoot是构造所有基于Spring的应用程序的起点,SpringBoot在于通过最少的配置为你启动程序。 2 我的理解 SpringBoot是Sp…

损失函数——交叉熵损失(Cross-entropy loss)

交叉熵损失&#xff08;Cross-entropy loss&#xff09;是深度学习中常用的一种损失函数&#xff0c;通常用于分类问题。它衡量了模型预测结果与实际结果之间的差距&#xff0c;是优化模型参数的关键指标之一。以下是交叉熵损失的详细介绍。 假设我们有一个分类问题&#xff0…

基于深度学习的高精度山羊检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度山羊检测识别系统可用于日常生活中或野外来检测与定位山羊目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的山羊目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型…

elementUI中<el-select>下拉框选项过多的页面优化方案——多列选择

效果展示(多列可以配置) 一、icon下拉框的多列选择&#xff1a; 二、常规、通用下拉框的多列选择&#xff1a; 【注】第二种常规、通用下拉框的多列选择&#xff0c;是在第一种的前端代码上删除几行代码就行&#xff08;把icon显示标签删去&#xff09;&#xff0c;所以下面着重…

陕西省养老服务人才培训基地申报条件范围、认定材料流程

今天为大家整理了陕西省养老服务人才培训基地申报条件范围、奖励措施等内容&#xff0c;感兴趣的朋友们可以了解一下&#xff01; 如果想要申报西安市、宝鸡市、铜川市、咸阳市、渭南市、延安市、汉中市、榆林市、安康市、商洛市的项目政策&#xff0c;详情见下图 目标任务 陕…

Games104现代游戏引擎学习笔记11

胶囊&#xff1a;两层。 内层&#xff1a;真正碰撞的层级 外层&#xff1a;类似保护膜&#xff0c;防止离别的东西太近&#xff0c;高速移动时卡进物体。另一个作用是防止过于贴近摄像机的进平面&#xff0c;看到墙背后的物体 朝墙移动时&#xff0c;实际往往并不是撞击&#…

Java程序设计入门教程-- switch选择语句

switch选择语句 情形 虽然if…else语句通过嵌套可以处理多分支的情况&#xff0c;但分支不宜太多&#xff0c;在Java语言中&#xff0c;提供了switch语句可以直接、高效地处理多分支选择的情况。 格式 switch &#xff08;表达式&#xff09; { case 常量表达式1&#x…