多核体系概述--多核系列之一

第十八节 多核异构核间通信–ipcc 基于STM32MP1Linux 驱动开发实战 多核异构核间通信–ipcc 阅读详情
   接触多核有段时间了,决定把这方面的知识做个总结。
 
1。多核基本理论

多核即在一个单芯片上面集成两个甚至更多个处理器内核,其中每个内核都有自己的逻辑单元、控制单元、中断处理器、运算单元、一级cache、二级cache共享或独有,其部件的完整性和单核处理器内核相比完全一致。

片上多核处理器(CMP)是将多个计算内核集成在一个片处理器芯片中,从而提高计算能力。每个微处理器核心实质上都是一个相对简单的单线程微处理器或者比较简单的多线程微处理器,这样多个微处理器核心就可以并行地执行程序代码,因而具有了较高的线程级并行性。由于CMP采用了相对简单的微处理器作为处理器核心,使得CMP具有高主频、设计和验证周期短、控制逻辑简单、扩展性好、易于实现、功耗低、通信延迟低等优点。此外,CMP还能充分利用不同应用的指令级并行和线程级并行,具有较高线程级并行性的应用如商业应用等可以很好地利用这种结构来提高性能。

按照内核的对等与否,CMP可分为同构多核和异构多核。计算内核相同,地位对等的称为“同构多核”。同构CMP大多数由通用的处理器组成,多个处理器执行相同或者类似的任务。计算内核不同,地位不对等的称为“异构多核”,异构多核多采用“主处理核+协处理核”的设计,Cell处理器正是这种异构架构的典范,它是一枚拥有9个硬件核心的多核处理器。在Cell芯片中,只有一个是IBM完整的Power(精简的PowerPC970)处理器,其余8个内核都是为处理图像而专门设计的、用于浮点运算的协处理器。主处理器的主要职能就是负责任务的分配,实际的浮点运算工作都是由协处理器来完成。由于Cell中的协处理器只负责浮点运算任务,所需的运算规则非常简单,对应的电路逻辑同样如此,只要CPU运行频率足够高,Cell就能获得惊人的浮点效能。整数性能和动态指令执行性能并不理想。由于电路逻辑简单,主处理器和协处理器都可以轻松工作在很高的频率上,Cell起步频率可达到4GHz。在高效率的专用核心和高频率的帮助下,Cell可以获得高达256Gigaflops(2560亿次浮点运算每秒)的浮点运算能力。Cell聚集在消费性电子市场。

CMP处理器由多个CPU核心组成,每个核心执行各自的程序代码,但是CMP处理器的各CPU核心执行的程序之间要进行数据共享和同步,所以硬件结构必须支持核间通信。高效的通信机制是CMP处理器高性能的重要保障,比较主流的片上高效通信机制有两种,一种是基于总线共享的cache结构,一种是基于片上的互连结构。

总线共享cache结构是指每个CPU内核拥有共享的二级或三级cache,用于保存比较常用的数据,并通过连接核心的总线进行通信。这种系统的优点是结构简单,通信速度高,缺点是基于总线的结构可扩展性较差。

基于片上互连的结构是指每个CPU核心具有独立的处理单元和cache,各个CPU核心通过交叉开关或片上网络等方式连接在一起,各个CPU核心间通过消息通信。这种结构的优点是可扩展性好,数据带宽有保证,缺点是硬件结构复杂,且软件改动较大。

 

2。网络多核处理器

网络处理器主要应用于通信领域的各种任务,比如包处理、协议分析、路由查找、声音/数据的汇聚、防火墙、QoS等。网络设备如路由器和交换机的体系结构的发展基本上经历了基于通用处理器的体系结构和基于ASIC、RISC的体系结构两个阶段。

网络处理器的体系结构是在以上两种体系结构的基础上,综合了双方优点推出的一种新型的体系结构。网络处理器是一种可编程ASIC,不但可为系统提供类似ASIC的处理速度,而且可以提供类似通用处理器的灵活性。网络处理器主要被用于处理线速(wire-speed)数据,进行协议分析和数据分类,位于物理接口处理器和交换架构之间。

