首页
学习
活动
专区
工具
TVP
发布

人人都是极客

专栏作者
495
文章
827766
阅读量
175
订阅数
ARM SoC漫谈
芯片厂商向客户介绍产品,从硬件角度说地最多的就是功能,性能,功耗和价格。功能这个主要就是看芯片提供了什么接口,比如闪存,内存,PCIe,USB,SATA,以太网等,还看内部有什么运算模块,比如浮点器件,解码器,加解密,图形加速器,网络加速器等等。性能,对CPU来说就是测试程序能跑多少分,比如Dhrystone,Coremark,SPEC2000/2006等等。针对不同的应用,比如手机,还会看图形处理器的跑分;又比如网络,还会看包转发率。当然,客户还会跑自己的一些典型应用程序,来得到更准确的性能评估。功耗就是在跑某个程序的时候,整个芯片的功率是多少瓦。通常,这时候处理器会跑在最高频率,但这并不意味着所有的晶体管都在工作,由于powergating和clock gating的存在,那些没有被用到的逻辑和片上内存块并没在完全耗电。我看到的芯片公司给出的处理器最大功耗,通常都是在跑Dhrystone。这个程序有个特点,它只在一级缓存之上运行,不会访问二级缓存,不会访问内存。这样得出的其实并不是真正的最大功耗。但是从实际经验看,没有应用程序能让CPU消耗更高的能量,所以这么测量最大功耗也没什么错。当然,作为整体的芯片功耗,还得包括各种加速器和接口,尤其是会被用到的模块。
刘盼
2024-04-02
1660
CPU缓存一致性:从理论到实战
速度快的存储硬件成本高、容量小,速度慢的成本低、容量大。为了权衡成本和速度,计算机存储分了很多层次,扬长避短,有寄存器、L1 cache、L2 cache、L3 cache、主存(内存)和硬盘等。图1 展示了现代存储体系结构。
刘盼
2023-10-27
6100
ALSA的入门介绍
ALSA由许多声卡的声卡驱动程序组成,同时它也提供一个称为libasound的API库。
刘盼
2023-01-05
1.9K0
ALSA子系统 | XRUN排查
它是缓冲区不足或溢出,X代表不足或溢出。在这两种情况下,都表明系统速度不够快,未能及时处理来自ALSA音频缓冲区的数据,因此丢失了一些数据。当我们以非常小的缓冲区大小运行时,声卡应该非常快地处理传入缓冲区的数据,否则就溢出overrun了。有些芯片无法适应较小的缓冲区大小,因此我们必须增加缓冲区长度以减轻声音芯片的工作量。通常,xruns可以听到爆裂声或爆裂声。
刘盼
2023-01-05
1.2K0
万字整理内存管理之Cache
其实现实中,CPU通用寄存器的速度和主存之间存在着太大的差异。两者之间的速度大致如下关系:
刘盼
2023-01-05
7881
Linux 电源管理子系统
Linux 在消费电子领域的应用已经相当普遍,而对于消费电子产品而言,省电是一个重要的议题。 Linux 电源管理非常复杂,牵扯到系统级的待机、频率电压变换、系统空闲时的处理以及每个设备驱动对系统待机的支持和每个设备的运行时(Runtime)电源管理,可以说它和系统中的每个设备驱动都息息相关。 对于消费电子产品来说,电源管理相当重要。因此,这部分工作往往在开发周期中占据相当大的比重,下图呈现了 Linux 内核电源管理的整体架构。大体可以归纳为如下几类: 1)CPU 在运行时根据系统负载进行动态电压和频率变
刘盼
2022-10-08
2.8K0
CPU体系结构之cache小结
What is cache? CPU缓存(Cache Memory)位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访
刘盼
2022-07-21
6810
全球首款Linux RISC-V 笔记本电脑
RISC-V International 表示在中国,DeepComputing 和 Xcalibyte 组织已宣布预购第一台面向开发人员的 RISC-V 笔记本电脑。“ROMA”开发平台具有四核 RISC-V 处理器、高达 16GB 的 RAM、256GB 的存储空间,并且可以与大多数 RISC-V Linux 发行版一起使用。 ROMA 开发平台听起来很有趣,它配备四核 RISC-V CPU(虽然没有注明时钟频率)、GPU/NPU 加速器、高达 16GB 的 LPDDR4/LPDDR4X RAM、高达
刘盼
2022-07-04
5950
《DRM 专栏》| LCD显示异常分析——花屏和撕裂
花屏 概述 相信很多朋友会遇到LCD开机瞬间会闪现雪花屏的问题,而这类问题都有个共同点,那就是都发生在带GRAM的屏上,同样的问题,在休眠唤醒时也会出现。 让大家能够更容易、更直观的理解这类花屏问题的原因,我特地写了这篇文章。 软件:Android 硬件:带GRAM的LCD(如SPI屏,DSI CMD屏) 现象 分析 从上面的动态图可以看出,出现瞬间花屏的问题,主要有两个原因: 背光开启的时间过早 对GRAM的写速度(W) < 对GRAM的读速度(R) 其实,只要任意解决其中一个问题,都不会出现开机闪现
刘盼
2022-06-20
2.8K0
中科院开源 RISC-V 处理器“香山”流片,已成功运行 Linux
2021年6月22日,香山在RISC-B中国峰会上第一次亮相,这是当时公开的国际上性能最高的开源RISC-V处理器核设计,受到国内外的很多关注,在全球最大的开源项目托管网站GitHub上不到3个月就有近2000个Star。虽然我们的报告是中文的,但却有不少英文报道,甚至还有来自俄罗斯的关注。 2021年7月15日,第一代香山“雁栖湖”流片。但接下来由于受到全球芯片产能影响,我们不得不经历漫长的等待期。因为许久没有回片后的消息,有一些关注香山的朋友发来小心翼翼的询问:“香山是不是流片失败了?”流片失败,就是指
刘盼
2022-03-04
1.5K0
一文搞懂 | Linux 同步管理(下)
上面讲的自旋锁,信号量和互斥锁的实现,都是使用了原子操作指令。由于原子操作会 lock,当线程在多个 CPU 上争抢进入临界区的时候,都会操作那个在多个 CPU 之间共享的数据 lock。CPU 0 操作了 lock,为了数据的一致性,CPU 0 的操作会导致其他 CPU 的 L1 中的 lock 变成 invalid,在随后的来自其他 CPU 对 lock 的访问会导致 L1 cache miss(更准确的说是communication cache miss),必须从下一个 level 的 cache 中获取。
刘盼
2021-10-21
6340
Linux内核Page Cache和Buffer Cache关系及演化历史
在我们进行数据持久化,对文件内容进行落盘处理时,我们时常会使用fsync操作,该操作会将文件关联的脏页(dirty page)数据(实际文件内容及元数据信息)一同写回磁盘。这里提到的脏页(dirty page)即为页缓存(page cache)。
刘盼
2021-10-12
2.1K0
深入理解Linux 的Page Cache
大家好,我是 Peter,昨天群里有小伙伴咨询page cache的问题,看到网上有篇不错的文章,分享给大家。如果大家有想看的内容,欢迎给我留言。
刘盼
2021-08-25
3.2K0
Linux 进程管理之任务绑定
在多核结构中,每个核有各自的L1缓存,相同类型的核被划分在同一个cluster中,而不同cluster之间又有共用的L2缓存。讲负载均衡的时候我们讲过一个进程在核之间来回切换的时候,各个核之间的缓存命中率会降低,所以,将进程与 CPU 进行绑定可以提高 CPU 缓存的命中率,从而提高性能。这种绑定关系就叫做:进程的 CPU 亲和性。
刘盼
2021-07-05
1.4K0
bootloader启动之【 lk -> kernel】分析笔记
接上一篇分析: 《bootloader启动之【 Pre-loader -> Lk】》
刘盼
2021-07-05
2K0
CPU是如何制造出来的(附高清全程图解)
CPU是现代计算机的核心部件,又称为“微处理器”。对于PC而言,CPU的规格与频率常常被用来作为衡量一台电脑性能强弱重要指标。Intelx86架构已经经历了二十多个年头,而x86架构的CPU对我们大多数人的工作、生活影响颇为深远。
刘盼
2021-04-29
1.1K0
Linux slab分配器
在Linux中,伙伴系统是以页为单位分配内存。但是现实中很多时候却以字节为单位,不然申请10Bytes内存还要给1页的话就太浪费了。slab分配器就是为小内存分配而生的。slab分配器分配内存以Byte为单位。但是slab分配器并没有脱离伙伴系统,而是基于伙伴系统分配的大内存进一步细分成小内存分配。
刘盼
2021-04-13
2K0
Linux进程的内存管理之缺页异常
通过《Linux进程的内存管理之malloc和mmap》我们知道,这两个函数只是建立了进程的vma,但还没有建立虚拟地址和物理地址的映射关系。
刘盼
2021-04-13
2.5K1
嵌入式Linux系统移植的四大步骤(详细长文,慎入!)
最近在学习系统移植的相关知识,在学习和调试过程中,发现了很多问题,也解决了很多问题,但总是对于我们的开发结果有一种莫名其妙的感觉,纠其原因,主要对于我们的开发环境没有一个深刻的认识,有时候几个简单的命令就可以完成非常复杂的功能,可是我们有没有想过,为什么会有这样的效果?如果没有去追问,只是机械地完成,并且看到实验效果,这样做其实并没有真正的掌握系统移植的本质。
刘盼
2021-02-12
4.2K0
详解io端口与io内存
1)物理地址:CPU地址总线传来的地址,由硬件电路控制其具体含义。物理地址中很大一部分是留给内存条中的内存的,但也常被映射到其他存储器上(如显存、BIOS等)。在程序指令中的虚拟地址经过段映射和页面映射后,就生成了物理地址,这个物理地址被放到CPU的地址线上。
刘盼
2021-01-11
2.3K0
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档