树莓派创始人介绍树莓派5 驱动芯片 RP1 的来头

Eben 0:00:所以我们已经说过,树莓派5(Raspberry Pi 5) 是我们在 Raspberry Pi 上运行过的持续时间最长的程序,它可以一直追溯到 2015 年,对吧 — 它可以一直追溯到,就在我们推出 Raspberry Pi 2 之后,就进入了 Raspberry Pi 2 时代。在这个平台上,我们开始研究的第一件事可能是 RP1,即 I/O 控制器。

那么,RP1 是什么?它有什么作用?

Liam 0:30:所以 RP1 继承了所有传统的 Raspberry Pi 外设、GPIO、MIPI 接口、USB 以太网。还有什么…
Eben 0:40:模拟电视。
Liam 0:41:是的,模拟电视。
Eben 0:43:模拟音频,不知何故。
Liam 0:44:是的,还有模拟音频。是的。SDIO。
Eben 0:49:还有所有的低速——所以你已经有了 GPIO。所有的低速周边都是——位于其后面的 MUX 选项、UART 和 SPI 等等。
James 0:57:我想我们没有模拟音频;如果您添加 gubbins,我们有 PWM 输出,可以输出模拟音频。但。
Liam 1:05:所以我们采用了所有这些外围设备,并将它们放入我们自己的芯片中。这使我们能够将其保留为单独的南桥,然后我们可以将我们的主片上系统迁移到更小的几何工艺。
Eben 1:19:从 16 开始。所以 16 纳米是它的第一个实例。但原则上,您可以采用相同的数字设计,即 2712 数字设计,并且可以将其向下移动到逐渐更小的节点,而无需重新采购系统中的所有模拟,对吧。这就是所有的 I/O:我猜这就是 Raspberry Pi 的 Raspberry Pi,封装在单块芯片中,现在是远程的。那么它如何与主 SoC 通信,又如何与 2712 通信呢?

RP1 和 2712 之间的 PCIe

Liam 1:49:这是通过 PCI Express 链路实现的。因此,RP1 上的所有主设备都可以直接与主 SoC 上的系统内存进行通信。同样,RP1 地址空间中的外设也映射到主 SoC 中。
Eben 2:06:所以从软件的角度来看,这些东西不妨集成起来;我的意思是,这是 PCI Express 的优点,对吧,从软件的角度来看,这些也可以集成到主芯片上,显然比它们在核心芯片上的延迟更高一些。这是一个四通道 Gen 2 接口,对吧,每个通道有 4 GB 的有效负载?16 GB,每秒 2 GB:因此我们在链路两侧之间拥有每秒 2 GB 的读写带宽。然后当你看电路板时,我的意思是,这是非常明显的,当你在电路板上看它时,你几乎可以从太空看到这一点,有一条巨大的高速公路车道,其中有串联电容器,在核心之间运行SoC 和 RP1 位于电路板的右上角。
James 3:03:如果你看一下电路板,丝网印刷的方向是向上的,很多人倾向于告诉我们,这实际上是错误的方向!
Eben 3:12:人们认为这是错误的方式,因为他们 – 你自然会认为你的 HDMI 连接器从后面出来,这是一个合理的历史文物。
James 3:21:有一天我们甚至可以解决这个问题。
Eben 3:25:只需转动丝网即可修复它!
James 3:28:抱歉,题外话。
Eben 3:32:它提供了所有这些功能;这一切是如何缝合在一起的?那么在 RP1 内部,在我们内部称为 Project Y 的内部,它们是如何整合在一起的呢?各个总线主控器之间通过什么连接?是什么将它们与芯片上的 PCI Express 复合体联系起来?
Liam 3:54:所以我们有一个基于 AXI 的总线结构,我认为它是 128 位数据和超过 32 位地址,可能是 40 位地址,类似的东西。因此,PCI 地址总线作为主设备进入,然后可以与任何从设备通信,然后类似地,RP1 上的所有主设备都可以通过 PCI Express 进行通信,然后让它们访问主 SoC 上的 DRAM。

USB 拓扑可提高带宽

