DP Reading: Kunpeng Processor Architecture and Programming (9) Kunpeng 920 Processor System-on-Chip


After stopping for two days, I made a thesis reproduction of the isolated island problem related to my major, but there was not much progress, just like when I first started running Aspen, what I had to face was a rather complicated multi-parameter problem. System, in this case, you can only go through the technical documentation step by step to adjust.

It is undoubtedly comfortable to return to my Kunpeng 920 processor, so I can only do my best on the basis of making all my white notes and documents. As for the isolated island problem, I will spend some time before continuing.

Organization and Management of Kunpeng 920 Processor SoC

Configuration of Kunpeng 920 SoC

The Kunpeng 920 System-on-Chip (Kunpeng 920 SoC) is an ARM processor independently developed by Huawei, based on the 7nm process. Its main configuration includes:

  • It supports 64 cores and the main frequency can reach 2.6GHz.
  • Integrated 8-channel DDR4 memory controller.
  • Integrated 100G RoCE Ethernet card.
  • Support PCIe 4.0 and CCIX interface, can provide 640Gbps total bandwidth.

Kunpeng processor multi-chip system

Kunpeng multi-chip system (Kunpeng multi-chip system) is a multi-chip collaborative system solution based on Kunpeng processors, which can be used in high-performance computing, servers, data centers and other application scenarios. The system contains multiple Kunpeng processors connected by high-speed interconnect technology to achieve higher computing performance and better energy efficiency.

Specifically, the Kunpeng processor multi-chip system uses technologies such as cache coherent interconnection, high-bandwidth and low-latency memory and storage systems, and high-performance I/O interfaces to realize the collaborative work among multiple processors, thereby improving the overall performance and reliability of the system.

In addition, the system also supports multiple operating systems and programming models to meet the needs of different application scenarios. At the same time, the Kunpeng processor multi-chip system also has flexible scalability, and the number of processors can be increased or decreased as needed to meet computing needs of different scales.

Kunpeng 2P multi-chip system

The following is an overview of the architecture of the Kunpeng 2P multi-chip system:

Main processor (Kunpeng processor): The core of the system, a 64-bit processor based on ARM architecture, adopts 10nm process technology, and has the characteristics of high performance and low power consumption.

Cache Coherent Interconnect (CCI) chip: Responsible for communication and data exchange between processors, providing a cache coherent interconnect protocol.

Memory controller chip: undertakes the task of managing memory read and write operations to ensure reliable storage and access of data.

Double data rate memory (DDR) interface chip: connects processor and memory to realize high-speed and reliable data transmission.

The design goal of Kunpeng 2P multi-chip system is to achieve high reliability, high performance, low latency and low power consumption. By combining multiple chips into a system, the system can provide more computing power, faster memory speed and lower latency. In addition, the system also focuses on energy-saving design to reduce energy consumption and improve energy efficiency ratio.

链接
主处理器
高速缓存一致性互连
内存控制器芯片
双倍数据率内存

Kunpeng 4P multi-chip system

The Kunpeng 4P multi-chip system is a Kunpeng processor-based multi-chip system designed to achieve higher performance, lower power consumption, and higher reliability. The system consists of four Kunpeng processors , a cache coherent interconnect (CCI) chip , two memory controller chips and a double data rate memory (DDR) interface chip .

Compared with the Kunpeng 2P multi-chip system, the Kunpeng 4P multi-chip system adds two processors and a CCI chip, which further improves the computing power, memory and communication capabilities of the system. At the same time, the system also uses a low-power design to reduce energy consumption and improve energy efficiency.

At the heart of the system is the Kunpeng processor, a 64-bit processor based on the ARM architecture . The processor adopts advanced 7nm process technology and has the characteristics of high performance, low power consumption, safety and reliability. The CCI chip provides a cache coherent interconnect protocol for communication between processors. The memory controller chip is used to manage the read and write operations of the memory, and the DDR interface chip is used to realize the data transmission between the memory and the processor.

鲲鹏4P多芯片系统
鲲鹏处理器1
鲲鹏处理器2
鲲鹏处理器3
鲲鹏处理器4
高速缓存一致性互连芯片
内存控制器芯片1
内存控制器芯片2
双倍数据率内存接口芯片

