简介

Ampere目前是一家专注于服务器设计的芯片研发公司,主要是ARM架构,目前该公司产品已经在一些大厂商用,本文主要简单分析一下该公司的AmpereOne系列的微架构,采用ARM架构,5nm工艺,最高3.7GHz,最多192核。各项参数都处在一线的水平,并且据说商业反馈比较好,所以就介绍一下这个系列的微架构。

ARM有七种模式,我们这里只讨论SVC、IRQ和FIQ模式。

我们可以假设ARM核心有两根中断引脚(实际上是看不见的),一根叫 irq pin, 一根叫fiq pin。在ARM的cpsr中,有一个I位和一个F位,分别用来禁止IRQ和FIQ。

今天我们看一看内核锁机制引起的一类稳定性问题:soft lockup。

soft lockup 案例

用 crash tool 解析出的信息如下:

今天我们看一看内核对长期处于睡眠状态的进程的一种监测机制:hung task。

hung task 案例

用 crash tool 解析出的结果如下:

1 垫话

x86架构相关的内存序及内存屏障知识,参阅《Intel SDM之Memory Ordering》。

本文为Arm Developer《Learn the architecture-Memory Systems,Ordering,and Barriers》的翻译(https://developer.arm.com/documentation/102336/0100?lang=en)。

本文非常之好,回答了我对于啥是“观察者”、啥是“Shareability domain”以及啥是“访问完成”的定义性困惑。那些讲内存屏障但不先讲清楚以上这些基础概念的文章都拉黑吧,因为作者只是在机械地背诵,而不是真正的理解了;或者作者压根就没思考过底层细节,因为但凡思考过,这些基础概念必然是跳不过去的。

相对而言,Intel spec行文要严谨、易读一些,Arm spec略显诘诎聱牙(当然本文严格意义上不算是spec,只是一篇guide),可能是语言表达习惯问题。