《计算机组成原理》(第3版)第4章 存储器 复习笔记

news2025/1/11 5:39:36

第4章 存储器

一、概述

(一)存储器分类
1.按存储介质分类
(1)半导体存储器;
(2)磁表面存储器;
(3)磁芯存储器;
(4)光盘存储器。
2.按存取方式分类
(1)随机存储器(Random Access Memory,RAM);
(2)只读存储器(Read Only Memory,ROM);
(3)串行访问存储器。
3.按在计算机中的作用分类
(1)主存储器;
(2)辅助存储器;
(3)缓冲存储器。
(二)存储器的层次结构
在这里插入图片描述
图4-1 存储器速度、容量和位价的关系
存储系统层次结构主要体现在缓存-主存和主存-辅存这两个存储层次上,如图4-2所示。
在这里插入图片描述
图4-2 缓存-主存层次和主存-辅存层次

二、主存储器

(一)概述
主存的实际结构如图4-3所示。
在这里插入图片描述
图4-3 主存的基本组成
1.主存中存储单元地址的分配
主存各存储单元的空间位置是由单元地址号来表示的,而地址总线是用来指出存储单元地址号的,根据该地址可读出或写入一个存储字。
在这里插入图片描述
图4-4 字节寻址的主存地址分配
2.主存的技术指标
(1)存储容量
存储容量是指主存能存放二进制的总位数,即存储容量=存储单元个数×存储字长。
(2)存储速度
存储速度是由存取时间和存取周期来表示的。
(3)存储器带宽
它表示单位时间内存储器存取的信息量,单位可用字/秒或字节/秒或位/秒表示。为了提高存储器的带宽,可以采用以下措施:
①缩短存取周期;
②增加存储字长,使每个存取周期可读/写更多的二进制位数;
③增加存储体。

(二)半导体存储芯片简介
1.半导体存储芯片的基本结构
半导体存储芯片采用超大规模集成电路制造工艺,在一个芯片内集成具有记忆功能的存储矩阵、译码驱动电路和读/写电路等,如图4-5所示。
在这里插入图片描述
图4-5 存储芯片的基本结构
2.半导体存储芯片的译码驱动方式
半导体存储芯片的译码驱动方式有两种:线选法和重合法,如图4-6和图4-7所示。
在这里插入图片描述
图4-6 16×1字节线选法结构示意图
在这里插入图片描述
图4-7 1K×1位重合法结构示意图

(三)随机存取存储器
随机存取存储器按其存储信息的原理不同,可分为静态RAM和动态RAM两大类。
1.静态RAM(Static RAM,SRAM)
(1)静态RAM基本单元电路
图4-8是一个由6个MOS管组成的基本单元电路。
在这里插入图片描述
图4-8 静态RAM的基本单元电路
2.动态RAM(Dynamic RAM,DRAM)
(1)动态RAM的基本单元电路
常见的动态RAM基本单元电路有三管式和单管式两种,它们的共同特点都是靠电容存储
电荷的原理来储存信息。
(2)动态RAM时序
动态RAM的行、列地址是分别传送的,因此分析其时序时,应特别注意RAS、CAS与地址的关系。
(3)动态RAM的刷新
刷新的过程实质上是先将原存信息读出,再由刷新放大器形成原信息并重新写入的再生过程
①集中刷新
集中刷新是在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作。
在这里插入图片描述
图4-9 集中刷新时间分配示意图
②分散刷新
在这里插入图片描述
图4-10 分散刷新时间分配示意图
③异步刷新
异步刷新是前两种方式的结合,它既可缩短“死时间”,又充分利用最大刷新间隔为2ms的特点。
在这里插入图片描述
图4-11 异步刷新时间分配示意图
3.动态RAM与静态RAM的比较
(1)动态RAM的应用比静态RAM要广泛得多。其原因如下:
①在同样大小的芯片中,动态RAM的集成度远高于静态RAM,如动态RAM的基本单元电
路为一个MOS管,静态RAM的基本单元电路可为4~6个MOS管;
②动态RAM行、列地址按先后顺序输送,减少了芯片引脚,封装尺寸也减少;
③动态RAM的功耗比静态RAM小;
④动态RAM的价格比静态RAM的价格便宜。
随着动态RAM容量不断扩大,速度不断提高,它被广泛应用于计算机的主存。
(2)动态RAM也有缺点:
①由于使用动态元件(电容),因此它的速度比静态RAM低;
②动态RAM需要再生,故需配置再生电路,也需要消耗一部分功率。

