RK3588主板探秘

RK3588

2023年5月20日20:00,《在调试器下理解计算机系统》的第一讲通过腾讯会议准时开始。尽管是在520这样的特殊的日子里,很多格友还是准时上线了。

第一讲的主题是:板上乾坤,以幽兰为例。从这个标题中也能看出格物的思想,以幽兰代码本上对RK3588的实现作为一个具体的实例来学习。

e8ea616878ac9f445bceb73b026b5b0b.png

a94d4f7f1ded33d9bac451cab5b99134.jpeg

Overview

概览

当我们把幽兰的后盖打开,拆下它的散热片,就能看到幽兰的主板。“板上乾坤”其实就是把板子上的各个部件作为例子来讲一下幽兰这个系统,用这种看得见、摸得着的方式,来阐述如何用典型的ARM SoC实现一台笔记本电脑需要哪些部件。

5d2ce27714677da0609bf7500a6f967a.png

中间这一块就是我们的主角——瑞芯微的3588 SoC,是一款具有8nm制程工艺、高集成度的片上系统。在它的周围,就如同众星捧月一般支撑起了整个系统。首先,我们就从离它最近的个头比较大的这三块芯片开始讲起,芯片的个头大小是很说明问题的。右上角这块黑色的是128GB的eMMC闪存,用于存放Linux内核。

a9d5812198975ce0b0e75696c342c3e7.png

另外,出厂时默认的home目录也在这里面。它承担着外存的角色,可以永久存储数据。左下角的这两块就是幽兰的16G DDR内存,幽兰所配备的内存也是目前RK3588所能实现的最大内存。透过板上的这些关键部件,我们能更深层次地理解寄存器原理。

e4f22fdaf067e8b93876ff0ae7951550.png

28fbd367a8e485c54d1cea985990229b.jpeg

Three Major Components

冯·诺伊曼架构

的三大件

今天主流的桌面级计算机系统用的都是冯·诺伊曼架构。冯·诺伊曼架构就把计算机系统抽象成我们眼前的这幅图,冯·诺伊曼把中间用C来表示,分成CA(中央算术单元)和CC(中央控制单元),今天统称为CPU。在离CPU很近的地方有内存,冯·诺伊曼用M来表达。而后他又画了两个R,就是我们今天所说的外存,外存是通过I/O去访问的。像这样,冯·诺伊曼就把整个计算机系统归纳成三大件。

9dc2cc95d00aa96c0084a469fc3fdd6e.png

虽然我们今天仍遵循着冯·诺伊曼架构,但也有所不同,比如外存,它也离中央处理器越来越近了。如果是传统的PC,硬盘是在很远的地方——主板外面挂着。而今天对于幽兰来说,外存也离CPU很近。由此可以看出,计算机系统在大结构不变的情况下也在做一些演变。

主角RK3588 SoC

接下来,张老师分别对三大件做了细致介绍。

先是从我们的主角SoC说起,RK3588这块不仅在中国很有名,在全世界范围内也是很有名的。能把ARM的SoC做到这样好的性价比也是比较少见的,可以说是凤毛麟角。在没有RK3588之前,要实现ARM的本子,其实性能是不够的。要做一个笔记本形态的计算机系统,最中央的SoC芯片在性能上是要达到一定级别的,此前的(包括3399)都还欠一档,3588真正地达到了这一级别。当然,实现这一级别除了它的8个核之外,也包括它所配备的其他基础部件,如GPU、VPU、HDMI、USB、PCIe。所有的这些条件都达到了,才可能用它来实现一款像幽兰这样性能还可以的计算机系统。

今天做SoC很难的一件事情在于平衡,即:如何选取当下成熟的技术,并集成到一起。这个集成不是简单地堆在一起,它要能相互加分,实现1+1>2。最后还要达到一个良好的性价比,不能太贵,要经得起市场的检验,如果性价比不合适,那它也是不符合市场要求的。

RK3588在这方面做得非常好,精心选择各个部件,把它们组合在一起,又打磨得很好,包括它的调试支持、外围部件所达到的稳定度等,都让人深感佩服。

fbe7210f9cb9d5aef381ae11d463dcbc.png

这幅图是RK3588的逻辑框图,不是实际的晶体管物理布局。

307a3ed571cc60cc755bc57e22c74785.jpeg

Memory

访问内存的速度

就是整个系统的速度

讲完了三大件里中央的部分,下面再讲一下内存。

内存就涉及到DDR,今天达到G级别的大规模内存,其实现通常都是使用了DDR这样的技术。在3588内部就集成了DDR控制器,它是用来和DDR的颗粒进行通信的。访问内存就涉及到最关键的性能问题,因为软件要跑起来,就要和内存打交道,代码、数据都要访问内存,访问内存的速度就是整个系统的速度,成为影响整个系统最关键的制约因素。因此,为了提高性能,DDR控制器就做得越来越复杂。

1b83015f36c2c0e66681fb7786ef103e.png

909c78b1160fcf0adc7c3e0b9d5ccac5.jpeg

Storage

可以永久存储的外存