Eben 4:27:你已经有了很多这样的组件。实际上,我们应该谈谈 USB,因为 USB 很有趣。这就是我们在性能上得到了非常有趣的提升的地方 – 它在 Raspberry Pi 4 上的拓扑如何工作,那么在 树莓派5(Raspberry Pi 5) 上有何不同和更好?
James 4:44:所以在 Raspberry Pi 4 上,我们有单线 Gen 2 PCI Express 到此,啊,实际上是一个集线器,所以它是 PCI Express 到 USB 3,然后它被集线到两个 USB 2 端口,二…
Eben 4:59:所以您有 4 GB 的上行带宽。然后你就得到了一对,按照我们使用的方式,你得到了一对三,还有一个——
James 5:06:两个三分球和两个二分球,但他们实际上都落后于——是的。他们都在共享带宽。而在 Y 项目中——
Eben 5:13:那么在 Raspberry Pi 4 上,您甚至无法以峰值速率运行其中一个 USB 3,对吧?你不能——
James 5:22:如果你——好吧——
Eben 5:23:您有 5 GB 标称有效负载,但您只有 4 GB 上游。所以你甚至无法运行——Project Y 和 Pi 5 有什么不同?
Liam 5:34:您有两个 USB 3 控制器,我认为每个控制器都有一个 USB 3 端口和一个 USB 2 端口。但由于 PCIe 链路的带宽,我们应该能够以全带宽运行两个 USB 3 端口。
Eben 5:50:因此,如果我们采用集线器架构,我们可能仍然会被限制为 5 GB,我们会从 4 GB 增加到 5 GB。在实践中,因为我们有两个独立的控制器,并且我们有大量的上行带宽,所以我们现在确实拥有 – 我们可以真正地分别从每个端口中获取五个;当然,如果你想用它来构建 RAID 阵列或其他东西,那是一个更好的解决方案。
James 6:14:还值得一提的是,我们在实验室里使用这个控制器已经很长时间了。我们做了很多工作来确保软件正常运行并且控制器中的任何错误都已得到解决。所以实际上,与我认为我们在任何 Raspberry Pi 上使用过的任何其他芯片相比,该控制器的解决方法都更少,对吧。所以这是最不奇怪的。
Eben 6:38:乔纳森花费了大量的时间来寻找 – 特别是我认为你在 UAS 设备中发现的一些极端情况,你知道,它们速度很快,而且它们的运行方式有点微妙表现得好,你知道,我们真的非常有信心我们已经实现了所有的平衡——
James 6:53:我们花了很长时间来调整它以正确地做事。
Eben 6:59:我们在实验室里进行这个设计大约三年了?B0什么时候回来的?这是又一个大流行时代的事情,不是吗?
James 7:08:是 2020 年吗——?……
Eben 7:11:天哪,2020 年乔纳森还在实验室里!
James 7:16:这一切都有点模糊。我认为新冠疫情就像是把这两年的窗口期从一切中取消了——
Eben 7:20:嗯,Raspberry Pi 4 有一个奇怪的事情,它于 2019 年推出。所以它现在显然是一个四年前的产品,但我以某种方式认为流行病和供应链挑战的结合,不知怎的,我感觉 Raspberry Pi 4 是一款新产品——感觉像是一款刚刚真正步入发展阶段的产品。
James 7:37:我们在 2021 年推出了 RP2040!
Eben 7:39:是的,这太不可思议了!
James 7:40:实际上,我们有了 B 步进硅的时候一定是 2020 年了。
Eben 7:45:因此,从那时起我们就能够了解 USB 3 的行为;显然,我们在 FPGA 中使用它的时间比这要长一些——将所有这些设计都放在 FPGA 中的好处是——实际上,我们应该谈谈原型设计——所以将所有这些东西都放在 FPGA 中意味着当你a——当你将仪器安装到任何网络上时,它会给你一种神圣的视角。好吧,重建 FPGA 镜像可能要花一整夜的时间,但你确实可以进入那里。并仪器一切。
Liam 8:13:您知道,它还使我们能够获得所有内容的概念验证 Linux 驱动程序。您还可以进行所有带宽测试。无论如何,尽你所能。

更好的 MIPI

