计算机组成原理学习笔记(上)

计算机系统概论

计算机发展历程

原始计算工具
中国人的智慧之光
机械式计算机
西方人的智慧
机电式计算机
电子计算机
1,最古老的计算工具:算筹
2,冈特计算尺
3,达芬奇机械式计算机
4,1642年 PASCAL(1623) 加法机
法国数学家、物理学家和思想家
人类史上第一台机械式计算机,其原理对后续计算机产生了持久的影响。
齿轮传动完成运算。
5,Pascal 机械加法机 1642
6,1673年,德国数学家莱布尼兹发明乘法机
7,1805 Jacquard
8,1821年,英国数学家巴贝奇发明差分机,专门用于航海和天文计算。可处理3个5位数,计算精度达到6位小数。
9,三个具有现代意义的装置
保存数据的寄存器
齿轮式装置
乘法以累次加来实现
控制操作顺序,数据选择,结果输出
10,1888年赫尔曼发明了制表机,它采用穿孔卡片进行数据处理,并用电气控制技术取代了纯机械装置。
11,1904年,英国人弗莱明发明真空电子二极管
电子管的诞生,是人类电子文明的起点
1938年朱斯的Z系列计算机
1943年英国“巨人”计算机 Colossus
1944年,美国科学家艾肯在IBM的支持下,研制成功机电式计算机MARK-I
1939年,阿塔纳索夫设计并试制数字电子计算机的样机“ABC机”。其设计方案启发了ENIAC开发小组的莫克利,并直接影响到ENIAC的诞生
ENIAC(Electronic Numerical Integrator And Computer),美国宾夕法尼亚大学1946年研制成功,世界上第一台电子数字计算机

现代计算机理论基础

布尔代数
计算机三原则
图林机
维纳现代计算机五大原则
计算机开关电路
冯诺依曼计算机原理
1,1847和1854年,英国数学家布尔发表了两部重要著作《逻辑的数学分析》和《思维规律的研究》,创立了逻辑代数。
逻辑代数系统采用二进制,是现代电子计算机的数学和逻辑基础。
2,1936年,24岁的英国数学家图林发表著名论文《论可计算数及其在密码问题的应用》,提出了“理想计算机” “图林机”
图林通过数学证明得出理论上存在“通用图林机”,这为可计算性的概念提供了严格的数学定义,图林机成为现代通用数字计算机的数学模型,它证明通用数字计算机是可以制造出来的
现代通用数字计算机的数学模型
1940年著名论文《计算机能思考吗?》,对人工智能进行了探索,并设计了著名的“图林测验”。
1954年图林英年早逝,年仅42岁。
3,1940年 维纳现代计算机五原则
美国科学家维纳阐述了现代计算机的五点设计原则
数字式而不是模拟式
以电子元件构成并尽量减少机械装置
采用二进制而不是十进制
内部存放计算表
内部存储数据。
4,1954年美国贝尔实验室于研制成功第一台使用晶体管的第二代计算机TRADIC。相比采用定点运算的第一代计算机,第二代计算机普遍增加了浮点运算,计算能力实现了一次飞跃。
IBM1958年制成的1401及后续的1410/1440系列计算机,是第二代计算机中的代表
5,计算机的发展日新月异
从CPU的发展来看
4004->8008->8086->8088->80186->80286->80386->80486-586->pentium->PII->PIII->P4->Core2
从计算机的规模,运算速度上看,
巨型机、大型机、中型机、小型机、微型机、单片机
6,近100年技术的变革
①机械计算机, 19世纪
齿轮, 链条, 滑轮, 蒸汽机
穿孔卡片
②机电计算机, 20世纪早期
开关,继电器
水银延迟线
③电子计算机, 20世纪中期开始至今
线路连接板, 真空管, CRT,晶体管
DRAM, 磁存储
7,我国计算机技术的发展
1953年开始,1958年研究出第一台计算机103型通用计算机。
50年来相继研究出了第二代,第三代计算机。
80年代研究出了每秒1亿次的巨型机,银河I,II,其他如曙光天演
1985年6月,中国第一台自行研制的微机长城0520研制成功
广告词:“一台我们自己制造的能够处理中文的电脑”。
高性能计算,并行计算上已紧跟国际先进水平,但计算机的核心部件CPU技术还远远落后。
中科院研究开发的龙芯/GODSON