网络处理器器件内部通常由若干个微码处理器和若干硬件协处理器组成,多个微码处理器在网络处理器内部并行处理,通过预先编制的微码来控制处理流程。而对于一些复杂的标准操作,如内存操作、路由表查找算法、QoS的拥塞控制算法、流量调度算法等,则采用硬件协处理器来进一步提高处理性能,从而实现了业务灵活性和高性能的有机结合。

网络处理器是一种专门用于网络报文处理的CPU,它的设计充分结合了网络环境中数据流的特点,具有优化的体系结构和指令集。一般由通用的RISC(精简指令集计算机)核或专用的处理器实现,通过执行预先编制的程序对到达的报文进行处理。为提高性能,网络处理器内部可以由多个核组成。网络多核处理器一般可以分为两种,一种是具有一般运算能力和指令存储能力的处理单元,另一种是能够完成特定处理任务的功能模块。这两种单元一般采用以下两种组织机制:

流水线:每个内核被设计成具有特定处理功能的模块,这些模块以流水线方式组织在一起完成分组的处理。

并行处理:每个处理单元都可以完成相似的任务,多个处理单元彼此间可并行执行,网络处理器可实现不同级别的并行处理。通过流水线实现指令级的并行; 通过硬件线程实现线程级的并行; 通过片内多处理器结构实现处理器级的并行。

然而网络处理器对报文处理的并行度是有限的,主要原因是

Ø  共享资源访问瓶颈。一旦多个并行体对共享资源(如路由表)的访问出现瓶颈,增加并行度只能增加对共享资源的高度开销而不能提高性能。

Ø  相关性问题。某些应用(如IPsec协议处理)对同一个会话中报文处理是前后相关的,即同一个会话的报文必须被相同的core处理。将报文随机分给不同的core并行处理不但会破坏相关性,还会造成错误。即使对于没有相关性的会话,并行处理造成的报文乱序还会引发网络系统不必要的TCP重传。

 

3。多核发展现状

  

网络处理器可以看作是基于多线程的片上多内核系统(CMP),它不但集成了多个可以独立并行的微内核,还提供了多线程的支持,是一套典型的多线程、多内核的并行处理机系统。在这样的硬件体系架构中,网络处理器的应用开发者不得不研究和挖掘特殊的硬件技术和编程技能以获得优良的包处理性能,包括基于多内核架构的并行处理模型,多线程技术,特定用途的硬件加速单元,优化的内存结构等。对硬件细节的过度关心增加了编程的复杂性,没有良好的并行软件设计模型的支持也降低了代码的可重用性和可维护性。在现有的相关研究项目中,大多对通用处理器提出了解决方案,但是很少有专门针对特定网络处理器的研究。这使得研究特定网络多核处理器的程序设计技术具有很高的实用价值和理论意义。

在单核处理器研究中,主要集中在提高频率,提高指令级并行度等方面。而在多核体系中,更加关注核与核之间的协作、共享资源的分配、提高线程级并行度等方面。

多核处理器必然带来一个问题是,需要提高程序的并行度,因为单线程程序是无法发挥多核处理器的优势的。通过编译优化可以把原先单线程的代码编译成多线程的形式。OpenMP提供了一种方法,程序员根据需要把可以并行处理的代码加上合适的标记,编译器根据这些标记把相应代码编译成多线程的程序段。多线程程序开发涉及到多线程调试的难题,这在多核处理器上会变得更加困难,所以多核体系导致程序开发模式发生巨大变化。

多核处理器上的任务调度也是个新问题,常用的调度算法有全局队列调度和局部队列调度。前者是指操作系统维护一个全局的任务等待队列,当系统中有一个CPU核心空闲时,操作系统就从全局任务等待队列中选取就绪任务开始在此核心上执行。这种方法的优点是CPU核心利用率较高。后者是指操作系统为每个CPU内核维护一个局部的任务等待队列,当系统中有一个CPU内核空闲时,便从该核心的任务等待队列中选取恰当的任务执行,这种方法的优点是任务基本上无需在多个CPU核心间切换,有利于提高CPU核心局部Cache命中率,从而提高系统的性能。目前多数CMP操作系统采用的是基于全局队列的任务调度算法。

