- 博客(213)
- 收藏
- 关注
原创 HSM使用独立的cpu优点
摘要: HSM采用独立CPU设计,显著提升安全性(物理隔离、防篡改、密钥全周期保护)、性能(专用算力加速、并行处理)和可靠性(故障隔离、可信执行环境)。其独立架构简化合规审计,支持多系统适配与灵活升级,广泛应用于金融、物联网及云安全等领域,成为应对高级威胁的核心方案。(149字)
2025-05-25 16:57:56
264
原创 密码学标准(Cryptography Standards)介绍
密码学标准是信息安全的基石,其演进始终围绕 “安全性、效率、适用性” 三大核心。随着量子计算、物联网等技术的发展,标准化工作将更注重。
2025-05-22 10:59:09
795
原创 PCIE RTT 简单介绍
如果 “PCIE RTT” 是在特定的技术文档或者产品手册中出现,它的具体含义可能会因上下文而有所不同,可能是某种 PCIe 设备的性能指标或者是一种测试参数等。“PCIE RTT” 可能是指 PCI - Express(PCIe)的往返时间(Round - Trip Time,RTT)。RTT 如何影响 PCIe 的性能?
2024-11-09 17:39:32
645
1
原创 macvim配置
最终效果如下:系统环境macos10.12.4 homebrew1.2.1 python3.5&python2.7 iTerm2 zsh5.3.1 macvim8.0安装macvimmac预装了vim,但官方的 vim 在 Mac 上只有一个很不完善的,长期没人维护的 Carbon 图形用户界面。macvim主要是在此基础上添加了一个完整的 Cocoa 用户界面,其核心部分和 vim 同步。MacVim 采用了分离进程的方式,一个 MacVim 程序可以启动多个 vim 进程
2024-10-22 20:25:46
1493
原创 verilog实现一个5bit序列检测器
这个序列检测器检测特定的 5bit 序列 “00001”、“00010”、“00100”、“01000”、“10000”。当输入序列与这个特定序列匹配时,输出。开始,根据输入逐步进入不同的状态,直到检测到完整序列进入。如果在任何状态下输入不匹配预期序列,状态机将回到。
2024-10-22 20:25:20
890
原创 用verilog实现AXI MASTER
在这个实现中,状态机分为三段。第一段负责状态的转移,在时钟上升沿或复位信号下降沿时更新当前状态。第二段根据当前状态确定下一个状态,考虑了各种 AXI 信号的就绪情况。第三段根据当前状态对 AXI Master 的输出信号进行赋值,控制写地址、写数据、等待写响应、读地址和读数据的过程。每次传输的数据大小为 32 字节,数据位宽为 64 位。以下是用 Verilog 实现 AXI MASTER 的代码示例,每次传输大小为 32 字节,数据位宽为 64 位。
2024-10-15 14:58:21
867
原创 AXI4协议数据带宽计算
这表示该 AXI 总线的最大传输带宽为 1.6Gbps(比特每秒)。在实际应用中,AXI 总线的实际带宽可能会受到各种因素的影响,如从设备的响应速度、数据传输的延迟、总线的拥塞情况等,因此实际带宽可能会低于理论上的最大带宽。AXI4 协议数据带宽的计算需要考虑总线频率、数据宽度以及传输特性等因素。其计算公式为:最大传输带宽 = 总线频率 × 数据宽度 × 2(单位为 bps)1。
2024-10-15 14:56:06
1500
1
原创 PCIE outbound概念介绍
总之,PCIE outbound 是 PCIe 通信中的一个重要概念,它对于实现 CPU 与 PCIe 设备之间的数据交互起着关键作用。理解 PCIE outbound 有助于更好地理解 PCIe 总线的工作原理以及系统中各设备之间的数据传输机制。“PCIE outbound” 指的是从存储器域到 PCIe 总线域的数据传输方向25。即从中央处理器(CPU)或主机系统(可看作本地设备)到 PCIe 设备(可看作外部设备)的方向。
2024-09-22 14:28:22
512
原创 Cache替换策略
随机选择一个缓存行进行替换。这种策略实现简单,不需要对访问历史进行复杂的记录和分析。但是其替换的随机性可能导致一些刚被调入不久的有用数据被意外替换出去,命中率相对较低。记录每个缓存行的使用情况,当需要替换时,选择最近最少使用的缓存行进行替换。这种策略能够较好地利用数据的局部性特点,因为最近频繁使用的缓存行被保留下来的概率较高。按照缓存行进入缓存的顺序进行替换,最先进入的缓存行在需要替换时最先被替换出去。
2024-09-06 14:48:05
384
原创 cache flush和cache invalid区别
**定义**: Cache invalidation 是指使特定缓存条目失效,而不是清空整个缓存。- **定义**: Cache flush 是指将整个缓存清空,也就是移除缓存中的所有数据。所有缓存的内容都会被删除,缓存回到一个空的状态。- 在系统或应用程序更新之后,缓存中的旧数据可能与新的系统不兼容,这时可以进行 flush 操作。- **Cache invalidation** 是对特定缓存条目的操作,只让某些条目失效。- **Cache flush** 是对整个缓存的操作,将所有缓存数据删除。
2024-09-02 12:20:24
1432
原创 静态时许WNS
具体来说,WNS 是指在设计中,某个路径的实际到达时间与要求的到达时间之间的差值,如果这个差值为负数,那么这个路径就存在时序违规的风险。总之,时钟约束的 WNS 是数字电路设计中一个重要的指标,用于衡量设计的时序性能。通过合理设置时钟约束、优化设计结构和布局、使用时序优化工具等方法,可以减小 WNS 的值,提高设计的正确性和可靠性,同时也可以提高设计的性能。在数字电路设计中,时钟约束的 WNS(Worst Negative Slack,最差负时序裕量)是一个重要的指标,用于衡量设计的时序性能。
2024-08-30 15:56:28
916
原创 时钟的CTS
通过合理的时钟树综合,可以提高 SOC 的性能和可靠性。例如,减小时钟偏斜可以确保各个逻辑单元在正确的时间点进行操作,避免数据传输错误。同时,降低时钟抖动可以提高电路的稳定性,减少噪声对信号的影响。在集成电路设计中,SOC(System on Chip,片上系统)时钟CTS(Clock Tree Synthesis,时钟树综合)具有重要作用。时钟树综合是将时钟信号从时钟源分布到芯片各个逻辑单元的过程。总之,SOC 时钟 CTS 是集成电路设计中一个关键的环节,它直接影响着芯片的性能、功耗和可靠性。
2024-08-28 17:51:44
470
原创 OCCBUF、SDCBUF、CKBUF区别
综上所述,OCCBUF 主要用于时钟观测补偿,适应不同工作条件下的时钟信号调整;SDCbuf 是为满足特定设计约束而设计,对时钟信号进行特定优化;ckbuf 则侧重于增强时钟信号驱动能力和减少传输延迟与失真。在时钟路径中,OCCBUF(时钟观测补偿缓冲器)、SDCbuf(特定设计约束缓冲器)和 ckbuf(时钟缓冲器)有着不同的功能和特点。
2024-08-28 11:32:06
749
转载 PCIE】Precision Time Measurement (PTM)
如果与上行端口相关联的功能的PTM控制寄存器中未设置PTM使能位,则软件不能在其中设置PTM控制寄存器中的PTM使能位,除非链接上的关联下行端口已经在其关联的PTM控制寄存器中设置了PTM使能位。因为上游端口被允许根据特定的实现标准来使其内部的 PTM 上下文失效,所以一个 PTM 请求者可以在接收到任何重复的 TLP 以及重复的 PTM TLP 时使其内部的 PTM 上下文失效。在这个例子中,交换机在其上行端口启动PTM对话,以获取PTM主时间,用于满足其下行端口接收到的PTM请求消息。
2024-05-29 15:23:10
785
2
原创 Cache Stashing
Cache stashing is theability of an external agent to request that a line is brought in (or stashed) to a cache in the cluster. Cache stashing can be performed over the ACP interface, or the CHI master interface. Stash requests can target the L3 cache, or
2022-08-21 09:45:03
1634
原创 Mac 无法访问github
第一步:打开 访达文件夹第二步: command + shift + g 搜索,输入 /private/etc/hosts 找到 hosts 文件第三步:编辑修改(修改之前需要备份),输入http://github.com 204.232.175.94 http://gist.github.com 107.21.116.220 http://help.github.com 207.97.227.252 http://nodeload.github.com 199.27.76.130
2022-05-22 21:49:40
2274
2
原创 MAC配置 chisel3环境运行FIRRTL
1. Mac 安装 homebrew参考:Mac os 解决brew找不到问题_简单同学的博客-优快云博客2. 安装 Scala可以从 Scala 官网地址 Install | The Scala Programming Language 下载 Scala 二进制包,本教程我们将下载 2.13.0版本,如下图所示: 然后将下载的安装包解压,放到/usr/local目录下,打开.bash_profile,添加如下变量:source .bash_profile 后输入scala - version打印出如
2022-05-22 20:26:52
1166
原创 Mac系统安装JDK1.8适配chisel3
概述这篇文章主要为在MAC苹果系统下安装JDK1.8并配置系统环境变量。用来适配chisel3的使用。主要分为以下步骤:到Oracle官网下载JDK1.8安装包。 打开获取到的安装包按步骤安装到系统上。 配置系统的环境变量。 验证JDK1.8是否安装成功。到Oracle官网下载JDK1.8安装包官网下载链接,找到以下图:选择接受证书协议,然后选择对应的Mac OS X一栏下载SDK,这里我说下,下载sdk必须要登录才可以下载,我这里点击接受协议,并注册了账号:...
2022-05-22 19:31:18
1045
原创 Linux查看文件和文件夹大小
1. 查看目前所有文件系统的可用空间及使用情形df -h2. 查看文件或文件夹的磁盘使用空间du -h --max-depth=1 your_dest_dir注意,du -h --max-depth=1 your_dest_dir只会返回目标文件夹和目标文件夹下首层文件夹的大小,不会返回更深层的文件夹的大小,也不会返回文件的大小。要想返回更深层的文件夹的大小,可以设置--max-depth为更高的数值,或者干脆取消--max-depth参数,这样它就会返回目标文件夹下所有子文件夹的.
2021-08-09 15:28:20
1153
原创 Low Power设计中的Retention技术
常规的Low Power设计,都会用到CLK Gating,在模块不工作的时候,关掉CLK。如果对功耗要求更高,则可以使用Power Gating,在模块不工作的时候,直接断掉模块供电。但是有一个问题:Power Gating确实更省电,但是关掉供电之后,模块想重新工作,就得重新上电。从重新上电到电源稳定,然后再恢复CLK(有的要重新起振PLL),会有很大的delay。而且,采用Power Gating断电之后,模块的信息和数据都会丢失。重新运行必须重新配置。有没有办法既能省很多电,又能够快
2021-08-06 11:43:25
1869
原创 ARMV8体系结构简介:exclusive操作例子
之前,提到了为什么要引入exclusive操作。ARM对于exclusive操作,新增了exclusive指令。下面以一个例子,来说明下,这个是如何工作的。以以下代码进行说明,标准的抢锁代码:线程0执行LDXR指令,exclusive的load操作,读取锁状态。此时线程0的monitor状态变为exclusive状态。当线程0执行STXR指令,exclusive的store操作,此时monitor状态是exclusive状态,因此store可以成功,W2的值被更新为0。当线程0的monito
2021-06-03 10:10:20
1669
1
原创 ARMV8体系结构简介:exclusive monitor
为了支持exclusive操作,硬件会增加exclusive monitor来支持。一、exclusive monitorexclusive monitor分为2类:local monitor: 实现在cpu内部,针对cacheable属性地址进行监测global monitor:实现在cpu外部,针对non-cacheabal属性和device属性地址进行监测从上图,能够看出local monitor和global monitor所处的位置。每个cpu,均有一个local monito
2021-06-03 10:09:43
1817
原创 ARMV8体系结构简介:exclusive操作的引入
AMRv8架构中对于A64,提供了如下的一些exclusive指令,用来支持exclusive操作。那为什么,arm在加入exclusive指令呢?加入这个,主要是为了解决多核情况下,锁的竞争问题。在软件层面,对于共享资源的访问,会设定一个锁,只有能拿到这个锁的程序,才能够访问共享资源,而没有拿到锁的程序,就不能访问该共享资源。拿到锁的程序,在访问完毕后,要释放锁,这样,其他的程序,才可以竞争该锁,从而访问共享资源。其伪代码如下://获取锁get_lock: ldr w1.
2021-06-03 10:06:23
736
原创 从Cortex-M33内核认识TrustZone
欢迎大家关注STM32L5课程。本期我们会介绍STM32L5的内核,Cortex-M33。它是ARM在MCU架构上增加了TrustZone这个安全扩展的一种内核实现。从这一期开始,我们进入技术部分的学习。L5快速入门,会由5期的介绍组成,会着重讲解L5的TrustZone安全扩展。除此之外,L5新增了内置SMPS,进一步提高平台的低功耗特性。Cortex-M33内核Cortex-M33,在以往传统的Cortex-M系列内核基础上最大的扩展是新增对TrustZone的...
2021-05-28 11:50:54
3565
1
原创 Breakpoint和Watchpoint的区别
Breakpoint: 设置断点比较直接,在某处停止Watchpoint: 观察点,即某个变量/表达式发生变化时,停止. 可扩展为变量被读/被写/被读or写时都停止
2021-05-25 14:55:07
4507
原创 A Beginner’s Guide on Interrupt Latency - and Interrupt Latency of the Arm Cortex-M processors
IntroductionAll experienced embedded system designers know that interrupt latency is one of the key characteristics of a microcontrolller, and are aware that this is crucial for many applications with real time requirements. However, the descriptions of
2021-05-17 16:27:19
348
原创 AMBA低功耗接口(二)P_Channel
为了满足复杂的power管理的需求,arm提供了P_Channel的低功耗接口,来满足这样的应用场景。一、P_ChannelP_Channel,提出了一个概念,叫power state transition,power状态的切换。在P_Channel的应用场景中,power的状态有很多,这个是实现自己定义的。power的各个状态之间,是可以切换的。2个最基本的状态: lower-power状态:在这个状态下,power消耗比较少,device处于低功耗状态(具有部分功能) ..
2021-05-08 15:14:36
1661
原创 AMBA低功耗接口(一)Q_Channel
AMBA提供了,低功耗的接口。用于实现power控制功能。目前,AMBA里面,包含2种低功耗接口。 Q-Channel:实现简单的power控制,如上电,下电。 P-Channel:实现复杂的power控制,如全上电,半上电,1/4上电等。 ARM引入这2种低功耗接口,是为了满足不同的应用场景下,对power的控制。在一些场景下,组件只有两种power状态,分别为power-up,power-down。因此对这种组件的power控制,只需要对其上电,断电即可。用Q-Channel,即
2021-05-08 15:12:11
1011
原创 8.CPU体系架构-DMA
DMA本来不属于CPU体系架构部分的内容,只因为在开发中经常要用到其相关的知识,所以这里就其基本概念、工作原理、常见问题做一个总结。DMA概述DMA的英文拼写是“Direct Memory Access”,汉语的意思就是直接内存访问。DMA既可以指内存和外设直接存取数据这种内存访问的计算机技术,又可以指实现该技术的硬件模块(对于通用计算机PC而言,DMA控制逻辑由CPU和DMA控制接口逻辑芯片共同组成,嵌入式系统的DMA控制器内建在处理器芯片内部,一般称为DMA控制器,DMAC)。DMA内存访问
2021-04-30 15:53:16
1541
原创 8.CPU体系架构-MMU
在现在的工作项目中虽然没有使用到MMU功能,但MMU是较复杂的嵌入式操作系统运行的基础。例如Linux就不能够运行在没有MMU的ARM7处理器上,ucLinux就是为了适应没有MMU的处理器而对Linux进行的裁剪和修改。了解MMU基础知识,对理解编译链接,OS多进程,嵌入式系统架构等有很好的帮助。由于该部分内容涉及到MMU硬件、CPU架构、编译链接、OS等知识,学习难度较大。关键字MMU、TLB、多任务OS、地址空间、虚拟内存、虚拟地址/物理地址学习顺序问题的引出、虚拟地址和物理地址、虚拟内存..
2021-03-18 15:44:21
674
原创 7.CPU体系架构-Cache
Cache研究是转正答辩“MIPS BSP研究”中重要的一部分。只可惜当时时间紧,没有能够总结成文档。时隔将近一年,这次编写《CPU体系架构系列》,对于这一部分内容既是总结整理,又是温故知新。概述Cache是用来对内存数据的缓存。CPU要访问的数据在Cache中有缓存,称为“命中” (Hit),反之则称为“缺失” (Miss)。CPU访问它的速度介于寄存器与内存之间(数量级的差别)。实现Cache的花费介于寄存器与内存之间。现在 CPU 的 Cache 又被细分了几层,常见的有 L1 Cache
2021-03-18 15:43:12
739
原创 6.CPU体系架构-存储管理模型
MIPS32中的存储器模型被划分为四个大块,如下表所示:虚拟地址范围 命名 描述 0x0000,0000~0x7fff,ffff(0~2G-1) USEG must be mapped (set page table and TLB)and set cache before use 0x8000,0000~0x9fff,ffff(2G~2.5G-1) KSEG0 directly mapped(no need to set page table and TLB
2021-03-18 15:40:43
478
原创 5.CPU系统架构-函数的调用
在看过了上面的几节之后,在潜意识中你想记住的东西肯定很多了。这个时候,你需要静下心来休息一下在沉淀一下。"Now is a good point to take a break to let this information sink in."下面,我们就看看C语言撰写的程序,在不同的CPU架构下,生成的汇编语言是怎么样的,各有什么特点,这和前面介绍的各种CPU架构的知识是如何联系的。如果你觉得还不够,也很高兴一起来探讨一下在不同的CPU架构下,函数的调用时如何实现的,以及各有什么特点。反汇编文
2021-03-18 15:23:12
335
原创 4.CPU体系架构-指令系统
在学习了处理器的寄存器,寻址方式之后,终于到了指令系统。这可谓千呼万唤始出来。为什么让人如此激动呢,因为指令系统,或者叫做汇编语言,终于和程序员有点关系了。如果一个程序员调试BUG的时候,需要反汇编成汇编语言才得以解决,那么这个BUG肯定可属于千年老妖,该程序员也是万年成仙,具有了抓妖降魔的本事。当然了,仙界也分级别,要看本事有多大,就得看修炼有多深。我们这里所说的指令,就是指汇编语言。请注意区分在寻址方式中讲的机器指令。在这里呢,我们也不打算讲解每一种处理器(X86,MIPS,ARM)的指令集系...
2021-03-18 15:16:25
900
原创 3.CPU体系架构-寻址方式
在这里,主要是要说明什么是寻址方式。以及每一种CPU为什么使用这样的寻址方式。在说明什么是寻址方式之前,首先需要了解指令的构成,或者说指令的编码格式。指令编码格式一条指令(指的是机器码)由操作码(opcode)和操作数(operand)构成。操作数可以是1个,也可以是多个,甚至可以没有。操作码则是每一条指令都必须有。操作码表示该指令要做什么动作,例如跳转,加减等等。操作数则表示操作对象,操作数可能还会分为目的操作数和源操作数。操作数当然是一个数字,该操作数可以由多种来源,例如寄存器,存储器或者...
2021-03-18 15:11:56
554
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人