Eben 8:23:所以我们有了更好的 USB。我认为我们现在有更好的 MIPI,我们的 MIPI 略有不同。但是我们有更好的 MIPI,那么 MIPI 子系统在平台上是什么样子的呢?这是相机和显示器。
Liam 8:39:所以有两个 MIPI PHY,每个 MIPI PHY,因此物理接口可以是相机或显示器。
Eben 8:48:所以这些是收发器 PHY — 它们可以发送或接收帧。
Liam 8:51:是的。然后我们可以通过 PCIe 从系统内存中提供数据。然后我们就有了 ISP 前端……
Eben 9:06:啊——我们应该谈谈 ISP 前端。我想我们会做一个完整的会议,我们会在 ISP 上做一个完整的视频。但有趣的是,ISP——这是树莓派5(Raspberry Pi 5),我们第一次推出新一代ISP;所有以前的 Raspberry Pi 都使用经典的 VideoCore 4 图像传感器管道。但这涉及到组件不是吗?它是一个前端组件,存在于 Project Y 上并处理像素,对来自相机的像素进行一些处理;然后你就有了位于主 SoC 上的更大的 ISP 后端。
Liam 9:36:然后在显示端,有一个 DMA,再次从主内存中获取视频。那么 CSI 和 DSI 上的带宽是否有所不同?
Eben 9:51:我认为我们来自哪里 – 我们来自一个世界,在这个世界中,如果你是 Raspberry Pi,如果你只是 Raspberry Pi 旗舰产品,你有两个双通道接口:你有一个两个- 车道摄像头和两车道显示器。计算模块,即实际的底层硅,或者所有之前的底层硅,都有四个 MIPI 接口。它有一个两车道和一个四车道摄像头,以及一个两车道和四车道显示屏。我们现在拥有的是两个四通道收发器。所以严格来说,你在这个平台上的资源更少。严格来说,您只能将总共两个摄像头和显示器连接到平台,但可以连接两个四通道摄像头或两个四通道显示器。所有这些功能都在旗舰产品上得到了体现;它不仅可以在计算模块世界中使用,还可以在旗舰产品上使用。

通用输入输出接口

那里还有什么?GPIO 世界:它是如何工作的?因此,我们有 GPIO,但也有低速外设和多路复用器。这是如何运作的?这和我们之前遇到的有什么相似之处?有何不同?
Liam 11:02:所以我认为我们至少拥有与之前平台上相同数量的外围设备。
Eben 11:09:特别是在 Pi 4 上,它是增长所有新外围设备的地方。然后它们处于相同的 MUX 位置。因此,如果我已经习惯在特定一对 GPIO 上使用 UART,那么我仍然在该对上使用 UART。但它们是不同的。它们可能是不同的外围设备。是的,它们可能是不同的——
Liam 11:31:不同类型的——
Eben 11:32:不同类型的 – UART 是 – 我认为我们建立的 UART 是相同的,当我们上次谈话时,我们建立了 UART 是相同的。
James 11:38:PL011 Arm UART。其他一切都不同,主要来自 Synopsys — I2C、SPI……I2S 也是 Synopsys,然后我们有一个发射器和一个接收器,而不是 Pi 4 中的收发器。
Eben 11:55:SDIO 也是如此。
James 11:57:SDIO,是的。
Eben 12:01:这就是骨头。但是我们有模拟电视输出,我们实际上有 VGA 输出,不是吗?在芯片级别?
James 12:08:在芯片层面——
Eben 12:09:不在董事会层面?
James 12:10:不是在董事会层面。实际上,PHY,你知道,每个通道 – 所以你在那里有三通道 PHY,主要是因为 IP 大小方面,拥有单个或三重 DAC 几乎没有什么区别,对吧。所以可以做VGA;我们没有 Pi 5 上的电路板区域来将其取出。而且 DAC 非常耗电。所以,你知道,那里有限制,但在芯片级别,是的,你可以用它来做 VGA。
Eben 12:38:你可以做 VGA,你可以做复合 – 你可以做 S-video 吗?
James 12:44:我……呃……这是个好问题!
Eben 12:44:你能用两个通道制作 S 视频吗?
James 12:47:看不到……
Eben 12:47:有趣的问题。
James 12:47:是的,我们测试过吗?
Eben 12:49:我不确定,但如果我们还没有测试过,那么可能没有;艾伦摩尔定律适用。然后我们也可以制作古怪的老式电视,这是我对 树莓派5(Raspberry Pi 5) 期待的关键事情,看到第一个使用 Pi 5 获得 1950 年代电视的人。所以你已经明白了,我猜你有 DPI,所以你可以使用老式的并行视频接口。
Liam 13:13:我提到过以太网吗?
Eben 13:14:我们没有提到以太网。RP1 上集成了哪些内容,RP1 上未集成哪些内容?
Liam 13:21:所以我们有以太网 MAC,但没有 PHY。因此以太网被引入 RGMII 接口,然后连接到板载以太网 PHY。
Eben 13:35:这是一个与 Raspberry Pi 4 非常相似的架构,除了在这种情况下,MAC 位于 Broadcom 设备中,但仍然有一个外部 – 事实上完全相同的外部 – PHY,[BCM] 54213。凉爽的。这就是设计的整体结构。怎么样——实际上我们应该——有一个有趣的方面,不是吗,你谈到了那些进出设计的流量;这不是吗?有两种截然不同的流量,不是吗?