Multi-chip system composed of Kunpeng 920 processor SoC and I/O bridge

Kunpeng 920 processor system-on-chip and I/O bridge multi-chip system is a multi-chip system based on Kunpeng 920 processor, which aims to achieve higher performance, lower power consumption and higher reliability. The system consists of multiple Kunpeng 920 processors, a cache coherent interconnect (CCI) chip, two memory controller chips, and a double data rate memory (DDR) interface chip, as well as an I/O bridge A chip that connects processors and other external devices.

The multi-chip system composed of Kunpeng 920 processor system-on-chip and I/O bridge is a high-performance, low-power, safe and reliable computer system, suitable for high-performance computing, artificial intelligence and big data analysis and other fields.

Kunpeng 920 Processor Management and Security Architecture

The management and security architecture of the Kunpeng 920 processor mainly consists of the following parts:

  1. Management structure : The Kunpeng 920 processor adopts a combination of hardware and software for management. Hardware management is mainly realized through an integrated manager (Management Processor, MP) , which is responsible for managing hardware resources such as processor power, temperature, and faults. Software management is implemented through Huawei Management Software (HMS) running on the Linux operating system , which can provide functions such as system status monitoring, configuration management, and fault diagnosis.
  2. 安全架构:鲲鹏920处理器遵循可信执行技术(Trusted Execution Technology,TXT) 规范,通过使用硬件加密、软件防护等技术来确保系统的安全性和稳定性。具体来说,鲲鹏920支持硬件级安全加密,包括可信平台模块(TPM)、安全启动(Secure Boot)、固件验证(Firmware attestation) 等安全特性。
  3. 扩展接口:鲲鹏920处理器拥有丰富的扩展接口,包括PCIe、CCIX、10GbE、25GbE、40GbE和100GbE等多种高速网络接口,以及多通道DDRx4和PCIE4.0扩展接口,以满足不同应用场景的需求。

综上所述,鲲鹏920处理器的管理和安全架构采用了硬件和软件相结合的方式,通过集成管理器、华为管理软件、硬件加密、软件防护等技术和扩展接口,确保系统的稳定性和安全性。

鲲鹏920处理器
硬件管理
软件管理
安全架构
扩展接口

鲲鹏920片上系统的PMU

鲲鹏920片上系统的PMU(Power Management Unit)是负责电源管理的硬件模块,它与系统中的其他组件协同工作,以确保系统的稳定运行和能源的有效利用。

下面是用文本描述的方式展示PMU(Power Management Unit)负责电源管理的流程:

  1. 初始化:当系统启动时,PMU进行初始化操作,准备电源管理功能。

  2. 电源监测:PMU实时监测系统的电源状态,包括电压、电流、温度等参数。它可以通过传感器或与主板上其他组件的通信来获取这些信息。

  3. 电源控制:根据电源监测的结果和系统需求,PMU采取相应的控制策略来调整电源的工作状态。例如,当系统负载较重时,PMU可以增加电源供应的电压和电流,以确保系统的稳定性和性能。

  4. 节能管理:PMU还负责节能管理,通过优化电源的使用来降低功耗,延长电池寿命或降低系统在待机状态下的能耗。它可以根据系统负载、用户设置或事先设定的策略来动态调整电源供应的能量输出。

  5. 故障检测和保护:PMU监测电源供应的稳定性和安全性,如果检测到异常情况(如过电流、过温等),则会触发保护机制,例如关闭电源、降低电压等,以避免对系统和设备的损害。

PMU作为负责电源管理的硬件模块,通过监测电源状态、控制电源输出、节能管理以及故障检测和保护等功能,确保系统的稳定性、性能优化和能耗管理。
具体来说,PMU负责监控系统的电源状态、电压和温度等参数,并根据系统负载和运行状态进行动态调整。它还负责管理系统的功耗预算,以确保系统在满足应用需求的同时,不会超过电源限制。

此外,PMU还提供了一些可编程的电源管理接口,以便系统管理员根据应用需求进行精细的电源管理。例如,通过设置电源状态配置文件,可以控制处理器在不同负载下的电源状态,以实现更好的能效管理。

系统启动
PMU初始化
电源监测
根据监测结果和需求进行电源控制
节能管理
故障检测和保护
结束