(四)只读存储器
1.掩模型ROM,如图4-12所示。
在这里插入图片描述
图4-12 1K×l位的MOS管掩模ROM
2.PROM
PROM是可以实现一次性编程的只读存储器。
3.EPROM
EPROM是一种可擦除可编程只读存储器。它可以由用户对其所存信息作任意次的改写。

(五)存储器与CPU的连接
1.存储容量的扩展
(1)位扩展,可以扩展存储器的地址;
(2)字扩展是指增加存储器字的位数。

(六)存储器的校验
表4-1表示使用汉明码代码长度与检测位位数的关系。
在这里插入图片描述
表4-1 汉明码长度与检测位位数的关系

(七)提高访存速度的措施
1.单体多字系统;
2.多体并行系统;
3.高性能存储芯片。

三、高速缓冲存储器

(一)概述
1.问题的提出
(1)在多体并行存储系统中,由于I/0设备向主存请求的级别高于CPU访存,这就出现了CPU等待I/0设备访存的现象,致使CPU空等一段时间,甚至可能等待几个主存周期,从而降低了 CPU的工作效率。为了避免CPU与I/0设备争抢访存,可在CPU与主存之间加一级缓存(参见图4-3),这样,主存可将CPU要取的信息提前送至缓存,一旦主存在与I/O设备交换时,CPU可直接从缓存中读取所需信息,不必空等而影响效率。
(2)从另一角度来看,主存速度的提高始终跟不上CPU的发展。所以出现了高速缓存Cache来解决主存与CPU速度的不匹配问题。Cache的出现使CPU可以不直接访问主存,而与高速Cache交换信息。
2.Cache的工作原理
Cache的容量与块长是影响Cache效率的重要因素,通常用“命中率”来衡量Cache的效率。命中率是指CPU要访问的信息已在Cache内的比率。
在一个程序执行期间,设Nc为访问Cache的总命中次数,Nm为访问主存的总次数,则命中率h为:
  h = N e N e + N m   \ h =\frac{N_e}{N_e+N_m}\  h=Ne+NmNe 
设tc为命中时的Cache访问时间,tm为未命中时的主存访问时间,l-h表示未命中率,则Cache一主存系统的平均访问时间ta为ta=htc+(1-h)tm
用e表示访问效率,则有
  e = t e t a ∗ 100 % = t e h t e + ( 1 − h ) t m ∗ 100 % \ e =\frac{t_e}{t_a}*100\% =\frac{t_e}{ht_e+(1-h)t_m}*100\%  e=tate100%=hte+(1h)tmte100%
3.Cache的基本结构
Cache的基本结构原理框图如图4-13所示。
在这里插入图片描述
图4-13 Cache的基本结构原理框图
它主要由Cache存储体、地址映射变换机构、Cache替换机构组成。
(1)Cache存储体
Cache存储体以块为单位与主存交换信息,为加速Cache与主存之间的调动,主存大多采用多体结构,且Cache访存的优先级最高。
(2)地址映射变换机构
地址映射变换机构是将CPU送来的主存地址转换为Cache地址。
(3)替换机构
当Cache内容已满,无法接受来自主存块的信息时,就由Cache内的替换机构按一定的替换算法来确定应从Cache内移出哪个块返回主存,而把新的主存块调入Cache。
(4)Cache的读写操作
读操作的过程可用流程图4-14来描述。
①写直达法(Write-through),又称为存直达法(Store-through),即写操作时数据既写入Cache又写入主存。它能随时保证主存和Cache的数据始终一致,但增加了访存次数。
②写回法(Write-back),又称为拷回法(Copy-back),即写操作时只把数据写入Cache而不写入主存,当Cache数据被替换出去时才写回主存。
在这里插入图片描述
图4-14 Cache的读数操作流程
4.Cache的改进
(1)单一缓存和两级缓存;
(2)统一缓存和分立缓存。