流量优先级

有实时和非实时流量。它们如何相互交互,以及我们必须做什么 – 因此,通过实时流量,我指的是摄像头和显示数据:你知道,如果我没有及时获取用于显示的像素,我的显示器就会已损坏;如果在设计内的 FIFO 填满之前我无法从相机中卸载像素,那么我会得到损坏的图像。所以这些都是实时的,所以这些事情必须完成。然后你还有USB之类的东西;当然,现在有些 USB 流量也可以是实时的,例如来自网络摄像头的流量,但大多数 USB 流量不是实时的。大多数 USB 流量是尽力而为的,对于 UAS 设备的高带宽 USB 流量也是尽力而为。因此,让这些协同工作的挑战之一是,当它们最终通过共享链接一起传输时,我们做了什么?我们必须在芯片级别做什么,然后我们必须在系统级别以及该链接的另一端做什么才能使其发挥作用?
Liam 15:05:是的。是的,所以主总线结构支持优先级。例如,您的相机将具有最高优先级,因为如果您的数据没有到达那里,那么您就会丢失图像。然后,根据流量的不同,USB 等设备的优先级可能会低得多。它可以一直通过结构、一直通过 PCIe 链路、一直到另一个系统,即主片上系统。因此,主片上系统可以获得优先级信息的一个版本,我认为 PCIe 可以对其工作方式进行重新排序,你知道;USB 可以将某些内容排队,但如果收到更高优先级的消息或来自相机的请求,那么将首先处理它们。
Eben 15:54:所以你 – 所以你的 – 然后在主 SoC 上可以查看传入的数据。它可以说:哦,这是 USB – 因为当然,同样的事情也发生在主 SoC 上,是的,那里有 HDMI 数据,而且是实时的。因此,如果这样:哦,好吧,我有 HDMI,我需要一些像素在 HDMI 上输出,它位于主 SoC 上,并且我收到了来自 USB 驱动器的请求,我可以说:好吧,USB,你稍等一下,我去拿我需要扫描的像素,我需要扫描的实时像素;甚至可以想象,可以阻止 Arm 的 USB 连接。因为 Arm 虽然不是实时的,但它并不是极度容忍延迟。您知道,如果您从 Arm 上的内存加载一个值,您可能很快就会需要它,否则您的处理器将停止前进。但这会产生一个问题,正确的?我们必须处理队列头阻塞的概念。那是什么?
James 16:52:谁来回答这个问题?
Liam 16:54:他在看着你!
Eben 16:55:我在看着你!
James 16:56:哦上帝!
Eben 16:58:如果你不小心,如果你不回答,那么我会给出我的管理层的理解,所以你最好回答!

处理队列头阻塞

