湘潭大学第5章 指令系统及ALU设计
《指令系统》课件

不同的指令系统针对不同的应用领域进行优化,以满足各 种复杂的应用需求。
例如,针对高性能计算领域的处理器,其指令系统会更加 注重浮点运算和并行处理;针对嵌入式领域的处理器,其 指令系统会更加注重低功耗和实时性。
指令系统与其他技术的融合
随着技术的发展,指令系统与其他技术 的融合成为一种趋势。
为了减少访问主存的延迟,指 令系统使用缓存来存储经常访 问的数据和指令。通过缓存管 理技术,系统可以更快地访问 这些数据和指令。
为了降低能耗和提高能源效率 ,指令系统采用了一系列节能 技术,如动态电压调节、动态 频率调节、休眠模式等。
为了提高系统的安全性,指令 系统可以提供加密和解密功能 ,保护数据的机密性和完整性 。此外,还可以通过权限控制 和访问控制机制来限制对敏感 资源的访问。
03 指令系统的实现方式
汇编语言实现指令系统
汇编语言概述
汇编语言是一种低级语言,与机器语言有很高的相似度。 它使用助记符表示指令,易于理解和编写。
汇编指令系统
汇编语言中的指令系统通常与特定的处理器架构相关联, 包括算术、逻辑、控制和输入/输出指令。
汇编程序
汇编程序是一种将汇编语言代码转换为机器语言的编译器 。它逐条将汇编指令翻译为对应的机器码,并生成可执行 文件。
例如,与人工智能技术的融合,使得处 理器能够更好地支持人工智能算法和应 用;与网络技术的融合,使得处理器能 够更好地支持云计算和边缘计算等应用
。
通过与其他技术的融合,指令系统的功 能和应用领域得到了进一步拓展,同时
也促进了相关技术的发展和创新。
谢的任务, 确保各个任务按照预定的顺序或优先级执行 。
D
指令系统的设计和优化

操作数的存储形式
存储器
CPU内什么地方
每条指令中显式说明的操作数个数
操作数的位置
操作类型
操作数的类型和长短
指令的分类
指令格式的优化
指令=操作码+地址码
指令格式的优化:如何用最短的位数来表示
指令的操作信息和地址信息,使程序中指
令的平均字长最短。
主要目标:
节省程序的存储空间
指令格式尽量规整,便于译码
PUSH A ;操作数a压入堆栈
PUSH B ;操作数b压入堆栈
MUL ;栈顶两数相乘,结果压回堆顶
PUSH C
ADD
PUSH D
SUB ;栈顶是分子运算的结果
PUSH E
PUSH F
ADD
DIV ;栈顶是最后运算的结果
POP X ;保存最后运算结果
关于地址码个数结论
+0.01×6.644=1.95(位)
0.45
0.30
0.15
0.05
0.03
0
0
0
0
1.00
0.55
1
0.25
1
0.01
0.01
0
1
0.02
0
1
0.05
1
0.10
1
指令序号 概率
I1
0.45
I2
0.30
I3
0.15
I4
0.05
I5
0..01
Huffman编码法
0
10
110
参数必须满足90%以上的使用频率。
第 5 章 指令系统

2013-11-23
25
• 一地址指令长度短,指令执行速度快 (若A为存储器地址,只需一次访存取 数),对于字长较短的微、小型机,是 一种常用的指令格式。
2013-11-23
26
5.零地址指令
• 零地址指令中只有操作码而无地址码,其指令 格式为; OP
• 零地址指令有两种情况: • ① 不需操作数的控制型指令,如HALT、WAIT、 NOP等。 • ② 运算型零地址指令:操作数隐含在堆栈中。
2013-11-23 15
• 三地址指令格式:
OP A1 A2 A3
• • • • •
A1:第一源操作数的存储器地址或寄存器地址; A2:第二源操作数的存储器地址或寄存器地址; A3:存放操作结果的存储器地址或寄存器地址; 三地址指令功能为: (A1)OP(A2)→A3; PC 指示下条指令地址
2013-11-23
2013-11-23 29
2) 变长编码
• 变长编码的指令操作码:不同指令的操作码长度 不完全相同,操作码的位数不固定,分散地放在 指令字的不同位置上。 • 变长编码操作码的特点: • 可用较短的指令字长表示更多的操作类型,寻址 较大的存储空间。 • 操作码的位数不固定,且位置分散,增加了指令 译码与分析的难度,使硬件设计复杂化。 • 在早期的微、小型机中,由于指令字较短,均采 用变长编码的指令操作码。如Intel 8086、PDP一 11等机器。
2013-11-23 32
0000 xxxx xxxx xxxx 15条三地址指令 1110 xxxx xxxx xxxx 1111 0000 xxxx xxxx 15条二地址指令 1111 1110 xxxx xxxx 1111 1111 0000 xxxx 15条单地址指令 1111 1111 1110 xxxx 1111 1111 1111 0000 16条零地址指令 1111 1111 1111 1111 2013-11-23 33
湘潭大学 操作系统 课程复习