(二)Cache-主存地址映射
1.直接映射
每个主存块只与一个缓存块相对应。
在这里插入图片描述
图4-15 直接映射
(1)优点:这种方式的优点是实现简单,只需利用主存地址的某些位直接判断,即可确定所需字块是否在缓存中。
(2)缺点:直接映射方式的缺点是不够灵活,因每个主存块只能固定地对应某个缓存块,即使缓存内还空着许多位置也不能占用,使缓存的存储空间得不到充分的利用。
2.全相联映射
全相联映射允许主存中每一字块映射到Cache中的任何一块位置上,如图4-16所示。这种方式灵活,命中率也更高,缩小了块冲突率。但是这种方式所需的逻辑电路甚多,成本较高。
在这里插入图片描述
图4-16 全相联映射
3.组相联映射
组相联映射是对直接映射和全相联映射的一种折中。
在这里插入图片描述
图4-17 组相联映射

(三)替换策略
1.先进先出(First-In-First-Out,FIFO)算法;
2.近期最少使用(Least Recently Used,LRU)算法;
3.随机法。

四、辅助存储器

(一)概述
1.辅助存储器的特点
辅助存储器作为主存的后援设备又称为外部存储器,简称外存,它与主存一起组成了存储器系统的主存-辅存层次。与主存相比,辅存具有容量大、速度慢、价格低、可脱机保存信息等特点,属“非易失性”存储器。目前,广泛用于计算机系统的辅助存储器有硬磁盘、软磁盘、磁带、光盘等,前三种均属磁表面存储器。
2.磁表面存储器的主要技术指标: 
(1)记录密度
记录密度通常是指单位长度内所存储的二进制信息量。
(2)存储容量
存储容量是指外存所能存储的二进制信息总数量,一般以位或字节为单位。
(3)平均寻址时间
它是平均找道时间tsa和平均等待时间twa之和。
(4)数据传输率
数据传输率是指单位时间内磁表面存储器向主机传送数据的位数或字节数。
(5)误码率
误码率是衡量磁表面存储器出错概率的参数,它等于从辅存读出时,出错信息位数和读出信息的总位数之比。

(二)磁记录原理和记录方式
1.磁记录原理
磁表面存储器通过磁头和记录介质的相对运动完成读/写操作。
2.磁表面存储器的记录方式
磁记录方式又称为编码方式,它是按某种规律将一串二进制数字信息变换成磁表面相应的磁化状态。常用的记录方式有六种,如图4-18所示。
在这里插入图片描述
图4-18 六种磁记录方式的写入电流波形
(1)归零制(RZ);
(2)不归零制(NRZ);
(3)“见1就翻”的不归零制(NRZ1);
(4)调相制(PM);
(5)调频制(FM);
(6)改进型调频制(MFM)。
3.评价记录方式的主要指标
(1)编码效率;
(2)自同步能力。

(三)硬磁盘存储器
1.硬磁盘存储器类型
(1)按磁头的工作方式可分为固定磁头磁盘存储器和移动磁头磁盘存储器;
(2)按磁盘是否具有可换性可分为可换盘磁盘存储器和固定盘磁盘存储器。
2.硬磁盘存储器的结构
(1)磁盘驱动器;(2)磁盘控制器;(3)盘片。
在这里插入图片描述
图4-19 磁盘存储器基本结构示意图
3.硬磁盘存储器的发展动向
(1)半导体盘;
(2)提高磁盘记录密度;
(3)提高磁盘的数据传输率和缩短平均存取时间;
(4)采用磁盘阵列RAID。
4.硬磁盘的磁道记录格式
(1)定长记录格式;
(2)不定长记录格式。