James 17:03:所以……
Eben 17:05:有什么风险?
James 17:07:基本上,这就是风险,有东西进入,并且有效地,它有能力泵送大量数据,因为它被赋予了优先级,但这些数据有效地阻止了更高优先级的东西进入。要么你的消息——嗯,我想有两种方式——要么你的消息,你的优先消息,没有传达出去,因为它被别人的消息阻止了,或者同样,数据被阻止了,对吗?如果你打开门,给它一堆窗口来提供数据,它要么停止运行,要么不能足够快地转移数据,那么你实际上可以停止更高优先级的事情。
Eben 17:40:所以你有这样的风险,不是吗,RP1 没有实时的东西要做,但它有一堆非实时的东西要做。因此,系统中的所有缓冲区、所有 FIFO 都填满了 USB 流量,然后相机醒来并开始:我需要卸载它。您的相机和主 SoC 上的 DRAM 之间有一个巨大的队列,其中充满了低优先级数据。所有这些组件都在回头看:嗯,我只有低优先级的东西,我不需要做任何事情;队列后面有一个人挥手说:你好,救命!我的 FIFO 空间快用完了。
当然,这个问题的解决方案,这个问题的通用解决方案——当然,这也是主 SoC 内部发生的事情——这个问题的通用解决方案是优先转发。因此,如果我站在你身后的队列中,我是高优先级,而你是低优先级,我会拍拍你的肩膀,然后说:你现在是高优先级了。然后在下一个周期,你拍拍下一个人的肩膀并说:你现在是最优先的。迟早,该优先级(可能是每个时钟一个 Q 元素)会在系统中下降。在你意识到之前,站在队列前面的那个人,名义上是低优先级流量,因为他是 USB,现在是高优先级,而且他是高优先级,因为他需要避开真正的流量。在队列中排在他后面一段距离的高优先级人物。
现在显然这在系统内部运行良好,当然结构会进行优先转发。当你讨论 PCI Express 时,这有点微妙,不是吗,因为实际上并没有优先转发的概念。我们实际上有自定义的供应商消息,不是吗?所以 PCI Express 有这个概念,以及数据有效负载消息,它有供应商信令消息的概念。我们定义了一个供应商信令消息,它允许我们告诉主 SoC,我遇到了恐慌——我们称之为恐慌,你知道,非常高优先级的恐慌。我这里很恐慌,你现在应该恐慌。然后这会导致它的末端陷入恐慌,从而提高其优先级。
显然,这是与 Broadcom 合作的另一项共同设计,因此 2712 内部的 PCI Express 路由复合体能够了解这些供应商消息,并能够打开和关闭其紧急状态。这实际上是很长时间的拍拍那个人的肩膀。这是拍拍位于 PCI Express 链路另一端的队列中的人的肩膀,然后说,是的,现在请恐慌。所以它有点可爱。再说一遍,你需要发现这种事情,你需要,我想,你必须有架构意识,有经验才能知道这类问题将成为一个问题。然后你必须有时间正确地指定它,然后正确地指定它以检查它是否确实有效。
James 20:17:这些事情很复杂:这些系统中有很多动态。因此,即使您思考了一个问题,当您将其放到 FPGA 或 PiMulator 上时,您也会发现其他问题,对吧。所以,这再次说明了设计、所有这些东西所花费的时间和精力,你知道,它需要一些迭代才能得到正确的结果。

平台原型设计

