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

笔者有幸接触了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://xiahunao.cn/news/254492.html

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

相关文章

Mac电脑怎么同时登录两个微信账号

终端执行 nohup /Applications/WeChat.app/Contents/MacOS/WeChat > /dev/null 2>&1 & 加了&会显示进程号

怎么在mac上登录两个微信

在已经登录了一个微信的情况下,打开终端输入 nohup /Applications/WeChat.app/Contents/MacOS/WeChat > /dev/null 2>&1然后就可以打开另一个微信的登录界面了,直接扫码登录即可

两部手机还能同时登录1个微信号!这个操作你知道吗?

在上班的时候我们可以看到有不少朋友都会自带两部手机,主要是为了区分工作与生活,但是在登录微信的时候有不少朋友都会遇到这样的问题,一个微信账号可以在两个手机上登录吗?今天就来教怎样同时登录两个微信账号。 一、使用手机号登…

如何实现微信多开,苹果手机无需越狱

I. 前言 本文的前言部分主要介绍了研究背景、研究目的、研究内容和研究方法。其中研究背景介绍了微信双开的概念和应用,并指出苹果手机的微信双开是一个热门话题。研究目的是为了探究苹果手机上微信双开的可行性和实现方法。研究内容包括系统架构设计、模块功能设计…

如何在一个电脑上同时登录两个微信?

今天给大家分享一个使用小技巧,众所周知微信电脑端只可以登录一个,如果我们有好几个微信怎么同时登录电脑端呢? windows平台为例,在一个自己找得到的位置,新建.bat结尾的文件,文件内容如下: s…

一个手机里登录2个微信号(微信双开)

正常来说,使用微信的客户端,一个手机只能登录一个微信号。 所以,另一个微信号就需要第三方的工具来实现。 我的环境:android (苹果的APPStore 好像没有我使用的这款软件) 重点来了,这是款免费的…

一个手机同时登录多个微信。

请登录google play搜索 fanxp.multiapp 下载。 没有安装google play的朋友可通过关注腾讯或者新浪微博MultiApp上公布的下载链接下载app。 最新消息请关注微博更新。 最新微信多帐号下载地址:http://m1.multiapp.cn 也可以通过扫描二维码下载:

如何使用一个手机号注册两个微信号!

大家都知道,现在的微信更新以后手机就不能解绑了,只能换绑,有很多时候我们需要两个微信号,特别是做销售和做微商的朋友,难道我们必须再专门买一个手机卡养着吗,尤其对于苹果用户来说,两个卡就意…

手机第二个微信怎么弄 手机如何弄两个微信 手机弄两个微信方法

手机如何弄两个微信很多朋友在使用中都存在这个疑惑, 那就来看看小编为大家分享的手机弄两个微信方法说明,感兴趣的朋友可以了解一下哦~ 1、在手机桌面找到设置 点击打开 2、在设置里面找到应用与权限(不同安卓手机不同选项,大…

Jmeter参数化的四种方式

JMeter的四种参数化方式包括: 1.用户参数 2.用户自定义变量 3.CSV Data Set Config 4.函数助手 一、用户参数 位置:线程组右键-添加-前置处理器-用户参数 操作:用户参数可添加多个用户或变量,Up和Down可以上下移动变量位置&…

Jmeter参数化的几种方式

1、用户定义的变量(User Defined Variables) 用于存放不需要随迭代发生改变的参数(只取一次值的参数),比如host、端口号、url 添加>配置元件>用户定义的变量,设置host和url 在请求中引用&#xff1…

Jmeter之参数化

参数化是为了解决什么问题: 当提交的数据量较大时,怎么提交?每测试一次就修改一次吗? 定义: 动态的获取、设置或生成数据,是一种由程序驱动,代替人工驱动的数据设计方案,提高脚本的编写效率…

jmeter参数化设置

日常进行请求中涉及到参数传递的存在两种情况,一种是参数存在于url中,另一种是通过请求;通常在url中的参数可以直接写在请求路径中,http请求常用又分为get和post请求;url的请求可以直接写在请求路径中,http…

jenkins+jmeter参数化构建

jenkins支持参数化,通过参数化可以将jenkins上定义的参数动态传给待执行脚本,从而实现脚本动态运行的目的,实际测试过程中,也经常会碰到一个脚本需要在不同的环境中运行的情况,结合参数化可以方便的切换环境去执行脚本…

Jmeter中参数化的使用

在使用Jmeter进行接口测试时,如果提交的参数不变,那么就会读取缓存数据,无法测试出服务器真正的负载能力,所以要对提交的参数进行参数化来解决这一问题。 在Jmeter中经常使用CSV Data Set Config读取外部数据源完成参数化。 Ste…

jmeter参数化之函数助手

jmeter-参数化: 参数化的作用:调用接口入参时。有时要求参数经常变化,如果每次去修改就会变得很繁琐,这时候就需要把经常变化的值改变为提前编辑好的文档或函数中,便于调用时使用不同的值。 Jmeter参数化的方式有三种…

JMeter参数化post请求

这篇博客主要讲解JMeter的参数化post请求 没有安装JMeter的可以找我的上一篇博客进行下载安装 下面开始测试的步骤 一、创建线程组 这没有什么好说的,这里创建3个线程是因为我只测三组数据 二、创建HTTP请求 注意到,着里id和name,我空着没…

JMeter笔记9 | JMeter参数化

9 | JMeter参数化 1 测试对象2 分析3 JMeter参数化3.1 配置元件3.2 CSV Data Set Config3.2.1 元件介绍3.2.2 界面参数 3.3 函数助手3.4 请求地址参数化3.5 HTTP请求默认值 4 实例说明4.1 实现步骤4.2 【HTTP信息头管理器】4.3 【HTTP请求默认值】4.4 创建线程组4.5 获取token&…

JMeter参数化4种实现方式

前言 下面是目前JMeter系列已有博文列表,持续更新中: JMeter安装与接口测试入门JMeter接口测试之断言实现JMeter参数化实现方式JMeter配置元件JMeter操作Mysql数据库BeanShell Sampler与BeanShell断言JMeter Linux下执行测试JMeter自定义日志与日志分析…

性能测试之Jmeter参数化

01.Jmeter参数化作用 参数化就是将某一些请求中的一些参数值替换为动态的请求,比如第一次请求的值是a,下一次迭代请求想变成b,这就是典型的参数化场景。 其目的在于模块真实的用户请求。 02.Jmeter文件参数化 03.Jmeter数值函数参数化 …