(四)软磁盘存储器
1.概述
(1)软磁盘存储器与硬磁盘存储器的存储原理和记录方式是相同的,但结构上有较大差别:
①软盘转速低,存取速度慢;
②软盘都是活动头,可换盘片结构;
③软盘磁头直接接触盘片进行读/写;
④软盘价格便宜,盘片保存方便、使用灵活、具有互换性;
⑤软盘对环境的要求不苛刻。
(2)软磁盘存储器的种类主要是按其盘片尺寸不同而区分的,现有8英寸、5.25英寸、3.5英寸和2.5英寸几种。
2.软磁盘盘片
图4-20所示为软磁盘盘片及其外形示意图。
在这里插入图片描述
图4-20 软磁盘盘片及外形
软盘分为单面单密度(SS、SD)、双面单密度(DS、SD)、单面双密度(SS、DD)、双面双密度(DS、DD)四种。对于5.25英寸和3.5英寸的磁盘机而言,均采用双面双密度及高密度(四倍密度)的记录方式。
3.软磁盘的记录格式
软磁盘存储器采用软分段格式,软分段格式有IBM格式和非IBM格式两种。
4.软磁盘驱动器和控制器
软磁盘存储器也由软磁盘驱动器、软磁盘控制器和软磁盘盘片3部分组成。

(五)磁带存储器
1.概述
磁带存储器也属于磁表面存储器,记录原理和记录方式与磁盘存储器是相同的。
磁带机正朝着提高传输率、提高记录密度、改善机械结构、提高可靠性等方向发展。
2.数据流磁带机
数据流磁带机是将数据连续地写到磁带上,每个数据块后有一个记录间隙,使磁带机在数据块间不启/停,简化了磁带机的结构,用电子控制替代了机械启/停式控制,降低了成本,提高了可靠性。
3.磁带的记录格式
磁带上的信息可以以文件形式存储,也可以按数据块存储。磁带可以在数据块之间启/停,进行数据传输。按数据块存储的磁带互换性更好。

(六)循环冗余校验码
循环冗余校验(Cyclic Redundancy Check,CRC)码可以发现并纠正信息在存储或传送过程中连续出现的多位错误代码。CRC码是基于模2运算而建立编码规律的校验码。模2运算的特点是不考虑进位和借位的运算。
1.CRC码的编码方法
设待编的信息码组为Dn-1Dn-2…D2D1D0,共n位,它可用多项式M(x)表示:
在这里插入图片描述
将信息码组左移k位,得M(x)·xk,即成n+k位信息码组:
在这里插入图片描述
空出的k位用来拼接k位校验位。
CRC码就是用多项式M(x)·xk除以生成多项式G(x)(即产生校验码的多项式),所得余数作为校验位。为了得到k位余数(校验位),G(x)必须是k+1位。
设所得余数为R(x),商为Q(x),则有M(X)·xk=Q(x)·G(x)+R(x)。
将余数拼接在左移了k位后的信息位后面,就构成了这个有效信息的CRC码。这个CRC码用多项式表示为:
在这里插入图片描述
因此,所得CRC码是一个可被生成多项式G(x)除尽的数码。如果CRC码在传输过程中不出错,其余数必为0;如果传输过程中出错,则余数不为0,再由该余数指出哪一位出错,即可纠正。
2.CRC码的译码和纠错
将收到的循环校验码用约定的生成多项式G(x)去除,如果无错,则余数应为0,如果某一位出错,则余数不为0。不同的出错位其余数也不同,表4-2列出了对应G(x)=1011的出错模式。
表4-2 对应G(x)=1011的循环的出错模式
在这里插入图片描述
注意:从检错和纠错的要求出发,生成多项式应满足以下要求:
①任何一位发生错误,都应该使余数不为零;
②不同位发生错误应使余数不同;
③对余数继续作模2除,应使余数循环。