鲲鹏920处理器片上系统的输入与输出

鲲鹏920处理器片上系统的输入与输出概述

鲲鹏920处理器片上系统的输入/输出(I/O) 能力非常强大,支持多种高速接口和协议,包括PCIe 4.0、CCIX、100G RoCE、SAS/SATA 3.0等,可以满足不同应用场景的需求。

具体来说,鲲鹏920处理器片上系统支持以下输入/输出接口:

  1. PCIe 4.0:鲲鹏920处理器支持4个PCIe 4.0通道,可以用于连接高速设备,如GPU、FPGA等。
  2. CCIX:支持CCIX接口,可以与CCIX设备进行通信,实现更高的带宽和更低的延迟。
  3. 100G RoCE:支持100G RoCE以太网接口,可以提供高速的数据传输和网络连接。
  4. SAS/SATA 3.0:支持SAS/SATA 3.0接口,可以连接串行ATA硬盘和串行Attached SCSI硬盘,提供高速存储访问。
graph LR
A[鲲鹏920处理器] --> B[PCIe 4.0]
A --> C[CCIX]
A --> D[100G RoCE]
A --> E[SAS/SATA 3.0]
B --> F[连接高速设备(如GPU、FPGA)]
C --> G[与CCIX设备通信]
D --> H[提供高速数据传输和网络连接]
E --> I[连接串行ATA硬盘和串行Attached SCSI硬盘]

此外,鲲鹏920处理器片上系统还支持多种操作系统和编程模型,可以满足不同应用场景的需求。同时,鲲鹏920处理器片上系统也具有灵活的可扩展性,可以根据需要增加或减少输入/输出接口数量,以适应不同规模的计算需求。

鲲鹏920处理器片上系统的PCI Express控制器

鲲鹏920处理器片上系统的PCI Express(PCIe)控制器 是负责管理计算机系统内部各个组件之间的高速数据传输的硬件模块。

PCIe控制器的主要功能是提供一组高速串行数据传输通道,支持多个设备之间的数据传输。在鲲鹏920处理器中,PCIe控制器采用PCIe 4.0 版本,可以提供更高的数据传输速率和更低的延迟。

此外,鲲鹏920处理器的PCIe控制器还支持多种扩展连接接口,如CCIX和100G RoCE 等,可以提供更高效的数据传输和网络连接。这些接口可以满足不同应用场景的需求,如高性能计算、数据中心、云计算等。

总之,鲲鹏920处理器片上系统的PCIe控制器是实现高效数据传输和网络连接的关键模块之一,可以满足不同应用场景的需求。

鲲鹏920处理器片上系统的平台设备

鲲鹏920处理器片上系统是一个完整的平台设备,包括处理器、内存、I/O接口和其他扩展设备。以下是鲲鹏920处理器片上系统的平台设备的主要部分:

  1. 处理器:鲲鹏920处理器是华为自主研发和设计的ARM架构处理器,采用7nm工艺制造,可以支持32/48/64个内核,主频可达2.6GHz
  2. 内存:鲲鹏920处理器片上系统支持8通道DDR4内存,可以提供更快的内存访问速度和更大的内存容量。
  3. I/O接口:鲲鹏920处理器片上系统支持多种高速I/O接口,包括PCIe 4.0、CCIX、100G RoCE网络等,可以满足不同应用场景的需求。
  4. 扩展设备:鲲鹏920处理器片上系统还支持多种扩展设备,如GPU、FPGA等,可以用于加速特定应用的计算。

鲲鹏920处理器片上系统的附加设备

鲲鹏920处理器片上系统的附加设备是指那些在处理器核心之外,但与处理器紧密相关的设备或组件。这些设备或组件通常通过I/O接口与处理器连接,并支持特定的功能或应用。以下是一些常见的鲲鹏920处理器片上系统的附加设备:

  1. 显卡:鲲鹏920处理器片上系统支持与GPU等图形处理设备的连接,以提供更高的图形处理性能,适用于需要大量图形处理能力的工作负载。
  2. 存储设备:鲲鹏920处理器片上系统支持与多种存储设备的连接,如SAS/SATA 3.0硬盘、PCIe SSD等,可以提供大容量、高速度的存储能力。
  3. 网络设备:鲲鹏920处理器片上系统支持与多种网络设备的连接,如以太网交换机、路由器等,可以提供高速、可靠的网络连接能力。
  4. 加密设备:鲲鹏920处理器片上系统支持与加密设备的连接,如加密卡、安全模块等,可以提供数据加密、解密和安全认证等功能,确保数据的安全性。

