目录
一、计算机硬件组成
二、中央处理单元
1、功能
2、CPU的组成
三、校验码
四、体系结构的分类
1、按处理机数量分类
2、Flynn分类
五、指令系统
1、指令
2、寻址方式
3、指令系统
#CISC(复杂指令集计算机)
RISC(精简指令集计算机)
CISC和RISC的比较
4、指令流水线
指令流水线的概念和原理
RISC流水线技术
指令流水线的计算
指令流水线的优缺点
六、存储系统
1、两级存储
2、磁盘
七、输入输出技术
1、内存与接口地址的编址
2、计算机与外设间的数据交互
八、总线结构
1、数据、地址、控制总线
2、数据传输的相关概念
一、计算机硬件组成
冯诺依曼的计算机硬件组成主要包括以下几个部分:
- 运算器:运算器是计算机中进行算术和逻辑运算的部件,它根据控制器的指令对数据进行加工处理。
- 控制器:控制器是计算机的指挥中枢,它负责从内存中取出指令并解释执行,同时控制各个部件的工作。
- 存储器:存储器用于存储数据和程序,它可以分为内存和外存。内存是临时存储器,用于存储正在运行的程序和数据,速度快但容量小。外存是永久存储器,用于存储大量的数据和程序,速度慢但容量大。在冯诺依曼体系结构中,程序和数据都以二进制形式存储在存储器中,这也是“存储程序”概念的体现。
- 输入设备:输入设备用于将人类可读的信息转换为计算机可读的信息,例如键盘、鼠标等。
- 输出设备:输出设备用于将计算机处理后的信息转换为人类可读的信息,例如显示器、打印机等。
在冯诺依曼体系结构中,各个部件之间通过总线进行通信和协作,控制器通过总线读取存储器中的指令和数据,同时也通过总线控制各个部件的工作。这种体系结构被称为“存储程序计算机”,它是现代计算机的基础。
二、中央处理单元
1、功能
中央处理单元(CPU)是计算机系统的核心部件,它负责获取程序指令、对指令进行译码并加以执行。具体来说,中央处理单元的功能主要包括以下几个方面:
- 程序控制:CPU通过执行指令来控制程序的执行顺序。它从内存中读取指令,解释并执行,然后根据指令的结果决定下一步的操作。
- 操作控制:CPU产生每条指令的操作信号并将操作信号送往对应的部件,控制相应的部件按指令的功能要求进行操作。例如,当CPU执行一条加法指令时,它会发送操作信号给运算器,使其执行加法操作。
- 时间控制:CPU对各种操作进行时间上的控制。它严格控制指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序。这确保了计算机各个部件能够有序、准确地完成指令。
- 数据处理:CPU对数据进行算术运算及逻辑运算等方式进行加工处理。它执行各种数学运算,如加、减、乘、除等,同时也执行逻辑运算,如与、或、非等。数据处理是CPU最根本的任务,人们可以利用CPU的处理结果来进行各种实际应用。
- 异常处理:CPU还需要对系统内部和外部的中断(异常)做出响应,进行相应的处理。例如,当计算机遇到错误或异常情况时,CPU会停止当前的操作,转而去处理异常,以确保计算机的稳定运行。
总之,中央处理单元是计算机的核心部件,它负责执行程序中的指令,控制程序的执行顺序,处理数据并进行各种运算。它的性能直接决定了计算机的运行速度和处理能力。
2、CPU的组成
CPU的组成主要包括以下几个部分:
- 运算器(Arithmetic Unit):运算器是CPU中进行算术运算和逻辑运算的部件。它可以执行加减乘除等基本算术运算,也可以执行与、或、非等逻辑运算。运算器通常由算术逻辑单元(ALU)、累加器、寄存器等组成。算术逻辑单元是运算器的核心部件,它负责执行具体的运算操作。累加器用于存储运算结果,寄存器则用于暂时存储操作数和中间结果。
- 控制器(Control Unit):控制器是CPU的指挥中枢,它负责从内存中读取指令,并将其解码为具体的操作,然后将其发送给执行单元。控制器通常由指令寄存器、指令译码器、时序产生器等组成。指令寄存器用于存储当前正在执行的指令,指令译码器负责将指令解码为具体的操作信号,时序产生器则负责产生各种操作信号的时序。
- 寄存器组(Register File):寄存器组是CPU内部的一组存储单元,它可以暂时存储指令和数据。寄存器的读写速度极快,这使得CPU能够快速地访问和处理数据。寄存器组通常包括通用寄存器、专用寄存器、程序计数器等。通用寄存器可以用于存储各种数据,专用寄存器则用于存储特定的数据,如程序计数器等。
- 内部总线(Internal Bus):内部总线是CPU内部各个部件之间通信和数据传输的通道。它负责将控制器的操作信号发送给执行单元,同时也负责将执行单元的结果传输回控制器或其他部件。内部总线的速度越快,CPU的性能就越高。
总之,CPU的组成主要包括运算器、控制器、寄存器组和内部总线等部件。运算器负责执行算术和逻辑运算,控制器负责读取和解码指令,寄存器组负责暂时存储数据和指令,内部总线则负责各个部件之间的通信和数据传输。这些部件共同协作,使得CPU能够完成各种复杂的运算和处理任务。
三、校验码
校验码(Check Code)是一种用于检测数据传输或存储过程中错误的技术。它通过在数据中添加额外的信息,使得接收方可以检测并纠正数据传输或存储过程中可能出现的错误。
校验码的基本原理是利用数据本身的冗余信息进行错误检测。在数据传输或存储过程中,原始数据被划分为多个数据块,并为每个数据块计算一个校验码。接收方在收到数据后,重新计算校验码并与原始校验码进行比较,如果两者不一致,就说明数据传输或存储过程中出现了错误。
常见的校验码技术包括奇偶校验码、海明校验码和循环冗余校验码等。
- 奇偶校验码(Parity Check Code):奇偶校验码是一种简单的校验码技术,它通过在数据的末尾添加一个额外的比特,使得整个数据的比特数为偶数或奇数。接收方在收到数据后,重新计算奇偶校验码并与原始校验码进行比较,如果两者不一致,就说明数据传输或存储过程中出现了错误。
- 海明校验码(Hamming Check Code):海明校验码是一种能够检测并纠正单个比特错误的校验码技术。它通过在数据中添加多个校验位,使得接收方可以检测并纠正数据传输或存储过程中出现的单个比特错误。海明校验码的原理是利用校验位和数据位之间的特定关系,通过异或运算来检测和纠正错误。
- 循环冗余校验码(Cyclic Redundancy Check Code,CRC):循环冗余校验码是一种能够检测多个比特错误的校验码技术。它通过在数据的末尾添加一个或多个校验位,使得接收方可以检测数据传输或存储过程中出现的多个比特错误。CRC的原理是利用多项式除法来计算校验位,通过比较接收到的数据和计算得到的校验值来检测错误。
总之,校验码是一种用于检测数据传输或存储过程中错误的技术,它通过在数据中添加额外的信息来实现错误检测。不同的校验码技术具有不同的检错和纠错能力,选择合适的校验码技术可以提高数据传输和存储的可靠性。
四、体系结构的分类
1、按处理机数量分类
计算机体系结构按处理机数量可以分为以下几类:
- 单处理机系统(Uniprocessor System):只有一个处理机的系统,也称为单CPU系统。这种系统的特点是结构简单、成本低,但处理能力和速度受到单个处理机的限制。
- 多处理机系统(Multiprocessor System):由多个处理机组成的系统,也称为多CPU系统。这些处理机可以是相同的,也可以是不同的,它们之间通过某种方式相互通信和协作,共同完成任务。多处理机系统可以提高系统的处理能力和速度,但也会增加系统的复杂性和成本。
- 分布式系统(Distributed System):由多个独立的计算机组成的系统,这些计算机之间通过网络相互通信和协作,共同完成任务。分布式系统的特点是处理能力强、可靠性高、易于扩展和维护,但也会增加系统的复杂性和成本。
- 集群系统(Cluster System):由多个独立的计算机组成的系统,这些计算机之间通过高速网络相互通信和协作,共同完成任务。集群系统是一种特殊的分布式系统,它强调的是高性能计算和大规模数据处理能力。
需要注意的是,以上分类只是一种简单的划分方式,实际上还有很多其他的分类方式和体系结构类型,例如:流水线结构、超标量结构、向量结构等。
2、Flynn分类
Flynn根据指令流和数据流的组织方式,将计算机分为以下四类:
- 单指令流单数据流(SISD):这是一种传统的串行计算机,其硬件不支持任何形式的并行计算。所有的指令都是串行执行,并且在某个时钟周期内,CPU只能处理一个数据流。
- 单指令流多数据流(SIMD):采用一个指令流处理多个数据流。这类机器在数字信号处理、图像处理以及多媒体信息处理等领域非常有效。
- 多指令流单数据流(MISD):采用多个指令流来处理单个数据流。在实际情况中,采用多指令流处理多数据流才是更有效的方法。
- 多指令流多数据流(MIMD):可以同时执行多个指令流,这些指令流分别对不同数据流进行操作。
Flynn分类法,分类因素有两个,指令流和数据流,指令流由控制部分处理,每个控制部分处理一条指令流,多指令流就要有多个控制部分;数据流由处理器来处理,每个处理器处理一条数据流;至于主存模块,是用来存储的,存储指令流和数据流,因此,无论多指令流还是多数据流,都需要多主存模块来存储。
依据计算机的特性,是由指令控制数据的传输,一条指令可以控制一条或多条数据流,但一条数据流不能被多条指令控制,否则会出错,因此多指令单数据MISD是不存在的。
五、指令系统
1、指令
指令是计算机的基本操作命令,是计算机运行的基础。指令通常由操作码和操作数两部分组成。
- 操作码(Opcode):操作码是指令中的一部分,它指示计算机执行什么操作。操作码通常是一个短的二进制代码,用于指定加法、减法、乘法、除法、跳转等操作。
- 操作数(Operand):操作数是指令中的另一部分,它指定要执行操作的数据。操作数可以是寄存器中的值、内存单元中的值或者立即数(即常数)。在一些指令中,操作数还可以是一个地址,指示要从哪个内存单元中读取数据或向哪个内存单元中写入数据。
指令的执行过程可以分为以下几个步骤:
- 取指:计算机从存储器中读取当前要执行的指令。
- 译码:计算机对读取的指令进行解码,确定要执行的操作和操作数。
- 执行:计算机执行指定的操作,将结果存储在指定的寄存器或内存单元中。
- 写回:如果指令执行结果需要写回到存储器中,计算机将结果写入指定的内存单元。
在计算机组成与结构中,指令的设计和实现是非常重要的。不同的计算机体系结构有不同的指令集,而指令集的设计直接影响到计算机的性能和编程的复杂性。因此,计算机体系结构的设计者需要仔细考虑指令集的选择和实现。
2、寻址方式
寻址方式分为指令的寻址方式和操作数的寻址方式两类。
指令的寻址方式
指令的寻址方式是指CPU如何获取指令本身的地址。在大多数计算机体系中,指令寻址通常采用顺序寻址方式。顺序寻址方式是指CPU在执行完一条指令后,自动将程序计数器(PC)加1或加上指令长度,以指向下一条要执行的指令。这种方式简单可靠,适用于大多数程序。
除了顺序寻址方式外,还有一些其他的指令寻址方式,如跳跃寻址方式和分支寻址方式。跳跃寻址方式是指CPU根据指令中的跳转地址直接跳转到指定的内存位置执行指令。分支寻址方式是指CPU根据指令中的条件判断结果来选择执行不同的指令序列。
操作数的寻址方式
操作数的寻址方式是指CPU在指令中指定操作数地址的方式。下面介绍几种常见的操作数寻址方式:
- 立即寻址:操作数直接包含在指令中,不需要访问内存。这种方式简单快捷,但操作数的长度受到指令长度的限制。
- 直接寻址:操作数的地址直接包含在指令中,CPU可以直接访问该地址获取操作数。这种方式可以直接访问内存中的任何位置,但地址的长度受到指令长度的限制。
- 间接寻址:操作数的地址存储在一个寄存器或内存单元中,CPU需要先访问该寄存器或内存单元获取地址,然后再访问该地址获取操作数。这种方式可以访问更大的内存空间,但需要额外的访问时间。
- 寄存器寻址:操作数存储在一个寄存器中,CPU可以直接访问该寄存器获取操作数。这种方式速度最快,但寄存器的数量有限。
- 基址寻址:操作数的地址等于一个基址寄存器加上一个偏移量,CPU需要先访问基址寄存器获取基址,然后再加上偏移量获取操作数的地址。这种方式可以访问更大的内存空间,且可以通过修改偏移量来访问不同的内存位置。
- 变址寻址:操作数的地址等于一个变址寄存器加上一个偏移量,CPU需要先访问变址寄存器获取变址,然后再加上偏移量获取操作数的地址。这种方式类似于基址寻址,但变址寄存器的内容可以在程序执行过程中修改。
以上是一些常见的操作数寻址方式,不同的计算机体系结构可能有不同的寻址方式。寻址方式的设计需要考虑到指令长度、访问速度、内存空间等因素,以选择最适合的方式。同时,程序员也需要根据具体的寻址方式来编写程序,以保证程序的正确执行。
3、指令系统
CISC和RISC是两种不同类型的计算机指令集架构(ISA),它们在设计哲学、指令集特性、硬件实现和性能表现等方面有很大的差异。
CISC(复杂指令集计算机)
CISC是一种传统的计算机指令集架构,它的设计目标是支持强大的功能,并通过复杂的指令系统来实现这些功能。CISC结构的计算机通常具有几百至上千条的指令,寻址方式需要用1~2个字节来表示,指令长度可以达到十几个字节。这种设计使得CISC计算机能够直接执行复杂的操作,减少了编译器的负担,但也带来了硬件实现的复杂性和功耗的增加。
RISC(精简指令集计算机)
RISC是一种新型的计算机指令集架构,它的设计目标是简化指令系统,提高执行速度,并通过硬件实现来优化性能。RISC结构的计算机通常只有几十条简单的指令,寻址方式简单且固定,指令长度也比较短。这种设计使得RISC计算机能够更快地执行操作,减少了功耗和硬件实现的复杂性,但也增加了编译器的负担。
CISC和RISC的比较
- 指令系统:CISC具有复杂的指令系统,能够直接执行复杂的操作;而RISC具有简单的指令系统,需要通过编译器将复杂操作分解为简单的指令序列。
- 寻址方式:CISC的寻址方式多样且复杂,而RISC的寻址方式简单且固定。
- 指令长度:CISC的指令长度较长,可以达到十几个字节;而RISC的指令长度较短,通常只有几个字节。
- 执行速度:RISC的计算机通常比CISC的计算机执行速度快,因为RISC的指令简单且执行速度快。
- 编译器负担:CISC的编译器负担较轻,因为复杂的操作可以直接通过指令来实现;而RISC的编译器负担较重,需要将复杂操作分解为简单的指令序列。
- 硬件实现:CISC的硬件实现较复杂,因为需要支持复杂的指令系统;而RISC的硬件实现较简单,因为只需要支持简单的指令系统。
- 性能表现:RISC的计算机在并行处理和低功耗方面表现较好,因为简单的指令系统和快速的执行速度;而CISC的计算机在单任务执行方面表现较好,因为复杂的指令系统能够直接执行复杂的操作。
4、指令流水线
指令流水线的概念和原理
指令流水线是一种计算机硬件技术,通过将一个指令的执行过程划分为多个阶段,并在同一时间内执行多个指令的不同阶段,以提高计算机的处理能力。
指令流水线的工作原理可以分为以下几个步骤:
- 取指:从存储器中读取当前要执行的指令。
- 译码:对读取的指令进行解码,确定要执行的操作和操作数。
- 执行:执行指定的操作,将结果存储在指定的寄存器或内存单元中。
在指令流水线中,每个阶段都由不同的硬件部件执行。例如,取指阶段由指令缓存(Instruction Cache)执行,译码阶段由译码器(Decoder)执行,执行阶段由算术逻辑单元(ALU)执行,写回阶段由写回单元(Write Back Unit)执行。当一条指令完成取指阶段后,它就可以进入译码阶段。当译码阶段完成后,它就可以进入执行阶段。以此类推,每个阶段完成后,指令就可以进入下一个阶段。由于每个阶段都由不同的硬件部件执行,因此可以实现多个指令的并行执行。
RISC流水线技术
RISC(精简指令集计算机)是一种新型的计算机指令集架构,它的设计目标是简化指令系统,提高执行速度,并通过硬件实现来优化性能。RISC结构的计算机通常只有几十条简单的指令,寻址方式简单且固定,指令长度也比较短。这种设计使得RISC计算机能够更快地执行操作,减少了功耗和硬件实现的复杂性,但也增加了编译器的负担。
RISC流水线技术是将RISC指令的执行过程划分为多个阶段,并在同一时间内执行多个指令的不同阶段。由于RISC指令集较为简单,因此其流水线设计也相对简单。通常,RISC流水线分为以下几个阶段:取指、译码、执行和写回。在每个阶段,都有相应的硬件部件来执行操作。由于RISC指令集较为简单,因此其流水线设计也能够实现更高的并行度和更快的执行速度。
指令流水线的计算
1. 流水线周期
周期是指流水线完成一个指令所需的时间。通常,流水线的周期等于其中最慢的阶段所需的时间。例如,如果取指阶段需要1个时钟周期,译码阶段需要2个时钟周期,执行阶段需要3个时钟周期,写回阶段需要1个时钟周期,那么流水线的周期就是3个时钟周期。
2. 执行时间
1条指令的总执行时间+(总指令条数-1)*流水线周期
3. 吞吐率
吞吐率是指单位时间内流水线完成的指令数量。在流水线中,由于多个指令可以同时执行,因此吞吐率取决于流水线中每个阶段的执行速度和流水线的周期。通常,吞吐率可以用以下公式计算:吞吐率 = 指令数量 / 时间。
4. 加速比
加速比是指采用流水线技术后,程序执行时间的缩短比例。通常,加速比可以用以下公式计算:加速比 = 顺序执行时间 / 流水线执行时间。
指令流水线的优缺点
优点:
- 并行性:由于每个阶段都由不同的硬件部件执行,因此可以实现多个指令的并行执行。
- 高速缓存利用率:由于指令的执行过程被划分为多个阶段,每个阶段的操作都可以提前准备,从而提高了高速缓存的利用率。
- 减少了CPU的空闲时间:由于每个阶段都由不同的硬件部件执行,因此在某个阶段完成后,CPU可以立即开始执行下一个阶段的操作,减少了CPU的空闲时间。
缺点:
- 数据相关:如果两条指令之间存在数据相关,即一条指令的执行结果需要作为另一条指令的操作数,那么这两条指令就不能并行执行。这种情况下,必须等待第一条指令执行完成后才能开始执行第二条指令。
- 控制相关:如果两条指令之间存在控制相关,即一条指令的执行结果需要影响另一条指令的执行过程,那么这两条指令也不能并行执行。例如,如果一条指令是一个条件分支指令,需要根据条件判断结果来选择执行不同的指令序列,那么就不能在条件判断完成之前开始执行后续的指令。
- 资源相关:由于每个阶段都由不同的硬件部件执行,因此如果某个阶段的硬件部件出现故障或性能瓶颈,就会影响到整个流水线的性能。此外,如果多个指令同时需要使用同一个硬件资源,也会出现资源冲突的问题。
六、存储系统
1、两级存储
两级存储包括Cache-主存和主存-辅存两个层次。
Cache-主存层次中,Cache是位于CPU和主存之间的存储器,容量小但速度快,通常由半导体材料构成。它存储的是主存的副本拷贝,对于程序员来说是透明的。CPU访问数据时首先访问Cache,如果数据在Cache中,则直接读取;如果数据不在Cache中,则需要从主存中读取。由于Cache的速度比主存快得多,因此使用Cache可以大大提高CPU访问数据的速度。同时,由于Cache的容量较小,因此只能存储当前最活跃的程序和数据。这就需要一种替换策略,以决定哪些数据应该被替换出Cache,以便为新的数据腾出空间。常见的替换策略包括最近最少使用(LRU)和先进先出(FIFO)等。
主存-辅存层次中,主存是计算机的主要存储设备,容量较大但速度较慢,用于存储程序和数据。辅存则是计算机的辅助存储设备,容量更大但速度更慢,通常用于长期存储大量数据。主存和辅存之间的数据传输通过I/O操作完成。为了提高数据的访问速度,通常使用虚拟存储技术。即在程序运行时,只将部分数据调入主存,其他数据则留在辅存中。当CPU访问未调入主存的数据时,通过缺页中断等方式将所需数据调入主存。这样可以扩大程序的可用内存空间,提高内存利用率。
总之,两级存储是计算机存储系统中的一种重要技术,它可以提高数据的访问速度和存储容量。Cache-主存层次主要负责提高CPU访问数据的速度,而主存-辅存层次则主要负责扩大程序的可用内存空间和提高内存利用率。
2、磁盘
磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。早期计算机使用的磁盘是软磁盘(soft disk,简称软盘),如今常用的磁盘是硬磁盘(hard disk,简称硬盘)。
磁盘的读写单位是以扇区为最小寻址单位的,一个扇区的大小是512字节。每次磁头连续读写的时候,即使一次只写了一个字节的数据,那么下一次就不能再向这个扇区剩余的部分接着写入,而是要寻找一个空扇区来写。每张盘片的正反两面都可以存放数据,所以每张盘片需要有2个磁头,各读写一面。
在磁盘中,数据是按柱面存放的。在每个柱面上,信息是按磁道存放的。最外圈的磁道为0道,往里为1道,2道……因此,不同的半径就有不同的磁道号。磁道的编号是由外到内依次编号的。
此外,磁盘还包括主轴马达、移动臂、磁头等部件。主轴马达用于带动盘片旋转,移动臂用于在盘片上移动磁头,而磁头则用于读取或写入数据。当需要从磁盘读取数据时,磁头会在盘片表面飞行,寻找指定扇区的数据。当需要向磁盘写入数据时,磁头会在盘片表面飞行,寻找指定扇区的空闲空间,然后将数据写入该空间。
最后,磁盘的性能指标主要包括存储容量、读写速度、访问时间、数据传输率、误码率等。为了提高磁盘的性能,通常使用缓存技术、RAID技术、虚拟存储技术等技术手段。缓存技术可以提高磁盘的读写速度,RAID技术可以提高磁盘的可靠性和性能,虚拟存储技术则可以扩大程序的可用内存空间和提高内存利用率。
七、输入输出技术
1、内存与接口地址的编址
在输入/输出(I/O)技术中,内存与接口地址的编址主要有两种方式:统一编址和独立编址。
1. 统一编址
统一编址是指将I/O设备的端口地址与内存地址统一编址,形成一个统一的地址空间。在这个统一的地址空间中,内存单元和I/O端口共同占用。访问内存单元和访问I/O端口使用的是相同的指令,不加以区分。因此,程序员在编程时可以像访问内存一样访问I/O端口,无需特殊的I/O指令。
在统一编址中,内存地址和I/O端口地址通过不同的地址范围来区分。例如,假设计算机有16MB的内存,可以将0x00000000至0x0FFFFFFF的地址范围分配给内存,将0x10000000至0xFFFFFFFF的地址范围分配给I/O端口。这样,当CPU访问0x00000000至0x0FFFFFFF范围内的地址时,访问的是内存;当CPU访问0x10000000至0xFFFFFFFF范围内的地址时,访问的是I/O端口。
统一编址的优点是简单、直观,不需要特殊的I/O指令。缺点是I/O端口的数量受到内存大小的限制,而且访问I/O端口时需要经过内存总线,可能会影响到内存的性能。
2. 独立编址
独立编址是指将I/O设备的端口地址与内存地址分别编址,形成两个独立的地址空间。在这个独立的地址空间中,内存单元和I/O端口各自占用一部分地址范围。访问内存单元和访问I/O端口使用的是不同的指令,需要加以区分。因此,程序员在编程时需要使用特殊的I/O指令来访问I/O端口。
在独立编址中,内存地址和I/O端口地址通过不同的地址空间和指令来区分。例如,假设计算机有16MB的内存和256个I/O端口,可以将0x00000000至0x0FFFFFFF的地址范围分配给内存,将0x8000至0xFFFF的地址范围分配给I/O端口。这样,当CPU访问0x00000000至0x0FFFFFFF范围内的地址时,访问的是内存;当CPU访问0x8000至0xFFFF范围内的地址时,访问的是I/O端口。在独立编址中,访问I/O端口时需要使用特殊的I/O指令,如IN指令和OUT指令。
独立编址的优点是I/O端口的数量不受内存大小的限制,而且访问I/O端口时不会影响内存的性能。缺点是需要特殊的I/O指令,编程比较复杂。
不同的编址方式有不同的优缺点,需要根据具体的应用场景来选择适合的编址方式。
2、计算机与外设间的数据交互
计算机与外设间的数据交互是通过输入/输出(I/O)接口实现的。I/O接口是计算机和外设之间的桥梁,负责传递数据和控制信号,协调计算机和外设之间的操作。
在计算机与外设间的数据交互中,主要涉及到以下几种信号:
- 数据信号:数据信号是计算机和外设之间传输的基本信息,包括数字量、模拟量和开关量等。数据信号在接口中通常使用数据线进行传输。
- 状态信号:状态信号是反映外设当前工作状态的信息,例如外设是否准备好接收数据或发送数据。状态信号在接口中通常使用状态线进行传输,计算机通过读取状态线的状态来了解外设的工作状态。
- 控制信号:控制信号是计算机发送给外设的控制信息,例如启动或停止外设的操作。控制信号在接口中通常使用控制线进行传输,计算机通过发送控制信号来控制外设的操作。
在计算机与外设间的数据交互中,通常采用以下几种方式:
1. 程序查询方式:程序查询方式是指计算机通过程序不断查询外设的状态,当外设准备好接收数据或发送数据时,计算机再进行数据传输。这种方式简单可靠,但实时性较差,适用于数据传输率较低的外设。
2. 程序中断方式:程序中断方式是指当外设准备好接收数据或发送数据时,通过中断请求线向计算机发送中断请求,计算机响应中断后暂停当前程序,转去执行中断处理程序,完成数据传输后再返回原程序。这种方式实时性较好,适用于数据传输率较高的外设。
3. DMA方式:DMA方式是指在外设的DMA控制器的控制下,通过DMA通道直接访问内存,实现数据传输。这种方式传输速率高,适用于大批量数据传输的外设。
4. 通道方式:通道方式是指在通道的控制下,实现计算机和外设之间的数据传输。通道是一种具有特殊功能的处理器,可以独立完成数据传输的控制和管理,减轻了CPU的负担。这种方式适用于高速、大批量数据传输的外设。
总之,计算机与外设间的数据交互是通过I/O接口实现的,涉及到数据信号、状态信号和控制信号的传输。不同的数据传输方式具有不同的特点和适用范围,需要根据具体的应用场景来选择适合的方式。
八、总线结构
从广义上来说,任何连接两个电子元器件以上的导线都可以成为总线,通常分为以下三类:
- 内部总线:内部芯片级的总线,芯片和处理器之间通信的总线
- 系统总线:板级总线,用于计算机内各部分之间的连接
- 外部总线:设备级的总线,微机和外部设备的总线
1、数据、地址、控制总线
数据总线、地址总线和控制总线是计算机系统中的三种主要总线,它们分别负责不同的数据传输和控制任务。
数据总线(Data Bus)是负责在CPU、内存和各种输入/输出(I/O)设备之间传输数据的总线。它是一条双向的总线,既可以传输从CPU到内存或I/O设备的数据,也可以传输从内存或I/O设备到CPU的数据。数据总线的宽度(也就是它同时可以传输的数据位数)决定了系统可以处理的数据量。
地址总线(Address Bus)是负责传输CPU发出的内存地址或I/O设备地址的总线。CPU通过地址总线来指定要访问的内存单元或I/O设备的地址。地址总线的宽度决定了系统可以访问的内存大小和I/O设备的数量。
控制总线(Control Bus)是负责传输各种控制信号的总线,这些控制信号包括CPU对内存或I/O设备的读/写信号、中断信号等。控制总线是CPU控制内存和I/O设备操作的关键。
这三种总线在微型计算机系统中发挥着重要的作用。数据总线负责传输数据,地址总线负责指定数据的地址,控制总线负责控制数据的传输和操作。它们共同协作,使得计算机能够正常工作。
2、数据传输的相关概念
总线、单工、半双工和全双工都是与数据传输相关的概念。
总线(Bus)是在计算机系统中进行数据传输的主要方式,它是在多个部件之间进行数据传输的共享通道。在微型计算机系统中,总线通常由数据总线、地址总线和控制总线组成。
**单工(**Simplex)是一种数据传输模式,它只允许数据在一个方向上传输,即只能从一个部件传输到另一个部件,而不能反过来传输。这种传输模式适用于一些只需要单向传输数据的场合,例如打印机、键盘等输入设备。
半双工(Half Duplex)是一种数据传输模式,它允许数据在两个方向上传输,但同一时间只能在一个方向上传输。即部件A可以向部件B发送数据,但只有当部件A停止发送数据时,部件B才能向部件A发送数据。这种传输模式适用于一些需要双向传输数据但不需要同时进行的场合,例如电话、无线电等。
全双工(Full Duplex)是一种数据传输模式,它允许数据同时在两个方向上传输,即部件A可以向部件B发送数据,同时部件B也可以向部件A发送数据。这种传输模式适用于一些需要双向传输数据且需要同时进行的场合,例如网络通信、视频通话等。
在微型计算机系统中,单工、半双工和全双工传输模式可以通过不同的硬件接口实现。例如,单工传输可以使用只有一根数据线的接口实现,半双工传输可以使用一根数据线和一个控制线实现,而全双工传输则需要使用两根数据线实现。此外,不同的通信协议和软件也可以支持不同的传输模式。