(七)光盘存储器
1.概述
光盘(Optical Disk)是利用光学方式进行读/写信息的圆盘。光盘存储器是在激光视频唱片和数字音频唱片基础上发展起来的。根据光存储性能和用途的不同,光盘存储器可分为三类。
(1)只读型光盘(CD-ROM);
(2)只写一次型光盘(WORM);
(3)可擦写型光盘。
2.光盘的存取原理
光盘存储器利用激光束在记录表面上存储信息,根据激光束和反射光的强弱不同,可以实现信息的读/写。
3.光盘存储器的组成
光盘存储器与磁盘存储器很相似,它也由盘片、驱动器和控制器组成。
4.光盘存储器与其他辅助存储器的比较
(1)光盘的耐用性好,其使用寿命可长达数十年以上;
(2)光盘可靠性高,对使用环境要求不高,机械振动的问题甚少,不需要采取特殊的防震和防尘措施;
(3)记录密度高,可达108位/平方厘米,约为磁盘的10~100倍;
(4)光盘记录头分量重,体积大,写入速度低;
(5)光盘的介质互换性好,存储容量大,可用于文献档案、图书管理、多媒体等方面的应用。但由于目前价格比较贵,故尚不能替代磁带机。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1987472.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试笔记8.6

缓存 1.如何保证redis与数据库一致性 redis面试:如何保证缓存和数据库数据的一致性?_使用update更新数据,json缓存不更新-CSDN博客 如果先删除缓存,再删除数据库,数据不一致, 解决 删 1.先操作缓存但不删除缓存&…

lambda语法,java8Stream流,maven