Eben 20:39:这个平台的原型是什么样的?
Liam 20:43:所以我们使用了 proFPGA 系统,这使我们能够运行 – 哦,我不知道它实际上运行的速度有多快。
James 20:52:大约 60 兆赫,或者我只是乐观?
Liam 20:55:不,实际上我认为你可能是对的。
Eben 20:58:大约是额定时钟速度的三分之一?
Liam 20:59:呃,200。
Eben 21:00: 200。所以大约是三分之一——实际上,这已经足够好了,对吧。那么设计中的数字元件的运行速度大约是最终芯片中的速度的三分之一?
Liam 21:09:是的。是的,我们有 PCIe、USB 3、以太网和所有 GPIO。我们做不到——我不认为我们可以做一个完整系统中的每一个外围设备,但例如,你会有一个 USB 3 控制器。但是您可以决定使用两个 USB 控制器而不放入 DMA 或类似的东西。但是,是的,这使我们能够与系统一起开发 Linux 驱动程序。是的,它使我们能够解决这些领域的问题——特别是,你知道,看到优先事项。你知道,确定优先顺序并证明其有效。你可以进行一个相机演示,然后你给相机最差的优先级,或者最低的优先级,然后相机停止工作,然后你再次修复它。是的,所以它可以让你在现实世界中证明所有这些东西。
Eben 22:02:我们也在许多不同的主机设备上证明了这一点,不是吗?所以我们用 2711 证明了这一点,所以我们有一个“Raspberry Pi 4 但有 Project Y”的世界。我们甚至还有 x86。
Liam 22:17:是的!
Eben 22:17:x86,好吧,x86 Raspberry Pi 是什么样子的?
Liam 22:21:看起来不错。除了,好吧,除了软件架构有点不同。因此,共享驱动程序实际上变得有点不同,因为 x86 不支持设备树,而 Arm 平台支持设备树,这就是我们描述平台外观的方式。
Eben 22:41:但是我们能够通过 PCI Express 卡将 proFPGA(因此,在 proFPGA 中模拟 RP1)连接到台式 PC。我们是否用芯片构建了 PCI Express 卡?
James 22:58:是的,我们做到了。
Eben 22:58:是的。所以所有这些工作都是在FPGA中完成的。然后我们进行了三个主要的流片:A0、B0、C0 流片。然后我们生成了每一个,当然还有 B0 和 C0 流片——显然我们有开发板,我们有 PCI Express 卡,这很有趣,对吧?你实际上确实拥有一台 PC,只不过它在 I/O 世界中感觉很像 Raspberry Pi,而且它有 Raspberry Pi – 它是一台 PC,但带有 Raspberry Pi GPIO,一台 PC,但带有 Raspberry Pi USB 或Raspberry Pi MIPI 子系统。你知道,拥有带有 MIPI 接口的 PC 是很不寻常的。
Liam 23:38:启动板是 PCIe 卡形状的,对吧?
James 23:42:这是一个带有插槽的大 PCIe 卡,或者 —
Liam 23:44:你也可以焊接芯片。
Eben 23:48:最后,我们有了两代 Raspberry Pi – 我记得有一个树莓派5(Raspberry Pi 5),右侧被切断,所以有一段时间我们有一块 2712 板,它停止了,有点像—
James 24:01:x4 PCI Express —
Eben 24:03:一个 x4 PCI Express 连接器,所有东西都位于连接器的右侧,并且 —
James 24:08:所以,Pi 5 原型确实是从这个开始的,有一个巨大的原型 FPGA——抱歉,不是 FPGA,你知道,Y 项目的启动板,里面有 RP1,然后我们再次迭代并把芯片下来。
Eben 24:25:你做了你平常的事……向我解释说它不适合。
James 24:29:好吧,我会这样做,直到合适为止!
Eben 24:31:是的,我已经习惯了这种事情。我现在已经习惯了,但我可以报告说我发现它令人震惊!有一天,它真的适合了。
James 24:37:是的。哇,确实合适,是的。
Eben 24:38:我记得当你制作时感到震惊,当计算模块 3 比 JEDEC 高一毫米时 – 有一个 JEDEC 标准,这是 DDR2,DDR2 SODIMM ?
James 24:48:DDR2 SO — 是的,内存 DIMM。
Eben 24:52:是的,CM1 符合标准,CM2 高一毫米,我只记得当你告诉我不适合的东西实际上不适合时的震惊。
James 25:06:不,抱歉。
Eben 25:06:但是它适合,无论如何它最终适合。正如我们所说,它看起来确实很漂亮。确实如此。
James 25:13:我的意思是,这是一件事,对吧,当你进行电路板布局时,你几乎直到最后才知道它会适合。我认为……所以我天生就有点保守和悲观。我总是说它不适合,直到它适合!

“底层的乐趣”