– 3.2 进程控制(理解)
• 进程创建和终止 • 进程阻塞和唤醒 • 进程挂起和激活
6
第3章
• 第3章 进程描述和控制
– 3.3 线程
• 线程简介(理解) • 多线程(掌握) • 线程实现与线程模型(理解)
• 第6章 输入输出系统
• 磁盘管理(不考) • 容错技术:廉价磁盘冗余阵列(了解)
16
第7章
• 第7章 文件管理
– 7.1 概述(理解)
• 文件、文件系统的定义
– 7.2 文件结构
• 逻辑结构(理解) • 物理结构:顺序结构、链接结构、索引结构(掌握 );直接文件、哈希文件(理解)
– 7.3 文件目录
10
第5章
• 第5章 存储器管理
– 5.4 页式存储管理
• 页、块、页表、地址结构、分页地址变换、快表( 掌握) • 两级页表、多级页表(理解)
– 5.5 段式与段页式存储管理
• 段、段表、地址结构、分段地址变换(掌握) • 分页和分段的区别(掌握) • 段页式存储管理(理解)
– 5.6 内存扩充技术(了解)
• 安全状态 • 银行家算法数据结构、流程 • 安全性算法
– 4.6 死锁检测和恢复(了解)
9
第5章
• 第5章 内存管理
– 5.1 概述(理解)
• 存储层次结构 • 存储管理的目的和任务
– 5.2 地址重定位(理解)
• 重定位的基本概念 • 补充:程序的装入、程序的链接
– 5.3 分区存储管理
• 单一连续、固定分区、可变分区分配(理解) • 分区分配算法(掌握) • 补充:哈希算法、伙伴系统(理解)
湘潭大学 计算机组成原理 课堂测验题集及答案

二、填空题 1. 可被计算机硬件直接执行的程序是由(指令)组成的,因 此计算机执行程序的过程,实际上就是按照给定(顺序) 执行一组(指令)的过程。 2. 一条指令通常分成两部分:(操作码)和(地址码)。 3. 组成计算机的基本部件有(中央处理机)、(存储器)和 (I/O 接口)。 4. 计算机的存储器用来存放(程序)和(数据),是计算机 各种信息的(存储)和(交流)中心。 5. 一个存储器单元有两项必须严格区分的信息描述:存储单 元的(地址)和存储单元的(内容)。 6. 中央处理器又叫(CPU),在早期的计算机中分成(运 算器)和(控制器)两部分。 7. 计算机各部件间来往的信号可分成(地址)、(数据)和 (控制信号)。
《计算机组成原理》课堂测验题(4)
一、数值数据的数制转换 1. (100)16 =()8 = ()2 = ()10 = 2( ) 2. (200)16 =()8 = ()2 = ()10 = 2( ) 3. (400)16 =()8 = ()2 = ()10 = 2( ) 4. (800)16 =()8 = ()2 = ()10 = 2( ) 5. (1000)16 =()8 =()2 = ()10 = 2( ) 6. (2000)16 =()8 =()2 = ()10 = 2( ) 7. (4000)16 =()8 = ()2 = ()10 = 2() 8. (8000)16 =()8 = ()2 = ()10 = 2() 9. (10000)16 =()8 = ()2 = ()10 = 2( ) 10. (0. 1)16 =()8 = ()2 = ()10 = 2( ) 11. (0. 2)16 =()8 = ()2 = ()10 = 2( ) 12. (0. 4)16 =()8 = ()2 = ()10 = 2() 13. (0. 8)16 =()8 = ()2 = ()10 = 2( ) 14. (0. 9)16 =()8 = ()2 = ()10 15. (0. A)16 =()8 = ()2 = ()10 16. (0. C)16 =()8 = ()2 = ()10 17. (0. E)16 =()8 = ()2 = ()10 18. (0. F)16 =()8 = ()2 = ()10
《指令系统 》课件