鲲鹏920处理器片上系统基于鲲鹏920片上系统的Taishan服务器

Taishan 200 服务器的组成与逻辑结构

Taishan 200服务器主要由以下部分组成:

  1. 处理器:服务器搭载了两个华为自研的鲲鹏920 5220处理器,每个处理器包含8个DDR4内存条,总计16个DDR4内存条。
  2. 总线:两个处理器之间通过1组Hydra总线互连单lane最高传输速率为30GBps。
  3. 网络接口:服务器配备了以太网灵活插卡,支持3种插卡,包括100GE、4GE和2*25GE,通过CPU本身自带高速SerDes接口完成。
  4. 存储接口:Raid标卡通过PCIE总线与CPU1连接,Raid卡出SAS信号线缆与硬盘背板连接,而不同的硬盘背板可以支持多种本地存储规格。
服务器的逻辑结构如下:

1. 以太网接口:通过CPU本身自带高速SerDes接口完成。
2. Raid卡:通过PCIE总线连接到CPU1。
3. SAS信号线缆:从Raid卡出来后连接到硬盘背板。

通过以上组件,Taishan 200服务器构成了一个稳定、高效的计算环境,能支持多种本地存储规格,并且通过高速网络接口和处理器,实现了高数据传输速率和大容量内存,满足各种高计算需求。

Taishan 200 服务器的RAS

Taishan 200服务器的RAS(Reliability,Availability,Serviceability,可靠性、可用性、可维护性) 功能主要包括以下几个方面:

  1. ECC(Error Checking and Correction,错误检查和纠正):该功能通过对服务器内存进行错误检查和纠正,保障内存数据的准确性。当检测到内存错误时,ECC技术可以自动进行数据修复,减小数据损坏的风险。
  2. SDEC(Single Device Error Correction,单设备错误纠正):SDEC功能可以对单设备错误进行检测和纠正,提高服务器的稳定性。
  3. 内存RAS能力:Taishan 200服务器支持内存的RAS能力,包括支持内存镜像、内存热备份、内存隔离等,以增强服务器的可靠性和可用性。
  4. PCIe RAS能力:服务器支持PCIe RAS能力,包括支持PCIe热插拔、PCIe设备替换等,以提高服务器的可靠性和可维护性。
  5. 网络RAS能力:Taishan 200服务器支持网络RAS能力,包括支持网络冗余、网络负载均衡等,以提高服务器的可靠性和可用性。

Taishan 200 服务器的鲲鹏加速引擎

Taishan 200服务器的鲲鹏加速引擎是基于鲲鹏920处理器的硬件加速模块,包含了对称加密、非对称加密和摘要、压缩解压缩等算法,用于加速SSL/TLS应用和数据压缩,可以显著提升所支持算法的运算效率,节省CPU资源。

该加速引擎对应用层屏蔽了其内部实现细节,用户通过OpenSSL、zlib标准接口即可实现对鲲鹏加速引擎的调用。目前,鲲鹏加速引擎主要支持以下算法:

* 摘要算法sm3/md5,支持同步异步模式。
* 对称加密算法sm4,支持同步异步模式,支持ctr/xts/cbc/ofb/ecb分组模式(xts模式仅支持内核态应用);aes,支持同步异步模式,支持ecb/cbc/ctr/xts分组模式。
* 非对称加密算法rsa,支持同步异步模式,支持key sizes 1024/2048/3072/4096* 密钥协商算法dh,支持同步异步模式。

此外,鲲鹏加速引擎还具有以下特点:

* 加速SSL/TLS应用和数据压缩,显著提升所支持算法的运算效率,节省CPU资源。
* 对应用层屏蔽内部实现细节,用户通过OpenSSL、zlib标准接口即可实现对鲲鹏加速引擎的调用。
* 提供硬件安全保护,确保数据和指令的安全。

OpenSSL是一个开源的软件库,提供了一系列的加密和安全功能。它可以用于开发安全的网络通信、数据传输和身份验证等应用。