Eben 25:28:我们也有一些底物的乐趣,不是吗?我们迭代了这个子程序——这非常聪明。我们迭代了很多次才得到——
James 25:32:嗯,所以,你知道,RP1 被设计成低成本芯片,对吗?所以它是在 40[nm] 上,我们知道并且喜欢它;我们没有在里面放入任何无关的东西;你知道,里面的所有东西都是为该平台设计的,就像我们一样。基板为两层基板。
Eben 25:49:所以——就包装而言——
James 25:51:是的,所以封装 – 这是一个 BGA 封装。
Eben 25:53:但是通过 BGA — 这是底部的焊球网格……
James 25:57:网格……是的,它是 12 x 12。12 x 12 毫米,我不记得球网格号是多少。但这是在两个方面 – 因此,基板就像小型 PCB:它们可以有很多层,然后您可以将信号从芯片一直路由到引脚或球。这是一个两层基板,这使得它相当便宜,我们必须这样做——而且它是一个引线键合芯片,所以芯片的焊盘围绕边缘和引线,小引线出来并向下键合到顶部PCB 基板的表面,然后在球上形成脊状。因此,我们花了相当多的时间设计模具,以便您可以将这些引脚 – 呃,那些电线 – 基本上笔直地引出并向下形成一个球。某种程度上让基材变得更容易,嗯,不是更容易,而是更便宜。事实上,我们必须重复一遍,因为——这是一件很难做的事情;所以,根据其工作方式,我们在其中一个电源方面存在一些边缘性。所以我们不得不重新调整——
Eben 26:57:你必须去把队伍养肥。
James 26:58:是的,我们必须增加它并改变布局,这样才能减少电感。但同样,通过努力,我们已经成功完成了另一件事,而且它降低了该芯片的成本。尽管大多数人会说,哦,你可能需要四层基板,但我们有点 –
Eben 27:13:它很漂亮,最终成为一个非常具有成本效益的芯片,你知道,它拥有所有 Raspberry Pi 的特性。而且它实际上并不比以前的任何 I/O 控制器贵多少。我们以前的 I/O 控制器只完成一两件事:完成 USB 集线器,或者完成 USB 集线器和以太网。这拥有所有 Raspberry Pi 的特性。事实上,事实并非如此——我的意思是,成本对此的影响大致相同。
James 27:36:两层基板使 ballout 有点奇怪,但没关系,因为我们可以在 Pi 上迭代它,然后说,好吧,它现在可以工作了。它看起来有点奇怪,看起来比你从先设计然后反过来设计的东西中得到的稍微不那么整洁。但效果很好。是的。
Eben 27:55:这是一个很好、很可爱的平台,对吧?是的。正如我所说,它在很长一段时间内经历了三次主要迭代。当然,这也是我们拥有芯片团队的原因。我想,我们还应该谈谈工具。这在某种程度上证明了创建某些工具的合理性,从而使 RP2 设备 RP2040 更容易构建。

工装

Liam 28:21:是的,是的。因此,RP1 是基于与 RP2040 相同的脚本架构构建的。一般来说,我们要重复的任何内容,无论是跨多个芯片重复,还是只是在同一芯片上重复,我们倾向于对脚本进行排序,以便您可以根据规范构建它。因此,我们所有的时钟生成器都是由一系列 – 你知道的 – 您指定所需的时钟列表,分频器应该有多大,它们具有什么功能,然后就可以淘汰出十个 – 好吧,在 RP2040 上是 5 个,然后在 Project Y 或 RP1 上,我认为是 20 或 30。或者还有很多……
James 29:04:我认为实际上大约是 30。
Eben 29:05:这确实告诉我,经典架构的复杂性、功率和时钟复杂性实际上存在于模拟元素中,而不是设计的快速数字元素中。
Liam29:19:是的。我们拥有如此多时钟的原因往往是——音频和视频对它们所需的时钟非常挑剔。I2S也是如此。然后——所以我们用时钟来做到这一点;我们通过重置来做到这一点;我们通过开机状态机来做到这一点,它使重置特定序列中的事情不再发生,并等待每件事完成;我们通过 GPIO 复用来实现。所以 GPIO —
Eben 29:47:在 Project – RP1 以及 – 上也是这样做的吗?
Liam 29:51:是的。所以它来自电子表格。基本上,数据表中的电子表格是进入该工具的规范,然后它会执行正确的操作。是的,还有一些其他的部分,所有的一般接线。所以你说,我希望我的芯片有两个 USB 控制器、两个 SDIO 等等。然后它会为你实例化所有这些。哦——它连接总线结构,吐出地址映射……
Eben 30:17:吐出一些软件的标题和内容。
Liam 30:20:是的。所有文档、软件标题……
Eben 30:23:它真可爱。我想我们在此之前都在 ASIC 开发方面有过一些经验,而且确实感觉性能超出了一个额外的水平——所有组织在这一点上都具有一定程度的设计自动化,但不知何故,我们似乎已经设法采取了它达到了比我们以前见过的更高的水平。这很有趣,对吧?它帮助我们拥有一个小团队,它帮助我们拥有一个小而高效的团队——当然,小团队很有挑战性,对吧?因为有很多工作要做,而你只有很少的人来做,但小团队是好的,因为你可以拥有非常高素质的人才,所以招募一个小而高个人素质的团队比它更容易是一支高素质的大型团队。当你们是一个小团队时,还有你们花在彼此交谈上的时间,比大型团队线性更好。很多工作都是你和特里一起完成的,对吧?
Liam 31:16:是的,是的。所以我想,我是 Terry 的替补,但是,是的,Terry 是编写其中大部分内容的人,他将它们描述为高度参数化的组件。是的,这就是时钟发生器、I/O 复用器、焊盘包装器、复位片,我们称之为电源片。是的,我们称所有这些东西为时钟片等。但是,是的,我们的想法是将它们堆叠在一起以形成您想要的块。这也意味着,我们可以将其作为独立项目进行验证,然后将其称为已知良好,然后根据需要将其淘汰。
Eben 31:57:我认为,我们已经达成了这个想法,即拥有一支不那么挨饿的团队;您的团队拥有的资源略多于您所需的最低资源量。因此,您的资源很少,因此有很强的动力去寻找设计自动化机会,但团队足够大,有人可以进行设计自动化,对吧。团队挨饿的情况不会产生创新;团队在某些资源限制下的情况会产生创新。
James 32:29:我认为我们有足够多经验丰富的人,他们厌倦了输入大量我们已经输入了十次的内容,拥有这个工具让每个人的生活变得如此轻松。