在人工智能领域的应用
指令系统在人工智能领域中也有 着广泛的应用。人工智能算法的 实现需要大量的计算和数据处理 ,而指令系统可以提供高效的运 算能力和数据处理能力,为人工 智能算法的运行提供支持。
总之,指令系统作为一种底层技术,在各个领域都有着广泛的应用前景,为各行业的发展提供了重要 的技术支持。
05 指令系统的未来发展
指令系统的发展趋势
指令系统向更高效能发展
01
随着技术的进步,指令系统将不断优化,提高执行效率和性能
。
指令系统向更智能化发展
02
人工智能技术的引入将使指令系统具备更强的自适应和学习能
指令系统还可以用于人工智能领 域的模型优化和算法加速,如通 过优化指令系统实现深度学习模 型的快速推理和训练,提高人工 智能应用的性能和效率。
此外,指令系统还可以用于人工 智能领域的安全性和隐私保护, 如通过加密指令或硬件安全模块 等手段保护用户隐私和数据安全 。
在其他领域的应用
除了计算机系统和人工智能领域,指令系统在其他领域也有着广泛的应用。如通信领域中,指令系统 可以用于信号处理和调制解调等操作;在图形处理领域中,指令系统可以用于图像处理和渲染等操作 ;在科学计算领域中,指令系统可以用于数值计算和模拟等操作。
研究如何将人工智能技术应用于指令系统,使其具备更强的智能化 能力。
未来指令系统的发展前景
01
广泛应用于云计算、大数据等领域
随着云计算、大数据等技术的普及,指令系统将在这些领域发挥重要作
用。
02
成为人工智能技术的关键组成部分
随着人工智能技术的发展,指令系统将成为实现人工智能的重要工具。
湘潭大学算法设计与分析知识点

第一章算法概述1、算法的五个性质:有穷性、确定性、能行性、输入、输出。
2、算法的复杂性取决于:(1)求解问题的规模(N),(2)具体的输入数据(I),(3)算法本身的设计(A),C=F(N,I,A)。
3、算法的时间复杂度的上界记号O,下界记号Ω(记为f(N) = Ω(g(N))。
即算法的实际运行时间至少需要g(n)的某个常数倍时间),同阶记号Θ:f(N)= Θ(g(N))表示f(N)和g(N)同阶。
即算法的实际运行时间大约为g(n)的某个常数倍时间。
低阶记号o:f(N)=o(g(N))表示f(N)比g(N)低阶。
多项式算法时间:O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)约定logn表示以2为底的对数。
指数时间算法时间:O(2n)<O(n!)<O(nn)4、常用算法的设计技术:分治法、动态规划法、贪心法、回溯法和分支界限法。
5、常用的几种数据结构:线性表、树、图。
6、算法:是指解决某一问题的运算序列第二章递归与分治1、递归算法的思想:将对较大规模的对象的操作归结为对较小规模的对象实施同样的操作。
递归的时间复杂性可归结为递归方程:其中,a是子问题的个数,b是递减的步长,~表示递减方式,D(n)是合成子问题的开销。
递归元的递减方式~有两种:1、减法,即n – b,的形式。
2、除法,即n / b,的形式。
2、(这里都是针对递减方式为除法的哦)D(n)为常数c:这时,T(n) = O(n p)。
D(n)为线形函数cn:D(n)为幂函数n x:考虑下列递归方程:T(1) = 1⑴T(n) = 4T(n/2) +n⑵T(n) = 4T(n/2) +n2⑶T(n) = 4T(n/2) +n3解:方程中均为a = 4,b = 2,其齐次解为n2。
对⑴,∵a > b1 (D(n) = n) ∴T(n) = O(n2);对⑵,∵a = b2 (D(n) = n2)∴T(n) = O(n2log n);对⑶,∵a < b3 (D(n) = n3)∴T(n) = O(n3);证明一个算法的正确性需要证明两点:1、算法的部分正确性。
PLC实验报告(湘潭大学)