lambda语法 Arraylist排序 ArrayList<Integer> a new ArrayList();a.add(1);a.add(2);a.add(3);a.sort(new Comparator<Integer>() {Overridepublic int compare(Integer o1, Integer o2) {return o1-o2;//对集合a中数据进行升序排序}}); 但是这样的书写还是有…

JavaEE: 进程和线程

文章目录 进程线程的概念和区别总结如何创建线程1.继承Thread重写run2.实现Runnable重写run3.继承Thread重写run,通过匿名内部类来实现4. 实现Runnable重写run,通过匿名内部类来实现5.基于lambda表达式来创建 虚拟线程 并发编程: 通过写特殊的代码&#xff0c;把多个CPU核心都利…

Leetcode力扣刷题——182.查找重复的电子邮箱

题目 编写解决方案来报告所有重复的电子邮件。 请注意&#xff0c;可以保证电子邮件字段不为 NULL。 以 任意顺序 返回结果表。 结果格式如下例。 结果 # Write your MySQL query statement below select Email from Person group by email having count(*)>1; 知识点 c…

Java 抽象知识笔记总结(油管)

Java系列文章目录 Java Optional 容器笔记总结 文章目录 Java系列文章目录一、前言二、学习内容&#xff1a;三、问题描述四、解决方案&#xff1a;4.1 抽象类的使用4.2 抽象类与接口的区别4.2.1 接口复习4.2.2 具体区别4.2.3 使用场景4.2.3.1 抽象类使用场景4.2.3.2 接口使用…

读零信任网络:在不可信网络中构建安全系统11用户组的认证和授权

1. 用户组的认证和授权 1.1. 几乎在每个系统中都有一小部分操作需要被密切关注 1.1.1. 每个应用对这部分操作的风险容忍度各有不同&#xff0c;且没有任何下限 1.1.2. 一部分风险是由用户个人的可信度决定的 1.1.2.1. 单个用户的可信度可能很低 1.1.2.2. 多个用户组合的可信…

OpenAI人事变动:联合创始人John Schulman离职加入Anthropic

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

【JVM基础14】——垃圾回收-强引用、软引用、弱引用、虚引用的区别

目录 1- 引言&#xff1a;为什么分多种引用类型2- ⭐核心&#xff1a;2-1 强引用2-2 软引用2-3 弱引用2-4 虚引用 3- 小结&#xff1a;3-1 强引用、软引用、弱引用、虚引用的区别&#xff1f; 1- 引言&#xff1a;为什么分多种引用类型 在 Java 中&#xff0c;引用类型被分为强…

ICM-20948芯片详解(8)

接前一篇文章&#xff1a;ICM-20948芯片详解&#xff08;7&#xff09; 六、寄存器详解 1. 总述 ICM-20948共有user bank 0~3共4组寄存器。 USER BANK 0寄存器图 USER BANK 0所包含的寄存器如下图所示&#xff1a; USER BANK 1寄存器图 USER BANK 1所包含的寄存器如下图所…

校园外卖微信小程序的设计与实现

校园外卖微信小程序的设计与实现 校园外卖微信小程序的设计与实现 [摘要] 随着社会的进步和生活质量的提高&#xff0c;人们对用餐体验有了更高的要求&#xff0c;导致电话和网上订餐服务日益发展。这一趋势也推动了以大学生为主要服务对象的校园外卖的发展。此次设计主要为大…

AI大模型巡游记第二回探索幻梦

unsetunset第二回&#xff1a;探索幻梦unsetunset **随着夕阳西下&#xff0c;李逸结束了今天的探险之旅…… 李逸回到了现实世界&#xff0c;心中满是对“幻境大模型”体验的好奇与惊叹。他迫不及待地想要了解更多关于这项技术背后的秘密。于是&#xff0c;他决定访问“幻梦”…

Python写UI自动化--playwright(元素焦点的控制)

在UI测试中会遇到一种情况&#xff0c;在输入框输入内容&#xff0c;鼠标焦点离开输入框后&#xff0c;前端会对输入框内容进行判断是否合法&#xff0c;比如输入不正确格式的账号&#xff0c;会有相应的提示。该篇文章就讲一讲playwright关于元素焦点的控制&#xff1a; Play…

Makefile基础语法 看这一篇就够了

Makefile 基础语法 Makefile 是一种用于自动化构建过程的脚本文件&#xff0c;它通过定义目标文件和依赖关系来告诉 make 工具如何构建项目。Makefile 的语法和结构可以非常灵活&#xff0c;适用于各种复杂的构建场景。本教程将详细介绍 Makefile 的基本概念、语法以及如何编写…

python3 pyside6图形库学习笔记及实践(五)

目录 前言选项卡(QTabWidget)创建选项卡常用属性和方法常用信号 堆叠页面(QStackedWidget)创建堆叠容器切换页面过渡动画 前言 本系列文章为b站PySide6教程以及官方文档的学习笔记 原视频传送门&#xff1a;【已完结】PySide6百炼成真&#xff0c;带你系统性入门Qt 官方文档…

Linux云计算 |【第二阶段】CLUSTER-DAY3

主要内容&#xff1a; Ceph概述、部署Ceph集群、Ceph块存储 一、分布式存储基础 分布式系统&#xff08;Distributed File System&#xff09;是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。文件系统管理的物理存储资源不一定直接连接在本…

ClickHouse:单机安装

目录 一、ClickHouse介绍 二、安装ClickHouse 2.1安装要求 2.2单机安装 2.3修改配置文件(可选) 2.4升级软件 三、使用ClickHouse 3.1连接ClickHouse 3.2 执行SQL 一、ClickHouse介绍 ClickHouse是由Yandex开源的一个高性能、面向列的SQL数据库管理系统&#xff08;DBM…

【踩坑】pytorch中的索引与copy_结合不会复制数据及其解决方案

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 背景知识 实验验证 结论分析 错误案例 处理方法 注意事项 附加说明 基本索引返回视图 高级索引返回副本 赋值操作都是原地操作 以下内容…

SS9283403 sqlite3交叉编译并部署到SS928(六)

1.Sqlite3下载 连接&#xff1a;SQLite Download Page 2.解压 tar zxvf sqlite-autoconf-3460000.tar.gz 3.配置并编译 进入解压目录&#xff0c;打开命令行&#xff0c;输入如下命令 ./configure CCaarch64-mix210-linux-gcc --hostarm-linux --prefix/home/mc/work/sqlite…

002发那科ROBOGUIDE仿真导入模型

打开已经创建好的工程&#xff0c;找到“机器” 右键&#xff0c;添加机器->CAD文件(F) 找到本地的3D模型&#xff0c;然后点击&#xff0c;打开 设置模型位置[0,0,0,0,0,0] 然后就导入进来啦

对比速览 | Alluxio 企业版 v.s. 社区版

当前诸多企业面临着日益增长的数据量和复杂的数据管理挑战。特别是在模型训练的过程中&#xff0c;诸如GPU短缺、GPU利用率不高等问题已经成为许多企业在技术实施中面临的挑战。同时&#xff0c;大数据分析中跨云数据访问速度慢、成本高等问题也给企业带来了痛点。为了应对这些…