RP1 和 RP2040

Eben 32:43:它制作了RP2040,我们可能应该谈谈RP2040如何适应这个流程,对吧?RP2040 在某种程度上被多路复用到同一个设计团队中,实际上是一种方式——当时感觉就像从我们对 ASIC 工程的投资中获得了一些额外的价值。我认为这是可行的,因为很多设计都是自动化的,而且即使在那里你也有自动组装的惠普结构。所以你就有了这种程度的自动化。从我的角度来看,我认为它做了另一件有用的事情,这意味着 RP1 不是我们的第一个量产芯片。RP2040 是一款值得投入生产的有趣芯片,因为它当然是在大流行期间投入生产的,它是在供应链危机期间投入生产的。但它教会了我们很多关于运营的知识;明显地,乔恩·马修斯 (Jon Matthews) 加入我们,负责管理该组织的运营部门。我认为,如果我们旗舰大型 Raspberry Pi 产品中的芯片也是我们制作的第一块芯片,那将是非常可怕的。
Liam 33:53:是的,我的意思是,与 RP1 相比,RP2040 的生产测试相对简单,因为 RP1 上有太多类似的东西:测试仪必须更复杂,而且还有更多需要测试的东西。

测试

Eben 34:04:但有趣的是,我们使用的是同一个测试仪,不是吗,我们仍然使用 J750。我们使用泰瑞达 J750。但配有精密的负载板。我认为这是我们学到的另一件事,我们真正学到的另一件事 – 嗯,我想 Jon 可能知道或怀疑,而且我认为我们在 RP2040 的过程中学到了 – 就是你可以以非常具有成本效益的方式逃脱惩罚测试仪,然后是把芯片适配到测试仪上的负载板,你可以把一些模拟元件放在那里。
James 34:31:我认为我们正在使用 J750Ex,这是稍微闪亮的一个,但它仍然是一个低成本的测试仪。这太棒了。
Eben 34:41:我忘记了我们打算使用什么,但它是地狱般的,不是吗?之前是一个非常非常复杂的测试仪。
James 34:48:我不记得了。
Eben 34:48:他们叫什么,那些超级 UltraFLEX,我们本来要使用 UltraFLEX,但我们已经能够使用 J750。
Liam 34:53:我们可以一次性测试多少块板?
James 34:57:四方站点。
Eben 34:58:这是四方站点。
James 34:59:所以对于——
Eben 35:00:RP2040 的八进制位点 —
James 35:00:RP2040 的八 —
Eben 35:00:是的,这是八进制站点。
James 35:00:然后我们为这一件事做了四件事。是的。
Eben 35:04:仍然很宽;我前世开发的芯片很少有四站点测试仪。但这很有趣。在野外拥有另一个芯片既有趣又好。很高兴向人们解释 ASIC 团队一直在做什么。好的!出色的。无论如何,那是 RP1。在这 2500 万美元中,它可能远远超过开发 树莓派5(Raspberry Pi 5)成本的一半。但这很有趣,我怀疑它可能会伴随我们一段时间。



坐沙发

发表评论

你的邮件地址不会公开


*