计算机系统组成

1,冯诺依曼思想
①存储程序:将程序存放在计算机的存储器中,(存储系统构建与快速访问 )
②程序控制: 按指令地址访问存储器并取出指令,经译码依次产生指令执行所需的控制信号,实现对计算的控制,完成指令的功能。 (指令系统、控制器设计等
2,存储程序、程序控制、计算机五大功能部件
cpu:运算器,控制器
host:存储器
外围设备:输入设备(键盘,鼠标等),输出设备(打印机)
运算器完成算术运算,逻辑运算
控制器控制指令的执行,根据指令功能给出实现指令功能所需的控制信号
主存储器存放程序及数据
输入设备、输出设备
总线(地址总线,数据总线,控制总线)
3,硬件:对数字操作的机器系统
数字硬件:
对数字进行处理、传输、和存储的硬件
转换硬件:
将各种形式的信息转换为数字信息,或者将数字信息转换为各种形式的硬件(图像、声音、文字输入输出设备,目前重要的设备是显示器
4,计算机软件系统
计算机硬件是载体,软件是灵魂。
互相依存:计算机系统必须配备完善的软件系统,软件应充分发挥硬件的功能
逻辑等效性:某些功能既可由硬件实现,也可由软件来实现
协同发展:软件随硬件技术的迅速发展而发展,而软件的不断发展善又促进硬件更新
软件:一切程序的集合,可运行的思想和内容的数字化
变现形式:程序和数据
系统软件、应用软件
固件(Firmware)
具有软件功能,具有硬件形态的部件
5,操作系统(Operating Systems)
系统软件:用来简化程序设计,简化使用方法,提高计算机的使用效率,发挥和扩大计算机的功能及用途。它包括以下四类:
①各种服务性程序
如诊断程序、排错程序、练习程序等。
②语言程序
如汇编程序、编译程序、解释程序等。
③操作系统
④数据库管理系统
6,编程语言的发展
手编程序:机器语言程序,手工编译二进制码。
汇编程序:符号语言程序,汇编语言汇编。
高级程序:算法语言/高级语言,机器编译程序/解释程序。
7,计算机系统的层次结构
在这里插入图片描述

计算机系统性能评价

1,非时间指标
机器字长
总线宽度
主存容量、存储带宽
CPU内核数
2,时间指标
主频、周期、外频、倍频
CPI、IPC
MIPS、MFLOPS
CPU执行时间
3,机器字长: 机器一次能处理的二进制位数
由运算器、寄存器的位数决定;
一般与内部寄存器的位数相等;
字长决定数据表示范围与精度;
目前常见的有32位和64位字长
4,总线宽度:数据总线一次能并行传送的最大信息位数
运算器与存储器之间的数据总线位数。
有些计算机内部与外部数据总线宽度不一致:
8086、80286、80386内外数据总线等宽;
Pentium外总线64位,内总线32位(两条32位流水线)
5,主存容量与存储带宽
主存容量:是指一台计算机主存所包含的存储单元总数。
存储带宽: 指单位时间内与主存交换的二进制信息量,单位Byte/s。
(影响存储带宽的指标包括数据位宽和数据传输速率)。
6,cpu时间指标
频率,时钟周期,外频,倍频
CPI (Clock cycles Per Instruction)
ADD MOV DIV MUL 定点/浮点指令
IPC (Instructions Per Clock cycle)
强调并行
MIPS / MFLOPS
CPU时间
7,主频f
CPU工作的时钟频率,与CPU运算能力之间不是唯一的、直接关系;
时钟周期T = 1/f
计算机中最基本的、最小的时间单位。一个时钟周期CPU仅完成一个最基本的动作;
外频
系统总线的工作频率,CPU与主板之间同步运行的速度,标准外频66MHz、100MHz、133MHz、200MHz、400MHz
倍频
主频=外频×倍频 , Pentium 4 2.4G 主频 2400M = 133M (外频) × 18 (倍频)
调整倍频可以获得较高的主频,486后出现的技术,使得外设低频,CPU高频
8,CPI (Clock cycles Per Instruction)
执行一条指令 (平均) 需要的时钟周期数
单条指令CPI
一段程序中所有指令的CPI
指令系统CPI
CPI = 一段程序中所有指令的时钟周期数之和 / 指令条数 //统计
= 程序中各类指令的CPI  程序中该类指令的比例 //加权
9,MIPS (Million Instructions Per Second)
表示每秒钟执行指令的条数 (以百万条为单位)
在这里插入图片描述
在这里插入图片描述

10,MFLOPS (Million Floating-Point Operations Per Second)
计算机每秒钟执行浮点操作的次数
MIPS:单位时间内执行的指令条数
MFLOPS = 程序中的浮点运算次数 / (执行时间  106 )

MFLOPS (Mega) = 106 FLOPS GFLOPS (Giga) = 109 FLOPS
TFLOPS (Tera) = 1012 FLOPS PFLOPS (Peta) = 1015 FLOPS
EFLOPS (Exa) = 1018 FLOPS
11,cpu执行
执行一段程序所需的时间:
( CPU时间 + I/O时间 + 存储访问时间 + 各类排队时延等)
CPU时间 = 程序中所有指令的时钟周期数之和 *T
=程序中所有指令的时钟周期数之和 / f
CPU 时间 = CPI * 指令条数 * 时钟周期
CPU 时间 = 指令条数 / (MIPS * 106)
在这里插入图片描述
12,关键时间指标
实际上频率和IPC真正决定CPU性能
CPU性能=IPC × 频率 (MHz时钟速度)
由英特尔提出并被业界广泛认可
主频为800MHz的安腾处理器 & 1800MHz的奔腾4处理器
企业服务器与台式机CPU
13,时间指标的应用思考
在这里插入图片描述
14,计算机性能测试
①性能测试原理
计算机中配置了大量传感器和状态寄存器
通过读取相应寄存器的值得到系统运行的状况
通过实际运行测试关键指标获取性能数据
②性能测试工具分类
CPU测试工具
显卡测试工具
磁盘测试工具
内存测试工具
15,cpu测试工具
CPUmark : 综合CPU测试,包括系统存储,浮点运算和逻辑运算;
**SysID **: 测试CPU电压,运行频率,L1 、L2 Cache等参数;
**Hot CPU Tester **:可测试机器稳定性,尤其是超频后的稳定性,找出 CPU 的最高超频点或缺陷,还可检测CPU的详细性能指标并给出量化的分数值。包括「复杂矩阵」「排序算法」「快速傅立叶变换」「CPU 缓存」「内存」「硬盘」及指令集等。另外其CPU/Mem Burn-in)还可以作为新购机时的烤机软件来使用。
16,显卡测试工具
3DMark: 除衡量显卡性能外,已渐渐转变成一款衡量整机性能的软件;已发行3Dmark99、3Dmark 11和The new 3DMark等近10个版本;
N-Bench2: 重点测试CPU以及系统图形性能;
FurMark:通过皮毛渲染算法来衡量显卡的性能及其稳定性,提供了全屏/窗口、预定分辨率、基于时间或帧的测试、多种多重采样反锯齿、竞赛等多种模式。
17,内存测试工具
CTSPD :选择主板厂商及型号后可详细测试内存的信息,包括:CAS latency (列地址选通时延)、RAS to CAS delay(RAS到CAS的相对延迟时间)、RAS precharge Trp (RAS预充电时间)、DIMM内存生产厂商和DIMM编号等信息。
Memory Speed: 通过读写不同大小的块状数据来测试内存的性能;
**Memory Transfer Timing Utility **:通过对源文件和目标文件进行校正和非校正复制,测试内存的读、写速率;
18,计算机性能测试Benchmark
用基准程序来评测计算机的性能
专门用来进行性能评价的一组程序,运行实际负载来反映性能
最好的基准程序是用户实际使用的程序或典型的简单程序
基准程序的缺陷
基准程序性能与某段短代码密切相关时,会被利用以得到不当的性能评测结果,硬件系统设计人员或编译器开发者针对这些代码片段进行特殊的优化,使得执行这段代码的速度非常快
Intel Pentium处理器运行SPECint时用了公司内部使用的特殊编译器,使其性能极高
矩阵乘法程序SPECmatrix300有99%的时间运行在一行语句上,有些厂商用特殊编译器优化该语句,使性能达VAX11/780的729.8倍!
19,性能测试程序
计算机综合测试程序
SPEC
定点运算性能测试
Dhrystone 测试编译器和CPU定线运算性能 C语言编写
浮点运算性能测试
LinPack 求解密集线性代数方程组程序包
Whetstone 浮点+定点 Fortran编写
数据库性能测试
TPC TPC不给出基准程序的代码,而只给出基准程序的标准规范
测试者可以根据规范,最优地构造出自己的测试系统(测试平台和测试程序)
并行运算测试 NPB

运算方法和运算器

数据与文字的表示方法

1,计算机中使用的数据可分成两大类:
符号数据:非数字符号的表示(ASCII、汉字、图形等)
数值数据:数字数据的表示方式(定点、浮点)
计算机数字和字符的表示方法应有利于数据的存储、加工(处理)、传送;
编码:用少量、简单的基本符号,选择合适的规则表示尽量多的信息,同时利于信息处理(速度、方便)
2,定点表示法
所有数据的小数点位置固定不变。
纯小数 :当约定小数点的位置固定在最高有效数值位之前,符号位之后。
纯整数 :当约定小数点的位置固定在最低有效数值位之后。
3、定点表示法的特点
定点数表示数的范围受字长限制,表示数的范围有限;
定点表示的精度有限;
机器中,常用定点纯整数表示。
4,浮点数所表示的范围远比定点数大。
一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择。而单片机中多采用定点表示。
5,浮点数:简单的说就是小数点不固定的数。
也就是数的小数点位置随比例因子的不同,而在一定范围内自由浮动。
6,浮点数的规格化表示:格式: N=R^E.M
R:基数R,取固定的值,比如10或2,隐含表示 E:指数 M:尾数
(1.75)10 = 0.111 × 2^1
= 0.0111 × 2^2
= 1.11 × 20^0(规格化表示)

(我的理解:指数E为正数则小数点可以往右移动E个位置,指数为负数的话就往左移)
当尾数的值不为0时,尾数域的最高有效位应为1,这称为浮点数的规格化表示。

IEEE754标准(规定了浮点数的表示格式,运算规则等)

规则规定了单精度(32)和双精度(64)的基本格式.
规则中,尾数用原码,指数用移码(便于对阶和比较)
1,IEEE754标准
基数R=2,基数固定,采用隐含方式来表示它。
32位的浮点数:S E M+000……
S是数的符号位,1位,在最高位,“0”表示正数,“1”表示负数。
M是尾数, 23位,在低位部分,采用纯小数表示
E是阶码,8位,采用移码表示。移码比较大小方便。

2,一个规格化的32位浮点数x的真值表示为
x=(-1)S×(1.M)×2e
e=E-127
3,64位的浮点数中符号位1位,阶码域11位,尾数域52位,指数偏移值是1023。因此规格化的64位浮点数x的真值为:
x=(-1)S×(1.M)×2e
e=E-1023
例题:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数的机器码表示

真值:一般书写的数
机器码:机器中表示的数, 要解决在计算机内部数的正、负符号和小数点运算问题。
1,正数的反码补码都是自身,负数的反码除符号位不变其他位取反,复数的补码在反码的基础上末位再加一
2,定义:正数的补码就是正数的本身,负数的补码是原负数加上模。
负数的补码等于符号位不变,其它位取反最后一位再加一
3,公式:[x-y]补=[x]补 - [y]补 = [x]补 + [-y]
4,例题
x=+122,y=-122,求[x]原、[x]反、[x]补、[y]原、[y]反、 [y]补。
解:x=(+122)10=(+1111010)2
y=(-122)10=(-1111010)2
[x]原=01111010, [x]反=01111010, [x]补= 01111010
[y]原=11111010, [y]反=10000101, [y]补=10000110
5,身份证的秘密
在这里插入图片描述
6,数据校验基本原理
解决编码在时间、空间上传输可靠性问题。
编码中引入一定冗余,增加最小码距,使编码符合某种规则,当编码出现一个或多个错误时变成非法代码(不符合规则)。
奇偶信息的校验
编码中1的个数的奇偶性
海明校验
多校验组的奇偶性,检错码为出错位。
CRC 循环冗余校验
编码能被生成多项式整除,余数循环。
7,码距概念
码距:任意两个合法编码间不同的二进制位数 最小码距
码距越大,抗干扰能力、纠错能力越强,数据冗余越大,编码效率越低。
选择码距应考虑信息出错概率
和系统容错率。
奇偶校验 最小码距为2
海明码 最小码距为3
8,奇偶校验码:
由若干位的有效信息,加上一个二进制位组成奇偶校验码。校验位的取值将使这个校验码中的1的个数为奇数或者偶数。
奇校验:校验码中1的个数为奇数。
偶校验:校验码中1的个数为偶数。
码距等于2,可以检测出一位错误,但是不能确定出错位置。
主要用于并行数据的传输和存储中。
9,奇偶校验
一个校验位
只能检错,无法纠错
10,海明码
多个奇偶校验组
既能检错,也能纠错
最小码距为3
11,海明码特点
编码效率高:数据增加一倍,校验位只增加一位。
可纠正一位错。
50年代发明时用于自动处理穿孔卡片的故障。
现在普遍用于ECC DRAM芯片
RAID2,卫星通讯。
12,CRC循环冗余校验码 Cyclic redundancy check
编码规则:编码可被生成多项式整除。
模2除法,余数为0(高概率正确),否则出错。
用于多位串行数据传送中的检错纠错处理。能自动改错。
在这里插入图片描述

定点加法减法运算

1,补码减法
公式:[x-y]补=[x]补 - [y]补 = [x]补 + [-y]补
2,[x]补变成[-x]补
符号位若为0则变1,若为1则变为0,,其他位全部取反,最后再加1

3,溢出的概念
可能产生溢出的情况
两正数加,变负数,正溢(大于机器所能表示的最大数)
两负数加,变正数,负溢(小于机器所能表示的最小数)
4,溢出检测方法
①、双符号位法(变形补码)
[x]补 = 2n+2 + x   ( mod 2n+2 )
Sf1 Sf2
0 0 正确(正数)
0 1    正溢
1 0    负溢
1 1 正确(负数)
Sf1 表示正确的符号,逻辑表达式为V=Sf1 ⊕ Sf2,可以用异或门来实现
5,例题:
x=-1100 , y=-1000 , 求 x+y 。
解: [x]补 = 110100 , [y]补 = 111000
    [x]补   1 1 0 1 0 0 
+    [y]补   1 1 1 0 0 0
 ————————————————    
  [x+y]补   1 0 1 1 0 0 (表示负溢)
∴ 结果溢出

存储系统

存储器的分类

按存储介质分
按存取方式分
按读写功能分
按信息的可保存性分
按在计算机系统中的作用分
1,按存储介质分
半导体存储器
双极型存储器 MOS存储器
速度快、功耗低
磁存储器
磁芯、磁带、磁盘
容量大,速度慢、体积大
激光存储器
CD-ROM CD-RW CD-R
DVD-ROM DVD-RW DVD-R
便于携带,廉价,易于保存
2,按存取方式分
随机存储器
存取时间与物理位置无关
磁芯、半导体存储器
顺序存储器
存取时间与物理位置有关
磁盘、磁带、激光存储器
3,按读写功能分
只读存储器 (ROM)
存储器内容是预置的,固定的,无法改写
读/写存储器
既能读出也能写入的存储器
随机存储器RAM
4,按信息的可保存分
易失性存储器 Volatile Memories
断电后信息消失
SRAM
DRAM
非易失性存储器Non-Volatile Memories
断电后仍能保存信息
磁存储器、激光存储器、NVRAM
5,按在计算机系统的作用分
主存储器
辅助存储器
高速缓冲存储器 Cache
控制存储器

6,存储系统主要技术指标
存储时间
接受到读写命令到从存储器中读出或写入信息所经历的时间
存储周期
连续两次访问存储器所需要的最小时间间隔
存储器带宽
单位时间内存储器存取的信息量
单位:Byte/s
7,存储系统分层结构
在这里插入图片描述
8,主存储器特征由半导体MOS存储器组成
地址,存储周期,存储单元
存储单元(与机器字长有关)
支持不同大小的访问,字节,半字,字
存储地址: 字节, 半字,字地址
mov ah, [8] #按字节访存 ah=0x12
mov ax, [8] #按半字访存 ax=0x3412
mov eax,[8] #按字访存 eax=0x78563412
mov eax,[9] #未对齐,产生异常
9,主存中的数据组织
按边界对齐的方式存储数据
int i, short k, double x, char c, short j
int (4字节) short (2字节) double (8字节) char (1字节)
short按16位对齐, int按32位对齐,double按64位对齐

对齐可提升访问数据的速度,不对齐可节约空间

随机存储器

RAM可分为静态存储器(Static Random Access Memory,SRAM)和动态存储器 (Dynamic Random Access Memory,DRAM)。

静态随机存储器(SRAM)

SRAM中的存储单元相当于一个锁存器,只有0,1两个稳定状态;
DRAM则是利用电容存储电荷来保存0和1两种状态,因此需要定时对其进行刷新,否则随着时间的推移,电容其中存储的电荷将逐渐消失。
1,对比
SRAM:读写速度快,生产成本高,多用于容量较小的高速缓冲存储器。
DRAM:读写速度较慢,集成度高,生产成本低,多用于容量较大的主存储器。
SRAM DRAM
存储信息 触发器 电容
破坏性读出 非 是
需要刷新 不要 需要
送行列地址 同时送 分两次送
运行速度 快 慢
集成度 低 高
发热量 大 小
存储成本 高 低
2,基本的静态存储元阵列在这里插入图片描述
2,32K×8位SRAM结构图和逻辑图
在这里插入图片描述
3,基本的SRAM逻辑结构
存储体(256×128×8)
通常把各个字的同一个字的同一位集成在一个芯片(32K×1)中,32K位排成256×128的矩阵。8个片子就可以构成32KB。
地址译码器
采用双译码的方式(减少选择线的数目)。
A0~A7为行地址译码线
A8~A14为列地址译码线
①地址线,(本例中有6条)指定了存储器的容量2^6=64个存储单元
②数据线,即I/O线,本例中有四条说明存储器的字长时4位,因此存储位元的总线式64×4=256
③控制线,本例中R/W控制线,它指定了对存储器进行读,还是进行写,读写操作不会同时发生
4,读与写的互锁逻辑
控制信号中CS是片选信号,CS有效时(低电平),门G1、G2均被打开。OE为读出使能信号,OE有效时(低电平),门G2开启,当写命令WE=1时(高电平),门G1关闭,存储器进行读操作。写操作时,WE=0,门G1开启,门G2关闭。注意,门G1和G2是互锁的,一个开启时另一个必定关闭,这样保证了读时不写,写时不读。
5,如何提高存储密度
去掉两个负载管
提升存储密度
减少功耗
降低成本
增加两个电容缓存电荷
电容不能永久保存电荷
增加额外电路补充

动态随机存储(DRAM)

DRAM存储原理
利用电容电荷存储数据
电容不能永久保存电荷
必须增加额外电路补充
1,刷新:定期补充电荷以避免电荷泄露引起的信息丢失
电容存在泄露电流
刷新周期: 存储器两次完整刷新之间的时间间隔
信息存储到泄漏之间必须完成刷新,称为最大刷新周期
按行刷新
存储体采用双译码结构,刷新地址计数器给出刷新行地址
刷新方式
CPU与刷新控制器对DRAM的争用问题
集中式、分散式、异步式
①集中式刷新
每一个刷新周期中几中一段时间对DRAM的所有行进行刷新。刷新周期分为两部分:前一段时间进行正常的读/写操作;后一段时间作为集中刷新操作时间
②分散式刷新
每一行的刷新操作均被均匀的分配到刷新周期时间内
2,例题1
利用1M×4位的SRAM芯片,设计一个存储容量为1M×8位的SRAM存储器。
解:所需芯片数量=(1M×8)/(1M×4)=2片
利用256K×8位的SRAM芯片设计2048K×8位的SRAM存储器。
解:所需芯片数d=(2048K×8)/(256K×8)=8(片)
下一篇链接计算机组成原理学习笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

祈愿lucky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值