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