PLC典型控制模拟及应用实验报告院系:信息工程学院专业班级:自动化一班姓名:谢海鹏学号:2010550133时间:2013年5月目录实验一基本指令的编程练习 (2)(一) 与或非逻辑功能实验 (2)(二)定时器/计数器功能实验 (3)实验二四节传送带的模拟 (5)实验十五相步进电动机控制的模拟 (10)总结 (13)实验一基本指令的编程练习(一) 与或非逻辑功能实验在S21 S7-200模拟实验挂箱(一)上完成本实验。
一、实验目的1、熟悉PLC实验装置,S7-200系列编程控制器的外部接线方法2、了解编程软件STEP7的编程环境,软件的使用方法。
3、掌握与、或、非逻辑功能的编程方法。
二、基本指令编程练习的实验面板图左图中的接线孔,通过防转座插锁紧线与PLC的主机相应输入输出插孔相接。
I为输入点,Q为输出点。
上图中下面两排I0.0~I1.5为输入按键和开关,模拟开关量的输入。
上边一排Q0.0~Q1.1是LED指示灯,接PLC主机输出端,用以模拟输出负载的通与断。
三、梯形图参考程序通过程序判断Q0.1、Q0.2、Q0.3、Q0.4的输出状态,然后再输入并运行程序加以验证。
梯形图四、实验步骤梯形图中的I0.1、I0.3分别对应控制实验单元输入开关I0.1、I0.3。
通过专用PC/PPI电缆连接计算机与PLC主机。
打开编程软件STEP7,逐条输入程序,检查无误后,将所编程序下载到主机内,并将可编程控制器主机上的STOP/RUN开关拨到RUN 位置,运行指示灯点亮,表明程序开始运行,有关的指示灯将显示运行结果。
拨动输入开关I0.1、I0.3,观察输出指示灯.Q0.1、Q0.2、Q0.3、Q0.4是否符合与、或、非逻辑的正确结果。
(二)定时器/计数器功能实验在S21 S7-200模拟实验挂箱(一)上完成本实验。
一、实验目的掌握定时器、计数器的正确编程方法,并学会定时器和计数器扩展方法,用编程软件对可编程控制器的运行进行监控。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 子程序调用与条件、无条件指令的主要区别:
– 子程序调用需要保存返回地址,即返回到原调 用的程序继续执行子程序调用指令的下一条指 令。 – 返回地址一般保存在堆栈中,随同保存的还有 状态寄存器。 – 返回Return指令从堆栈中取出返回地址。
• (4)陷阱(Trap)与陷阱指令 • 在计算机运行过程中,有时可能出现电源电 压不稳、校验错、输入/输出设备出现故障、 非法操作码等意外情况,使得计算机不能正 常工作。因此,一旦出现故障,计算机就发 出陷阱信号,并暂停当前程序的执行(称为中 断),转入故障处理程序进行相应的故障处理。 • 陷阱指令一般作为隐含指令不提供给用户使 用,只有在出现故障时,才由CPU自动产生 并执行。
– 需要I/O操作的指令必须指定I/O模块或设备的地 址。
5.2.2 指令的表示
• 指令系统结构ISA包括: – 指令的格式 – 指令的意义 – 操作数的类型 – 指令能访问的寄存器和存储器地址 • 指令都由操作码和操作数组成 – 操作码-指明要执行的操作。 – 操作数-指明操作的对象(数据),每条指 令的操作数的个数不等,一般0~3个。
• 它处在软件设计者与硬件设计者之间能对 上话的一个“接口”。
主要内容
• 指令系统的作用和性能要求 • 机器指令的设计要素 • 指令的基本格式
– 操作码的编码技术 – 地址码的安排
• 操作类型和操作数类型 • 指令寻址方式和操作数寻址方式
– 指令寻址方式(顺序,跳跃) – 操作数寻址方式
• MIPS指令格式和通用寄存器定义
第5章
指令系统设计
• 一个CPU的指令系统(Instruction Set)定义 该CPU―所能做的”或者“应该做的”工作 。
– “所能做的”意思是告诉系统软件设计者该 CPU能做什么事情(软件设计者使用它)。 – ―应该做的”意思是告诉硬件设计者在设计CPU 时应该让CPU完成的任务(硬件设计者实现它) 。
机器指令的符号表示法
• 操作码被缩写成助记符(Mnemonic)来表示。如: ADD ―加”操作 SUB ―减”操作 MPY ―乘”操作 DIV “除”操作 LOAD ―读”操作,即由从存储器读入 STOR ―存储”操作,即存到存储器 • 操作数也可用符号表示。例如:
– ADD R, Y; R(Y)+(R) – 指令解释:它将存储器中Y地址存放的数据加到寄存器 R内容上。 – 注意,操作是对位置存放的“内容”来完成的,而不 是对它的地址。
– 是根据计算机的处理结果来决定程序如何执行。 它先测试条件码,然后根据所测试的条件是否满 足来决定是否转移。
• 条件码建立与转移判断:
– ①在转移指令中先完成比较运算,然后根据比 较的结果来判断转移条件是否成立,如果条件 为“真”则转移,否则顺序执行下一条指令。 – ②由转移指令之前的指令来建立条件码,转移 指令根据条件码来判断是否转移。 – 条件码:进位C、结果为零Z、结果溢出V、结 果为负N、奇偶校验P。
• 2、有效性
– 指利用该指令系统所编写的程序能够高效率地 运行。 – 高效率主要表现在程序占据的存储空间小、执 行速度快。
• 3、规整性
– (1)对称性:在指令系统中所有的寄存器和存储 器单元都可同等对待,所有的指令都可使用各 种寻址方式。 – (2)匀齐性:一种操作性质的指令可以支持各种 数据类型;如算术运算指令可支持字节、字、 双字整数的运算,十进制数运算和单、双精度 浮点数运算等。 – (3)格式一致性:指令长度和数据长度有一定的 关系,以方便处理和存取。 – 一般指令长度和数据长度通常是字节长度的整 数倍。
• 与存储器访问不同,向端口写入的信息可能是控制 信息,而从端口中读出的可能是状态信息。
• • • •
6、程序控制(转移类)指令 用于控制程序流的转移。 按转移性质分为 (1)无条件转移
– 无条件转移指令不受任何条件约束,直接把程序 转移到指令所规定的目的地,在那里继续执行程 序。
• (2)条件转移指令
– 与、或、非(反)、异或等,及位操作指令,如 位测试、位清除、位求反等。
• 3、移位操作指令
– 按移位性质分为: 算术移位(需考虑溢出) 逻辑移位 循环移位 – 按移位方向分为: 左移 右移, – 按移位位数分为: 一位 多位 – 算术移位、逻辑移位和循环移位如下图。
算术移位 左移
右移 循环移位
• 堆栈的作用
– 在中断、子程序调用中用于保存返回地址、状 态标志及现场信息。 – 用于子程序调用时参数的传递。
• 8、特权指令(系统控制类指令) • 由系统软件专用,不提供给用户使用。 • 用于系统资源的分配和管理,包括:
– – – – 改变系统的工作方式 检测用户的访问权限 修改虚拟存储器管理的段表、页表 完成任务的创建和切换
5.1.2 对指令系统的性能要求
• 计算机的指令系统影响到
– 计算机硬件结构的复杂程度和运行性能。 – 用户完成程序设计的难易程度和工作效率。
• 必须对设计指令系统的工作给以足够的重 视。 • 一般要求如下:
• 1、完备性
– 指编写各种程序时,指令系统直接提供的指令 足够使用,而不必通过其它软件来实现。 – 完备性要求指令系统丰富、功能齐全、使用方 便。
5.4.2 操作数的类型
• 指令的主要任务是对操作数进行计算。操作 数有不同的类型及相应的长度,如下表所示。
数据类型 字节 无符号字节 半字 无符号半字 字 无符号字 单精度浮点数 双精度浮点数 位数 8 8 16 16 32 32 32 64 数值范围 -128~+127 0~255 -32768~+32767 0~65535 -231~ 231-1 0~ 232-1 C语言中的对应 signed char unsigned char short int unsigned short int int unsigned int
– MIPS指令格式 – MIPS通用寄存器
• MIPS指令和ALU设计
– 本书CPU可执行的MIPS指令 – ALU设计
5.1 指令系统的作用和性能要求
• 5.1.1 指令系统的作用 • 计算机的程序是由一系列的指令组成的, 指令就是要计算机执行某种操作的命令 • 从计算机组成的层次结构来说,计算机的 指令有微指令、机器指令和宏指令之分。
5.4 指令类型 • 5.4.1 操作类型
• 对于不同数据类型的操作应当用不同的操 作码,如整数加法和浮点加法应当使用不 同的操作码,视为不同的指令。 • 按指令的功能分类,可分为 • 1、算术运算指令
– 整数和浮点数的加、减、乘、除等。 – 表征结果的特征(条件码):Z,C,V,N
• 2、逻辑运算
• 转移地址形成:
– ①相对转移,即执行PC←(PC)+位移量, – ②绝对转移,即PC←目标(有效)地址。
• (3)调用指令与返回指令 • 在编写程序过程中,常常需要编写一些经 常使用的,能够独立完成某一特定功能的 程序段,在需要时能随时调用,以节省存 储器空间和简化程序设计。这种程序段就 称为子程序、过程、函数。 • 使用调用指令(过程调用/系统调用/转子程序) 来实现从一个程序转移到另一个程序的操 作。
• 计算机的指令
–微指令:微程序级的命令,它属于硬件。 –宏指令:由若干条机器指令组成的软件指令,它属于 软件。 –机器指令(指令):介于微指令与宏指令之间,每条 指令可完成一个独立的算术运算或逻辑运。 –指令系统:一台计算机中所有机器指令的集合,它是 表征一台计算机性能的重要因素,其格式与功能不仅 直接影响到机器的硬件结构,也直接影响到系统软件 ,影响到机器的适用范围。
• • • •
ቤተ መጻሕፍቲ ባይዱ
9、其它指令 (1)向量指令 (2)多处理机指令 (3)控制指令 等待指令 停机指令 空操作指令 开中断 关中断 置条件码指令 • 当单用户情况下程序执行完毕,安排一条 停机指令不再继续执行程序。
• 10、浮点运算类指令
– 浮点加、减、乘、除、开方运算。 – 整数与单精度浮点数转换,整数与双精度浮点 数转换,单精度浮点数转换与双精度浮点数转 换。
(1)压栈指令(PUSH)是把指定的操作数送入堆栈 的栈顶。 (2)弹出指令(POP)是把栈顶的数据取出,送到 指令所规定的目的地。 向下生长的栈--从高地址向低地址扩展。 向上生长的栈--从低地址向高地址扩展。
• 按栈的生长方向,堆栈分:
• 设栈为向下生长的栈,且按字节编址,操作数为2 字节。 压栈指令 弹栈指令 PUSH OPD POP OPD 其操作是 (SP)-2→SP 其操作是 ((SP))→OPD OPD→(SP) (SP)+2→SP
• 问题:如何区分主存中某单元的内容是数 据还是指令?
– 一般用户无法区分。 – 程序员可以事先安排好。 – 处理器在取指令周期取出的是指令,否则取出 的是数据。
• 处理器支持的指令集构成了该处理器的指 令系统。
– 指令系统功能越强,处理器也就功能越强。
5.2.3 指令集应考虑的各种因素
• (1)操作指令表(operation repertoire):应提供多少 和什么样的操作,操作的复杂程度。 • (2)数据类型(data types):所支持的数据类型。 • (3)指令格式(Instruction Format):指令的(位)长度 、地址数目、各个字段的大小等。 • (4)寄存器(Registers):能被指令访问的CPU寄存 器数目以及它们的用途。 • (5)寻址方式(Addressing Mode):指定操作数地 址的产生方式。
• 有些机器设置了数据交换指令。
半字节交换
8 9
9 8
• 5、I/O访问类指令 • 根据I/O端口与存储器编址是否统一分为:
– 独立编址—I/O空间独立于存储空间进行编址, 需要I/O指令访问。 – 统一编址----将I/O空间与存储器空间一起进行 编址,使用存储器访问指令来访问。 – 访问I/O端口,有读写之分。