如何有效地利用多核技术,对于多核平台上的应用程序员来说是个首要问题。多核时代的到来需要软件开发者必须找出新的开发软件的方法,选择程序执行模型。在多核系统中,核心是通过内存共享数据和通讯。为了充分利用多核,程序需要同时做很多工作。

多核编程存在的问题:

Ø  同步问题。对于同一个分组中的报文必须被相同的核处理的情况,各个报文不是相互独立的,有时分组间也存在一定的制约关系。这种制约关系主要体现在服务时序和资源操作两个方面,对于服务时序引起的同步问题可以维护分组处理状态来解决,对于资源操作冲突则需要通过加锁机制来解决。

Ø  处理资源调度问题。对一个待处理的报文到达时交由哪个核内处理,如何处理。在调度时要考虑系统负载和流量特性在内的多种信息,并要保证效率和公平性。

Ø  模块间通信问题。为了解决同步以及系统控制等问题,网络处理器内部核间的通信以及外部设备间的通信越来越多,甚至成了系统性能的瓶颈。高效的核间及设备间的通信机制将大大提高程序的效率,这也是程序设计中必须要考虑的问题。

Ø  编程者如何设计一个能充分利用多线程并行来提高应用程序性能的合适模型。如果没有统一模型,则每个程序都要重新实现多线程的性能提高模型,降低了编程效率。

Ø  随着处理器数目的增加,负载均衡就成了一个很大的问题。而且对于一般的编程人员来说,实现一个动态调度器来解决不规则任务问题来使程序保持在一个良好状态是困难的以及耗时的。

 

 

阅读(434) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
多核处理器的体系结构特点(啥是同构、异构?常见的多核有哪些?) 例如,一个异构多核处理器可能包含高性能核心和低功耗核心,以在需要时提供更好的性能,而在轻负载时降低功耗。在同构多核架构中,所有的处理核心都是相同的,它们具有相似的架构、时钟频率和性能特征。这是一种由ARM设计的异构多核架构,其中包含高性能的"big"核心和能效更好的"little"核心。AMD的一些处理器,尤其是在移动和嵌入式领域,采用了异构多核设计,将CPU核心和GPU核心集成在同一芯片上。异构多核处理器通常包含不同类型的核心,以便在处理不同种类的任务时取得更好的平衡。AMD也生产同构多核处理器。 阅读详情

相关推荐

详解全志R128 RTOS异构多核通信原理

R128 所带有的 M33 主核心与 C906, HIFI5 DSP 核心是完全不同的核心,为了最大限度的发挥他们的性能,协同完成某一任务,所以在不同的核心上面运行的系统也各不相同。这些不同架构的核心以及他们上面所运行的软件组合在一起,就成了 AMP 系统 (Asymmetric Multiprocessing System, 异构多处理系统)。为了多核心协同工作,对于需要异构多核通信框架需要满足以下功能:针对异构多核系统的特性,在进行远程服务调用时,需要解决以下几个问题:为了解决这些问题,提供了 Sunx

DOT小文哥的博客 2870

同构多核和异构多核简单介绍

多核处理器的由来   多核出现前,商业化处理器都致力于单核处理器的发展,其性能已经发挥到极致,仅仅提高单核芯片的速度会产生过多热量且无法带来相应性能改善,但CPU性能需求大于CPU发展速度。尽管增加流水线提高频率,但缓存增加和漏电流控制不力造成功率大幅增加,性能反而不如之前低频率的CPU。功率增加,散热问题也严重了,风冷已经不能解决问题了。   那么新技术必须出现-多核处理器。早在1996年就有第一款多核CPU原型Hydra。2001年IBM推出第一个商用多核处理器POWER4,2005年Intal和AMD

qlexcel的专栏 1万+

计算机体系结构.微结构概述