深挖过内存之后,再转到eMMC的外存。幽兰出厂的时候,我们是把Linux内核放在eMMC这个闪存上。eMMC闪存也有一个MMC控制器,源自美国,瑞芯微在很长一段时间内一直使用这个控制器。该控制器形成了一个MMC协议的总线,可以挂多个设备。幽兰上实际挂了3种设备,一种就是eMMC的闪存,另一种是大家的SD卡,有时插,有时不插,还有一种就是wifi。

267ba2f3b286f1e2c00f84748a2f8ab2.png

在讲解外存的过程中,张老师分享了一种适用于启动阶段的优化手段,提高访问的速度。由于时间关系,第一讲不能过于深入地探讨到每一方面,但却可以为我们打开思路,这些东西都是值得我们去研究的。

c41b380574c3690788698a34644ee4ac.jpeg

Power Supply

占用近一半信号的

电源

介绍完RK3588的三大件——SoC、内存、外存后,张老师带着我们从电源的角度进行了深耕。

d11a28134c40ee0ce8ad4265b5cd6017.png

再回到SoC这位主角身上,在它的数据手册里也给出了外部封装的信号,仍然使用的是BGA模式。它封装后的尺寸是21.45mm * 21.45mm,是一个正方形。封装好的芯片未必是正方形,比如今天英特尔的很多SoC就不是正方形,都是长方形。RK3588还是封装成方方正正的,这样的大小差不多就是2cm * 2cm,它也成为幽兰主板上最大的一块芯片。封装好的格式就叫BGA1088,从命名可以看出,它一共有1088个信号。对比而言,GDK3只有48个信号,幽兰却有一千多个信号,足以看出它的复杂度。当然,在X86上目前是有两千多个信号。我们可以想象,把这样的芯片和主板结合在一起需要很精细的工艺。

这一千多个信号是做什么的呢?首先,前文提到的DDR控制器是需要占一些信号的;然后PCIe也需要占一些信号;还有USB,包括GPU的显示信号,也要占用一些信号;除此之外,大约有四五百个信号都是和电源或者接地有关的。也就是说,这一千多个信号大约有一半是和电源相关的。由此展开了对供电问题的探索,张老师以幽兰使用的双806电源控制方案作为具体的实例来讲解。

493ef6435c8c5df9d4cb4101ed8c07bf.jpeg

Conclude

归纳

RK3588是一款非常牛的SoC,不仅是我们觉得很好,国外的很多同行也觉得它很好。

a7400f43e46b29d3ddb8821e1c8b6799.png

例如:在著名的tomshardware上面最近有一篇介绍RK3588的文章,这也许是Orange Pi做的宣传,但不管怎么样,RK3588正在全世界流行。因此,大家选择幽兰也是和全世界的同行一起学习,它是当代ARM生态里面性价比很高的一款SoC。

a8d121856e57c826c98de5826285b69f.png

358be0edfd3de1c296b52a5cc5faa20b.png

上面两幅图分别为第一讲课程的讲义以及演示的截图。

最后,再引用朱夫子的一段话:“万理虽只是一理,学者且要去那万理中千头万绪都理会,四面凑合来,自见得是一理。不去理会那万理,只管去理会那一理,只是空想像。”

很多人感到迷茫:“张老师,给我出个主意吧,我到底怎样才能提高呢?”就如同朱夫子所说,这只是“空想象”。要确定一个方向,深入下去。如果你要用X86,就选一款X86去学;如果你要用ARM,就选一款ARM。往下深挖,今天弄懂了闪存,明天理解了硬盘,后天学会了printk,这样日积月累,就可融会贯通了。

最后给大家推荐一下幽兰的学习资源,这些文章我们会坚持写下去。

24b57c314af9e7b26747e9a743f9326e.png

幽兰使用教程:

https://www.nanocode.cn/wiki/docs/youlan

以上是关于RK3588课程第一讲的概述内容,如果大家对后续内容感兴趣,也可以报名参加我们的《在调试器下理解RK3588和LINUX5.10》课程。

17c08331b7f9545097ed70b85bffcb48.jpeg

6c5afbb5342d465fa7331a92f8b1f946.jpeg

796711c134c359462c4c9d094271f709.jpeg

702cca2022dbb6d705255a70fdbf583b.png

购买幽兰代码本即可成为兰舍会员,与众多技术高手一起成长。

购买可前往淘宝格友小店:

https://m.tb.cn/h.Uuv7fit?tk=N1iIdn8t4CI

52f324e18162ca35f6987155ec108ac9.png

5b1d6a77ac2a76de12a4d1a14b30cf62.png

盛格塾是格蠹科技旗下的知识分享平台,是以“格物致知”为教育理念的现代私塾。

本着为先圣继绝学的思想,盛格塾努力将传统文化中的精华与现代科技密切结合,以传统文化和人文情怀阐释现代科技,用现代科技传播传统文化。

访问方式

手机端:微信小程序搜索“盛格塾”

电脑端:下载Nano Code社区版客户端

https://nanocode.cn/#/download

db40d5729c736f94f27522cbe5740a37.png

格友公众号

f502ddde652cddb1edc5b49fc3e2759c.png

盛格塾小程序

往期 · 精彩推荐

在RK3588上体验UEFI

比内存被踩还难调试的问题

编译器,你在说啥?

2023杭州研习班回顾

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值