以下是一些OpenSSL的主要特点和功能:

  1. 加密和解密:OpenSSL支持多种加密算法,包括对称加密(如AES、DES)、非对称加密(如RSA、ECC)和哈希函数(如SHA-256)。它可以用于对数据进行加密和解密操作。

  2. SSL/TLS协议:OpenSSL实现了SSL和TLS协议,用于建立安全的网络连接。它可以用于开发安全的Web服务器、邮件服务器和其他网络应用。

  3. 数字证书:OpenSSL支持生成、验证和管理数字证书。它可以用于创建自签名证书、生成证书签名请求(CSR)以及与证书颁发机构(CA)交互。

  4. 安全套接字层:OpenSSL提供了对安全套接字层(SSL)的支持,可以对网络通信进行加密和身份验证。它可以用于保护敏感数据在网络中的传输。

  5. 随机数生成:OpenSSL提供了随机数生成器,用于生成加密强度的随机数。这对于密码学操作和安全应用非常重要。

  6. 密码学工具:OpenSSL还提供了一些常用的密码学工具,如生成密钥对、进行数字签名和验证、计算消息摘要等。

OpenSSL是一个功能强大的加密和安全库,广泛应用于网络通信、数据保护和安全应用开发中。它被许多软件和系统所使用,并得到了广泛的社区支持和贡献。

openssl.org官方链接

zlib是一个广泛使用的开源数据压缩库,它提供了一组标准接口,用于对数据进行压缩和解压缩操作。以下是zlib的一些主要标准接口:

  1. 压缩接口

    • deflateInit():初始化压缩环境。
    • deflate():将输入数据压缩为输出数据。
    • deflateEnd():释放压缩环境。
  2. 解压接口

    • inflateInit():初始化解压环境。
    • inflate():将压缩数据解压为原始数据。
    • inflateEnd():释放解压环境。
  3. 错误处理接口

    • zlib_version():获取zlib的版本信息。
    • zError():获取错误信息。
  4. 参数设置接口

    • deflateParams():设置压缩参数,如压缩级别和压缩策略。
    • inflateSetDictionary():设置解压字典,用于提高解压性能。

除了上述标准接口外,zlib还提供了其他一些附加功能和接口,如压缩级别调整、内存管理、数据校验和多文件压缩等。这些功能可以根据具体需求选择使用。

使用zlib标准接口进行数据压缩和解压缩的示例代码如下:

#include <stdio.h>
#include <zlib.h>

#define CHUNK_SIZE 1024

int main() {
    
    
    // 输入数据
    const char* input = "Hello, World!";
    uLong inputLength = strlen(input);

    // 压缩缓冲区
    Bytef compressed[CHUNK_SIZE];

    // 待解压缩缓冲区
    Bytef decompressed[CHUNK_SIZE];

    // 压缩数据
    z_stream strm;
    strm.zalloc = Z_NULL;
    strm.zfree = Z_NULL;
    strm.opaque = Z_NULL;

    deflateInit(&strm, Z_DEFAULT_COMPRESSION);
    strm.avail_in = inputLength;
    strm.next_in = (Bytef*)input;
    strm.avail_out = CHUNK_SIZE;
    strm.next_out = compressed;

    deflate(&strm, Z_FINISH);
    deflateEnd(&strm);

    uLong compressedLength = CHUNK_SIZE - strm.avail_out;

    // 解压数据
    strm.zalloc = Z_NULL;
    strm.zfree = Z_NULL;
    strm.opaque = Z_NULL;

    inflateInit(&strm);
    strm.avail_in = compressedLength;
    strm.next_in = compressed;
    strm.avail_out = CHUNK_SIZE;
    strm.next_out = decompressed;

    inflate(&strm, Z_FINISH);
    inflateEnd(&strm);

    // 输出结果
    printf("Compressed data: %s\n", compressed);
    printf("Decompressed data: %s\n", decompressed);

    return 0;
}

以上为调用方法。
zlib.net官方链接

终于整完了,感谢大家关于鲲鹏920片上系统的关注,也希望您能在该基础上对片上系统有更深入到理解。

Guess you like

Origin blog.csdn.net/m0_74037814/article/details/132401687