计算机体系结构.微结构概述 随着工艺的进步,从集成电路发展到大规模集成电路,再到超大规模集成电路,相同面积内可集成的晶体管数目越来越多,这也就给了芯片设计人员极大的空间来发挥身手。 在体系结构的发展历程中主要有两个阶段,第一个阶段是专注提升单核性能的阶段,受到摩尔定律的推动,处理器主频越来越高,出现了流水线、动态调度(乱序执行)、多发射等经典的设计,主要是提高ILP(Instruction Lev...

随便写写 2078

SOC中的同构多核、异构多核

现代SOC设计中,为了解决性能与功耗的平衡、通过并行化加速计算等,而越来越多地使用同构多核、异构多核和协处理器的设计。在系统层面也就有了相应的SMP、AMP支持。

smallerxuan的博客 4333

英飞凌TC397 FreeRTOS SMP多核移植

主要介绍在英飞凌多核平台TC397上进行FreeRTOS SMP的移植及使用。

hello_hellohaha的博客 3344

单核,多核CPU的原子操作

一. 何谓"原子操作": 原子操作就是: 不可中断的一个或者一系列操作, 也就是不会被线程调度机制打断的操作, 运行期间不会有任何的上下文切换(context switch). 二. 为什么关注原子操作? 1. 如果确定某个操作是原子的, 就不用为了去保护这个操作而加上会耗费昂贵性能开销的锁. - (巧妙的利用原子操作和实现无锁编程) 2. 借助原子操作可以实现互斥锁(mutex).

qq100440110的专栏 3377

【体系结构系列】体系结构概述

AIPSN金字塔 第一级: “A ” (Acceleration, Amdahl) 总目标:快! 总原理:加快经常性事件 量化原理:Amdahl定律 CPU性能公式 程序的局部性原理 第二级: “I ”( Instruction, Interface) 指令系统:用硬件实现的命令集软硬件的界面 分类:CISC 和 RISC 第三级: “P ” (Processing, Parallel) SISD :单指令流单数据流计算机 MISD:

菜鸡也有大佬梦 2093

eNSP-抓包解析TCP三次握手和四次挥手的过程

一、环境搭建 1.设备连接 2.服务器配置 3.客服端配置 二、抓包测试 1.打开抓包软件 2.客户端获取数据 三、抓包结果

小橙子的博客 3352

程序设计中多核的影响--多核系列之三

1。内存对齐及cache对性能的影响 在RISC体系结构下,当数据在自然对齐的边界时内存操作更加高效。CPU在读取内存的时候,是以cache线的长度来读取的,当cache block为128bytes时, CPU每次会读取128bytes至L2 cache,如果在分配时不以128bytes对齐就会增加内存的访问次数,对程序的效率有很大的影响。 如果数据超出了cache line的长度(128b

brfeng的专栏 1162

CVE-2017-7921漏洞深度解析:海康设备明文密码泄露原理与七层防御

网络摄像头安全本质上是嵌入式Web服务安全,其核心在于身份认证机制是否健全。CVE-2017-7921并非传统远程执行漏洞,而是因信任错位导致的未授权API暴露——`/Security/users/1`接口绕过Session校验,直接返回admin明文密码。该问题根植于安防设备早期‘物理隔离+前端可控’的设计假设,在P2P、云平台等新场景下全面失效。技术价值在于揭示了轻量级HTTP服务中路径级访问控制缺失的普遍风险;典型应用场景包括ONVIF协议接管、Telnet后门登录及NVR侧横向移动。本文基于DS-2

weixin_33324197的博客 403

手把手教你用TBtools+MCScanX完成玉米基因家族共线性分析(附完整代码)

本文提供了一套完整的玉米基因家族共线性分析实战流程,详细讲解了如何从数据准备、格式处理开始,利用DIAMOND进行快速比对,再结合MCScanX进行核心共线性区块鉴定,最后通过TBtools实现从全基因组圈图到特定基因家族微共线性图的可视化。教程包含可直接运行的代码与常见问题解决方案,帮助研究者高效完成从命令行计算到图形化展示的全过程。

tech5的博客 591

Intel多核程序设计培训的基本体系

     上周去上海Intel参加了一个多核程序设计的技术培训。一般来说大公司的专项技术培训都经过精心的设计,体系比较完整,知识点覆盖比较全,强调实验和动手环节。Intel这次的多核技术培训也是这样,从线程基础知识到多线程程序设计的方法模型,从OpenMP到VTune工具,体系还是很完整的,试验环节设计得很到位,PPT很用心。当然因为时间毕竟只有两天,所以不可能非常深入。不过总体上我对这个培训的质

孟岩 1万+

PADS VX2.7学习记录05-PADS Layout设计文件Gerber等输出整理

在“PDF Document”栏中,依次选中除REF-TOP和REF-BOT之外的文件,单击图标,将其余PDF Document文件进行删除,如图所示。然后单击【生成PDF】按钮,即可创建一份PDF格式的位号图。

tianpu2320959696的博客 1025

ARM——体系结构

计算机体系结构:冯诺伊曼 哈佛。

m0_71703182的博客 2056

杰理JL703N的SDK内部MIDI 音色库功能使用教程

本文介绍了MIDI琴按键解码和MIDI文件解码的实现方法。MIDI琴解码通过audio_dec_midi_ctrl.c文件实现,MIDI文件(mfa格式)解码则使用audio_dec_midi_file.c。使用前需将音色文件存放在SD卡或内置flash中(需确保四字节对齐),并在download.c中配置路径。同时需在板级配置中将FLASH设置为16Mbit以解决编译问题。关键注意事项包括音色文件的文件夹结构对齐要求和MIDI数据流的正确配置。

qq_42014563的博客 390

21天学会基于 Linux 的 NPU 固件开发--12.3 如何参与 Linux 内核 NPU 子系统开发

从修复一个简单的文档拼写错误开始,或者为现有的开源 NPU 驱动(如 Sophgo, StarFive, Etinix 等厂商已上游化的驱动)添加一个缺失的 IOCTL 支持或优化一个算子,都是伟大的第一步。在 2026 年的 Linux Kernel (v6.12+) 中,NPU 驱动不再是孤立的字符设备,而是深度集成在 DRM 和 DMA-BUF 生态中,实现了与 GPU 类似的资源管理和调度能力。内核驱动必须提供清晰的 UAPI (User API),通常定义在。Step 4: 合并 (Merge)

amy_mhd的博客 67

软件并行模型--多核系列之二

网络多核处理器硬件的设计都与并行处理相关,包括通常核间并行、核内部并行、核与协处理器的并行。如何组织核间并行以及核与协处理器的并行是网络处理器并行模型研究的重点。在硬件并行的基础上,软件的处理就是要充分利用处理任务间的彼此独立性,将不同的任务同时交给不同的硬件单元来处理。 通常,一个网络应用程序可分为三个逻辑层面:控制层、数据处理层和管理层。从网络处理器所面向的处理任务看,不同的处理层面并行特性

brfeng的专栏 1095

智能能效管家:基于 ESP32 的智能插座设计与精细化功耗管理实现

针对传统插座无法远程控制、功耗监测缺失、能源浪费严重等问题,本文设计一款基于 ESP32 主控芯片的智能插座。该系统集成 WiFi 无线通信、交流功耗采集、继电器通断控制模块,实现四大核心功能。硬件采用模块化选型与安全接线设计,软件基于 Arduino-ESP32 框架开发,搭载 Mqtt 通信协议与功耗算法,可通过手机 / 云端实时管控设备,有效提升用电安全性与能源利用率。:ESP32;智能插座;功耗管理;远程控制;能耗监测。

weixin_42300449的博客 101

ARM介绍及其体系结构

概括起来,ARM具有以下三种含义:① ARM是一家公司的名称,1991年成立于英国剑桥,是一个在全球半导体行业技术领先的公司,其主要业务是设计16位和32位嵌入式处理器。② ARM是一项技术的名称,是一种Advanced RISC Machines 32位RISC(精简指令集)处理器体系结构,就像8086架构是一种CISC体系结构一样。③ ARM是一类微处理器芯片或产品的统称,是采用ARM技术开发的RISC处理器的统称。

2401_85409229的博客 2347

[Dify实战] 在 Dify 官网环境使用 File Translator 插件实现 Office 文档翻译(支持 DOCX/XLSX/PPTX)

摘要:Dify平台的FileTranslator插件可实现Office文档一键翻译,保留原格式和结构。该插件支持Word、Excel、PPT等文件格式,无需额外密钥,直接复用Dify配置的大模型。安装后,用户可在Workflow中调用插件,设置目标语言等参数完成翻译。输出文件自动命名,保留原格式。适用于跨国协作、海外营销等场景,显著提升多语言办公效率。该插件简化了文档翻译流程,是企业用户和开发者的实用工具。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 544

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

基于多核处理器的RTOS多核扩展分析与研究

本文是我写得一篇关于RTOS SMP扩展的硕士论文,希望对有志于了解RTOS-SMP工作机制的兄弟们提供些许帮助,O(∩_∩)O~。 一直以来人们通过提高主频来提升微处理器的性能,但是高功耗制约着主频的进一步提升,这种矛盾在仅依靠电池供电的嵌入式设备上表现的尤为突出。多核处理器将多个较低主频的处理核心集成到一个芯片内部,通过提高IPC(Instruction Per Clock)来提升处...

kunkliu的博客 4067

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

[Windows编程] Windows 7 对多核的支持

Windows 7 和 Windows Server 2008 R2 一个重要更新是增强了对多核的支持。 现已可以支持超过64个逻辑处理器(也就是所谓的“核”),并且引入了NUMA 技术, 大幅度提高多核运算的性能。  传统的多核运算是使用SMP(Symmetric Multi-Processor )模式:将多个处理器与一个集中的存储器和I/O总线相连。所有处理器只能访问同一个物理存储器,

IE浏览器开发 5037

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ARM体系概述

ARM是全球领先的半导体IP供应商,提供RISC架构处理器设计授权。其核心产品线包括面向应用的Cortex-A、实时处理的Cortex-R和微控制器Cortex-M系列。ARM处理器采用精简指令集(RISC),具有固定指令长度、多寄存器、条件执行等特性。典型ARM系统包含处理器核心、电源、时钟、存储器(Flash/RAM)及外设等基本组件。处理器内部架构由ALU、寄存器组、程序状态寄存器(CPSR/SPSR)、存储管理单元(MMU)和缓存等模块构成。片上系统(SoC)通过AHB/APB总线集成CPU、存储控

2302_81380622的博客 906

多核和多CPU编程——基础硬件说明

一、硬件的发展 CPU的发展在经过了摩尔定律的快速迭代后,有了长足的进步。但俗话说的好,一个好汉三个帮,单体的CPU发展,最终还是遇到了瓶颈。无论是超标量还是流水设计,都无法超越此瓶颈。从实际情况来看,多CPU要比多核出现的早,毕竟多CPU要比多核好设计架构一些。而随后,在单个芯片上集成多个CPU核心(CMP)也就是常说的多核技术开始迅速发展起来。 现代的多核心处理器,是一种内存共享的技术,CPU一般为对称状态,所以叫做共享存储的对称多处理器(SMT,symmetric multi-processor)。多

fpcc的专栏 1654

CPU,多核,多线程,并发,并行,计算效率

计算机原理:CPU、并发、并行、多核、多线程、多进程0、计算机工作流程0.0 基础概念:计算机组成0.1 CPU(Central Processing Unit)(1)控制单元(2)运算单元(3)存储单元:0.2 计算机总线(Bus)0.3计算机工作流程1、线程和进程1.0 前提了解1.1进程(process):1.2 线程(thread)1.3 进程和线程的区别与联系1.4多线程和多进程一、什么是多线程?二、多进程三、多线程与多进程,选择谁?2、 多核,高并发,并行2.1 多核2.1.1 物理CPU多核2

rs_gis的博客 1万+

顺序性,一致性,原子性:现代多核体系结构与原子操作·CAS与自旋锁·自旋锁与并发编程的原语·语句原子性和编程逻辑的原子性·行锁与数据库事务原子性·binlog与数据库同

顺序性: 乱序执行·逻辑正确性 现代体系结构的每一个核的指令流水是乱序执行的,但是他能够保证其执行效果等同于顺序执行。 一致性: 各核及线程缓存·volatile 各核缓存及线程缓存不一致是影响并发并行计算正确性的一大问题。 如果上层编程逻辑需要使他们可见的值保持一致,则可以引入volatile。 原子性: 1 多核体系

一地鸡毛 2141
上一篇: kernel_debug
下一篇: 软件并行模型--多核系列之二
brfeng
博客等级 码龄20年 4粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值