总线系统

总线的概念和结构形态 总线的基本概念 总线是一组公共的传输线,用于连接计算机的各个部件(CPU、内存、I/O设备),实现信息共享和交换。总线由数据总线(传输数据)、地址总线(传输地址)和控制总线(传输控制信号)三部分组成。总线按时序可分为同步总线(有时钟信号)和异步总线(握手信号)。 总线的连接方式 常见连接方式: 单总线结构:所有部件都连接到同一总线,简单但可能成为瓶颈(如早期IBM PC)。 双总线结构:CPU与主存之间有一条高速内存总线,其他设备通过I/O总线与CPU通信(如南北桥架构)。 多总线结构:现代计算机使用多层次总线(如PCIe、DMI、QPI等)。 总线的内部结构 总线内部包括: 数据线:宽度决定一次传输的位数(如32位、64位)。 地址线:宽度决定可寻址空间。 控制线:包括读写信号、中断请求、总线请求/允许、时钟等。 此外还有电源线和地线。 总线结构实例 经典PC总线结构:CPU通过前端总线(FSB)连接北桥(内存控制器、AGP/PCIe),北桥连接南桥(PCI、ISA、USB、IDE等)。现代CPU集成内存控制器和PCIe控制器,芯片组简化为单芯片(PCH)。 总线接口 信息传送方式 信息传送方式包括:并行(多位同时传输)和串行(逐位传输)。串行总线(如USB、PCIe)使用差分信号,距离长、速率高、引脚少。 总线接口的基本概念 总线接口(或称适配器、控制器)是连接设备与总线的逻辑电路。它负责数据缓冲、协议转换、电平转换、中断处理等。接口必须满足总线规定的电气和时序规范。 总线仲裁 当多个设备请求使用总线时,仲裁器决定哪个设备获得总线控制权。 集中式仲裁 一个中央总线仲裁器(常位于CPU或北桥)负责判决。常见方式: 链式查询:通过一条总线请求线,优先级由物理位置决定(离仲裁器越近优先级越高)。简单但速度慢,且优先级固定。 计数器定时查询:仲裁器发计数值,设备匹配地址则获得总线。优先级可改变。 独立请求方式:每个设备有独立的请求线和允许线,仲裁器并行处理。速度快,但连线多(如PCI)。 分布式仲裁 没有中央仲裁器,每个设备都有仲裁逻辑,通过共享的仲裁总线竞争。例如,SCSI总线使用分布式仲裁。优点是无单点故障。 总线的定时和数据传送模式 总线的定时 定时决定什么时候发送地址和数据: 同步定时:使用统一时钟,所有操作在时钟边沿发生。简单但所有设备需以相同频率工作。 异步定时:基于握手信号(请求、应答)。允许不同速度的设备共存,但控制稍复杂。 总线数据传送模式 常见传送模式: 读/写周期:主设备发送地址和控制信号,从设备返回数据或接收数据。 突发传送:一次地址后连续传送多个数据(如SDRAM突发模式),提高吞吐量。 块传送:类似于突发。 分裂传送:主设备请求后释放总线,从设备准备好后再重新申请,提高了总线利用率。 PCI总线和PCIe总线 多总线结构 PCI(外设组件互连)是一种并行总线,工作频率33/66MHz,32/64位宽度,带宽最高约533MB/s。PCIe(PCI Express)是高速串行总线,采用点对点连接和交换结构,替代了PCI和AGP。 PCI总线信号 PCI总线信号包括:地址/数据复用线(AD[31:0])、控制信号(FRAME#, IRDY#, TRDY#)、仲裁信号(REQ#, GNT#)、错误报告(PERR#, SERR#)、中断信号等。 PCI总线周期类型 总线周期包括:配置周期(读写配置空间)、I/O周期、内存周期、特殊周期等。配置周期用于系统初始化时枚举设备。 PCI总线周期操作 一次PCI传输包含地址阶段(FRAME#有效,AD线上放地址)和数据阶段(IRDY#和TRDY#握手续传数据)。突发传输时地址只发一次,后续数据连续传送。 PCI总线仲裁 PCI总线使用集中式仲裁,每个主设备有独立的REQ#和GNT#线,仲裁器位于北桥或南桥。仲裁算法可以是轮询、优先级等。 PCIe总线 PCIe(PCI Express)采用高速串行差分信号(LANE),每个LANE发送速率从2.5GT/s(Gen1)到32GT/s(Gen5)及以上。支持x1、x2、x4、x8、x16、x32链路宽度。采用点对点交换结构,每个设备独享带宽。事务层使用数据包(TLP,事务层包)传递请求和完成。支持热插拔、电源管理、虚拟化等先进特性。PCIe已成为现代计算机的主流扩展总线,用于显卡、SSD、网卡等。

September 3, 2025 · 1 min · farmer3-c

中央处理器

CPU的功能和组成 CPU的功能 CPU是计算机的核心部件,其基本功能包括: 指令控制:从存储器取出指令,译码并执行。 操作控制:产生微操作信号,驱动各部件执行指令。 时间控制:为每条指令提供时序节拍。 数据加工:通过ALU对数据进行算术/逻辑运算。 中断处理:响应外部/内部中断,切换进程。 CPU的基本组成 CPU主要由运算器、控制器、寄存器组和内部总线组成。控制器包括程序计数器(PC)、指令寄存器(IR)、指令译码器、时序产生器和控制逻辑(微程序或硬布线)。 CPU中的主要寄存器 程序计数器(PC):存放下一条指令的地址。 指令寄存器(IR):存放当前正在执行的指令。 累加器(ACC):存放中间运算结果。 状态寄存器(PSW/Flag):存放条件标志(C、Z、N、V)和中断允许等状态。 通用寄存器(R0-Rn):存放操作数和地址。 堆栈指针(SP):指向栈顶地址。 基址/变址寄存器:支持多种寻址方式。 操作控制器与时序产生器 操作控制器产生微操作命令序列,分为微程序控制器(存储微指令)和硬布线控制器(组合逻辑)。时序产生器提供时钟信号和节拍信号,控制指令的执行步骤。 指令周期 指令周期的基本概念 指令周期是指CPU从取指令、译码到执行完一条指令所花的时间。一个指令周期通常包含取指周期(取指令)、间址周期(若需取操作数地址)、执行周期、中断周期(若响应中断)。每个周期又由若干时钟周期(T周期)组成。 MOV指令的指令周期 MOV指令(寄存器间或立即数传送)的指令周期:取指→译码→执行(传送数据)。执行周期只需一个时钟周期(寄存器间)。若MOV涉及内存,则需内存读/写周期。 LAD指令的指令周期 LAD(LOAD)从内存读数据到寄存器:取指→译码→计算地址→读内存→写寄存器。执行周期包括地址计算和内存访问,通常需多个时钟周期。 ADD指令的指令周期 ADD加法指令(寄存器-寄存器):取指→译码→ALU计算→写回结果。执行周期为1个时钟周期。若为内存操作数,则需额外访存周期。 STO指令的指令周期 STO(STORE)将寄存器内容写回内存:取指→译码→计算地址→写内存。写内存通常需要1个周期(假设内存写操作)。 JMP指令的指令周期 JMP无条件跳转:取指→译码→计算目标地址→将目标地址写入PC。执行周期短。条件跳转还需根据标志位决定是否修改PC。 用方框图语言表示指令周期 方框图语言以矩形框表示操作(如“取指令”)、菱形框表示判断(如“是否需要间址”),描述指令周期流程。可以清晰展示微操作序列和时序关系。 时序产生器和控制方式 时序信号的作用和体制 时序信号为CPU各部件提供同步节拍。常见体制:单节拍(所有操作在一个时钟周期完成,限于低速)、多节拍(每条指令分多个时钟周期)、异步(无统一时钟,应答方式)。 时序信号产生器 时序产生器由晶体振荡器(产生主频时钟)、分频器、节拍发生器(环形计数器或分频逻辑)组成。产生时钟周期(T1, T2…)、机器周期(M周期)、指令周期等信号。 控制方式 控制方式指CPU如何发出微操作命令: 同步控制:所有指令使用固定长度的时钟周期。简单但效率低。 异步控制:每条指令或微操作采用应答方式,速度较快但控制复杂。 联合控制:大部分指令同步,少数复杂指令异步扩展。 微程序控制器 微程序控制原理 微程序控制将机器指令(宏指令)解释为一串微指令序列。控制存储器(ROM或RAM)存放微程序。执行指令时,微地址生成器根据指令操作码产生微地址,逐条读取微指令,每个微指令产生一组微操作控制信号。微指令格式分为水平型(一个时钟周期执行多个微操作)和垂直型(类似于机器指令的微指令)。 微程序设计技术 微程序设计技术包括:微指令编码(直接编码、字段直接编码、字段间接编码)、微地址形成(增量、多路转移、下址字段)、微程序顺序控制、微程序设计语言等。现代CPU的微程序常采用加标签的控制存储和分支逻辑。 硬布线控制器 硬布线控制器由组合逻辑电路(门电路、触发器)构成,直接根据指令操作码、时序节拍和状态条件产生控制信号。速度比微程序控制器快,但指令集复杂时逻辑设计极为复杂,不易修改。RISC处理器多采用硬布线控制(也有少数RISC使用微程序)。CISC的早期如8086使用微程序,后来逐步混合。 流水CPU 并行处理技术 并行处理技术包括:指令流水线(时间并行)、多发射(超标量)、多核(空间并行)。流水线将指令执行分解为若干阶段(取指、译码、执行、访存、写回),多个指令重叠执行。 流水CPU的结构 经典五级流水线:IF(取指令)、ID(指令译码/读寄存器)、EX(执行/地址计算)、MEM(访存)、WB(写回)。流水线寄存器(IF/ID、ID/EX、EX/MEM、MEM/WB)用于传递数据和控制信号。流水线需要处理结构冒险、数据冒险和控制冒险。 流水线中的主要问题 结构冒险:资源冲突,如指令和数据共用同一存储器。解决:哈佛结构(指令/数据分离)、增加资源。 数据冒险:后一条指令依赖前一条指令的结果。解决:转发(旁路)、插入气泡(停顿)、编译优化。 控制冒险:分支指令改变PC,导致流水线冲刷。解决:分支预测(静态/动态)、延迟槽(早期RISC)。 现代流水线深度可达10-20级(如Intel Core)。 RISC CPU RISC机器的特点 前面已述。RISC通常采用流水线、单周期指令、LOAD/STORE结构、大量寄存器。典型RISC处理器有ARM、MIPS、RISC-V、PowerPC(早期)等。 RISC CPU实例 ARM Cortex-A系列:多级流水线(通常13级或更少),支持超标量、乱序执行。RISC-V是一个开源指令集,设计简洁,适合教育和嵌入式。 动态流水线调度 动态调度由硬件(如Tomasulo算法)在运行时重排指令顺序,减少数据冒险造成的停顿。需要保留站、重排序缓冲(ROB)和寄存器重命名技术。常见于高性能处理器(Intel Core、AMD Zen)。与之相对的是静态调度(编译器优化)。

September 3, 2025 · 1 min · farmer3-c

指令系统

指令系统的发展与性能要求 指令系统的发展 早期计算机指令非常简单(如单地址、零地址指令)。随着硬件发展和应用需求,指令系统从基本算术逻辑扩展至浮点运算、字符串处理、多媒体(SIMD指令)、加密等。出现了复杂指令集计算机(CISC)和精简指令集计算机(RISC)两种设计哲学。CISC(如x86)指令丰富,便于编程但实现复杂;RISC(如ARM、MIPS)指令精简、规整,易于流水线和高频实现。 指令系统的性能要求 指令系统应满足:完整性(覆盖所有必要操作)、规整性(指令格式简单,寻址方式一致)、高效性(常用指令执行快)、兼容性(软件向前兼容)、可扩展性(便于增加新指令)。此外,还需要支持高级语言、操作系统和并发编程。 低级语言与硬件结构的关系 机器语言(二进制)和汇编语言(助记符)直接对应机器指令,与硬件结构(寄存器、ALU、总线等)紧密相关。程序员通过低级语言可以直接控制硬件资源,但编程效率低。高级语言通过编译或解释转换为目标机器指令,抽象层次更高。 指令格式 操作码 操作码(Opcode)指定指令要执行的操作(如ADD、MOV)。操作码长度可以是定长(便于译码,如RISC通常32位固定长度)或变长(如x86,1-15字节,节省空间但译码复杂)。操作码设计常采用扩展操作码技术,通过预留码点扩展指令数量。 地址码 地址码字段指明操作数的来源和结果的去向。根据地址码数量,指令可分为三地址、二地址、一地址、零地址(如堆栈机)。例如:ADD R1, R2, R3 (R1←R2+R3)为三地址;ADD R1, R2 (R1←R1+R2)为二地址;ADD R1 (ACC←ACC+R1)为一地址。 指令字长度 指令字长度可以是定长(如ARM的32位)或变长(如x86的1-15字节)。定长指令便于取指和译码,适合流水线;变长指令代码密度高,节省内存。现代处理器常采用混合方式:主流RISC为定长32位,CISC使用变长,但在内部转换为类似RISC的微操作。 指令助记符 助记符(Mnemonic)是汇编语言中表示操作码的英文缩写,如ADD、SUB、MOV、JMP。便于记忆和编写。操作数通常使用寄存器符号(如EAX)或立即数、内存地址表达式。 指令格式举例 ARM 32位指令:例如 ADD r0, r1, r2(机器码:E0810002,其中[31:28]条件码,[27:25]为00,[24:21]操作为0100,[20]为S位等)。 x86指令:变长,例如 89 C8 表示 MOV eax, ecx。 操作数类型 一般的数据类型 常见操作数类型:整数(字节、半字、字、双字)、浮点数(单精度/双精度)、字符(ASCII/Unicode)、逻辑数(布尔值)、指针(地址)。 Pentium数据类型 英特尔x86支持:字节(8位)、字(16位)、双字(32位)、四字(64位)、双四字(128位,用于SSE)、10字节扩展浮点数(80位)。也支持BCD(二进制编码十进制)和打包的SIMD数据。 Power PC数据类型 PowerPC(RISC)支持:字节、半字(16位)、字(32位)、双字(64位)。浮点类型为单精度和双精度。支持对齐访问。 指令和数据的寻址方式 指令的寻址方式 指令的寻址即确定下一条指令的地址。顺序执行时,指令地址由程序计数器(PC)自动递增;跳转指令通过偏移量(相对寻址)或绝对地址改变PC值。 操作数基本寻址方式 常见寻址方式: 立即寻址:操作数直接包含在指令中(如 ADD R1, #5)。 寄存器寻址:操作数存放在寄存器中(如 ADD R1, R2)。 直接寻址:指令给出内存地址(如 ADD R1, [1000])。 间接寻址:指令给出存放地址的寄存器或内存单元(如 ADD R1, [R2])。 变址寻址:基址寄存器+偏移量(如 ADD R1, [R2 + 10]),适于数组访问。 相对寻址:PC+偏移量,用于转移指令。 基址寻址:基址寄存器+偏移量,常用于重定位。 堆栈寻址:隐含使用堆栈指针(SP)访问栈顶。 寻址方式举例 以ARM为例:LDR R1, [R2, #8](变址)、LDR R1, [R2, R3](寄存器偏移)、LDR R1, label(PC相对寻址)。x86的 MOV eax, [ebx+ecx*4+8] 复杂变址。 典型指令 ...

September 3, 2025 · 1 min · farmer3-c

存储系统

存储系统概述 存储系统的层次结构 为了解决存储容量、存取速度和价格之间的矛盾,计算机中通常采用多级存储器体系结构,即使用高速缓冲存储器、主存储器和外存储器。CPU能直接访问的存储器称为内存储器,包括高速缓冲存储器和主存储器。CPU不能直接访问外存储器,外存储器的信息必须调入内存储器才能被CPU处理。 高速缓冲存储器-主存 层次:CPU的处理速度比主存的存取速度快。为弥补主存速度的不足,在主存和CPU之间增加一级高速缓冲存储器(Cache)。其特点是速度高而容量小。它所存放的是主存中部分内容的复制,是当前最有可能被CPU访问的信息。 从整体看,Cache-主存层次的存取速度接近于Cache的速度,而容量接近于主存的容量。Cache存储器全部由硬件调度,对程序员是透明的。 从整体看,主存-辅存层次具有接近于主存的速度和接近于辅存的容量。 存储器的分类 按存储介质分 • 半导体存储器:主要有MOS型存储器和双极型存储器两大类。 • 磁表面存储器:在金属或塑料基体上,涂覆一层磁性材料,用磁层存储信息,常见的有磁盘、磁带等。 • 光存储器:采用激光技术访问的存储器。 按存取方式分 • 随机存储器:任何存储单元的内容都能被随机存取,且存取时间和存储单元的物理位置无关。如半导体存储器。 • 顺序存储器:只能按某种顺序来存取,存取时间和存储单元的物理位置有关。如磁带存储器。 磁盘存储器既不像随机存储器那样能随机地访问任一个存储单元,也不像顺序存储器那样完全按顺序存取,而是介于两者之间。存取信息时,第一步指向整个存储器中的某个小区域(磁盘上的磁道);第二步在小区域内顺序检索,直至找到目的地后再进行读/写操作。其存取时间和信息的物理位置有一定关系。 按存储器的读写功能分 • 只读存储器(ROM):存储的内容固定不变,只能读出而不能写入。 • 随机读写存储器(RAM):既能读出又能写入。 按信息的可保存性分 • 易失性存储器:断电后信息即消失的存储器。 • 非易失性存储器:断电后仍能保存信息的存储器。 按在计算机系统中的作用分 • 根据存储器在计算机系统中所起的作用,可分为主存储器、辅助存储器、高速缓冲存储器、控制存储器(用于存放微程序,由ROM构成)。 存储器的编址和端模式 存储器的技术指标 存储容量:存储器所包含的存储单元的总数称为存储容量。存储容量用字数或字节数表示。一个字节定义为8个二进制位,一个字包括2个或4个字节。 存取时间:从启动一次存储器操作到完成该操作所经历的时间。例如:读出时间是指从CPU向主存发出有效地址和读命令开始,直到将被选单元的内容读出为止所用的时间;写入时间是指从CPU向主存发出有效地址和写命令开始,直到信息写入被选中单元为止所用的时间。 存取周期:连续两次访问存储器操作之间所需要的最短时间。一般情况下,存取周期大于存取时间。这是因为对于任何一种存储器,在读写操作之后,总要有一段恢复内部状态的复原时间。 存储器带宽:又称数据传输率,指单位时间内存储器可读写的数据量,用位/秒或字节/秒度量。由存取周期和字长决定。 可靠性:用平均无故障时间来衡量。 其它参数:功耗、价格等。 静态随机存取存储器 目前广泛使用的半导体存储器是MOS型半导体存储器,可以分为静态MOS型存储器(Static RAM)和动态MOS型存储器(Dynamic RAM) 六管SRAM存储元的电路图 $T_3、T_4$相当于负载电阻,$T_1、T_2$构成双稳态触发器。若$T_1$截止,A为高电平,使$T_2$导通,B为低电平,而B的低电平又使$T_1$更加截止;反之,若B为高电平,则A为低电平。 可见该电路有两个稳定状态,且A和B两点电位总是互反的。如果用A点高电平代表 “1”,A点低电平代表 “ 0”,该电路可存储一位二进制数。 $T_5、T_6、T_7和T_8$为控制管。如果某存储元被选中,X、Y地址译码线均处于高电平,使$T_5~T_8$导通,输入输出电路I/O和$\overline{I/O}$分别与A点和B点相连,A点和B点的电平状态就能输出到I/O和$\overline{I/O}$上,完成读操作。 写操作时,如果要写入“1”,在I/O线上输入高电位,在$\overline{I/O}$线上输入低电位,开启$T_5~T_8$四个MOS管把高、低电位分别加在A、B点,使$T_1$管截止,使$T_2$管导通,将“1”写入存储元。如果要写入“0”,在I/O线上输入低电位,在$\overline{I/O}$线上输入高电位,打开$T_5~T_8$,把低、高电位分别加在A、B点,使$T_1$管导通,$T_2$管截止,将“0” 写入存储元。 基本的静态存储元阵列 本例 任何一个 SRAM,都有三组信号线与外部打交道: ①地址线,本例中有 6 条,即 $A_0、A_1、 A_2、 A_3、 A_4、 A_5$,它指定了存储器的容量是 $2^6$=64 个存储单元。 ②数据线,本例中有4 条,即 $I/O_0、 I/O_1、 I/O_2 、 I/O_3$,说明存储器的字长是 4 位,因此存储位元的总数是 64×4=256。 ③控制线, 本例中 $R/\overline{W}$ 控制线, 它指定了对存储器进行读( $R/\overline{W}$ 高电平), 还是进行写( $R/\overline{W}$低电平)。注意,读写操作不会同时发生。 ...

September 3, 2025 · 1 min · farmer3-c

运算方法和运算器

数据与文字的表示方法 数据格式 数的机器码表示 字符与字符串的表示方法 汉字的表示方法 校验码 定点加法、减法运算 补码加法 补码减法 溢出概念与检测方法 基本的二进制加法/减法器 定点除法运算 原码除法算法原理 并行除法器 定点运算器的组成 逻辑运算 多功能算术/逻辑运算单元 内部总线 定点运算器的基本结构 浮点运算方法和浮点运算器 浮点加法、减法运算 浮点乘法、除法运算 浮点运算流水线 数据与文字的表示方法 数据格式 计算机中的数据分为数值数据和非数值数据(字符、汉字、图像、声音等)。数值数据在计算机内部采用二进制编码表示,根据小数点位置是否固定,分为定点表示法和浮点表示法。 定点表示法:小数点位置固定不变,分为定点整数(纯整数)和定点小数(纯小数)。定点数通常用补码或原码表示。 浮点表示法:形如 N = M × R^E,其中M为尾数(定点小数),E为阶码(整数),R为基数(通常为2)。IEEE 754标准定义了单精度(32位)、双精度(64位)等浮点数格式。 数的机器码表示 计算机中为了简化运算电路,通常使用以下机器码表示有符号数: 原码:符号位(0正1负)加绝对值。简单但不便于加减运算。 反码:正数同原码,负数符号位不变,其余位取反。主要用于中间计算。 补码:正数同原码,负数反码加1。补码可将减法转化为加法,是现代计算机最常用的有符号整数编码。 移码:在补码基础上加上偏置常数(通常2^(n-1)),用于浮点数的阶码表示。 字符与字符串的表示方法 字符编码采用标准编码方案,如ASCII(美国信息交换标准代码)使用7位或8位二进制表示128个基本字符(英文大小写字母、数字、标点符号、控制字符)。扩展ASCII(ISO-8859)支持西欧语言。Unicode(如UTF-8、UTF-16)统一表示全世界所有字符,支持多语言混排。字符串在内存中通常以连续字节存储,以空字符(’\0’)或长度字段作为结束标志。 汉字的表示方法 汉字编码分为输入码(拼音、五笔等)、机内码(存储编码,如GB2312、GB18030、BIG5、Unicode中的汉字区)、字形码(点阵或矢量字体)。国家标准GB2312包含6763个常用汉字,GB18030兼容GB2312并扩展至7万余汉字。在Unicode中,汉字位于CJK统一表意文字区(U+4E00至U+9FFF)。 校验码 校验码用于检测数据在传输或存储过程中的错误。常见类型: 奇偶校验码:增加一位奇偶位,使整个码字中1的个数为奇数(奇校验)或偶数(偶校验)。只能检测奇数个错误,不能纠错。 海明校验码:通过在数据位之间插入多个校验位,能够检测并纠正一位错误(或者检测两位错)。 循环冗余校验(CRC):将数据视为多项式,除以生成多项式得到余数作为校验码。CRC能检测突发错误,广泛用于网络通信和存储设备。 定点加法、减法运算 补码加法 补码加法的公式:[X+Y]补 = [X]补 + [Y]补 (mod 2^n)。即直接将两个数的补码相加,若最高位产生进位则丢弃该进位(模2^n运算)。正负数均可直接相加,无需特殊处理。例如:X=5(0101),Y=-3(1101),和=2(0010)。 补码减法 补码减法转化为加法:[X-Y]补 = [X]补 + [-Y]补。其中[-Y]补可通过将[Y]补连同符号位一起取反后加1得到。例如:X=5(0101),Y=3(0011),则[-Y]补=1101,相加得0010(即2)。 溢出概念与检测方法 当运算结果超出机器数表示范围时发生溢出。对于补码加减法,溢出检测方法: 双符号位法(变形补码):用两个符号位,如00为正,01为上溢,10为下溢,11为负。结果的两个符号位不同则表示溢出。 单符号位法:比较操作数的符号和结果的符号。若两个正数相加得负数,或两个负数相加得正数,则溢出。进位检测法:最高有效位的进位与符号位的进位不同时溢出。 基本的二进制加法/减法器 一位全加器(FA)是实现加法/减法的基础。它有三个输入:A、B、低位进位Cin;两个输出:和S、进位Cout。逻辑表达式:S = A ⊕ B ⊕ Cin;Cout = AB + (A⊕B)Cin。多个全加器串联构成行波进位加法器(RCA)。减法可通过将减数取反(按位取反后加1,即使用异或门控制)并设置初始进位为1来实现。为提高速度,可采用超前进位加法器(CLA)并行计算进位。 ...

September 3, 2025 · 1 min · farmer3-c

计组概论

计算机的分类 计算机的发展简史 计算机的五代变化 半导体存储器的发展 微处理器的发展 计算机的性能指标 计算机的硬件 硬件组成要素 运算器 存储器 控制器 适配器与输入/输出设备 计算机的软件 软件的组成与分类 软件的发展演变 计算机系统的层次结构 多级组成的计算机系统 软件与硬件的逻辑等价性 计算机的分类 电子计算机从总体上来说分为两大类。一类是电子模拟计算机,模拟计算机的特点是数值由连续量来表示,运算过程也是连续的。另一类是电子数字计算机,数字计算机的主要特点是按位运算,并且不连续地跳动计算。 此外,数字计算机还可根据规模和用途分为巨型机、大型机、小型机、微型机、工作站、嵌入式计算机等类别。巨型机用于科学计算和国家战略任务;微型机(个人计算机)普及最广;嵌入式系统则应用于智能设备、汽车电子等领域。 计算机的发展简史 计算机的五代变化 世界上第一台电子数字计算机是1946年在美国宾夕法尼亚大学制成的ENIAC。这台机器用了18000多个电子管,占地170m²,重量达30吨,而运算速度只有5000次/秒。 自从这台计算机问世70多年来,从使用器件的角度来说,计算机的发展大致经历了五代的变化。 第一代为1946~1957年,电子管计算机。采用电子管作为逻辑元件,磁鼓或磁芯作为存储器,体积庞大、功耗高、可靠性低。主要用于科学计算。 第二代为1958~1964年,晶体管计算机。晶体管代替电子管,体积缩小,功耗降低,速度提高。出现了高级编程语言(如FORTRAN、COBOL),开始应用于商业领域。 第三代为1965~1971年,中小规模集成电路计算机。将多个晶体管集成在一块硅片上,使计算机进一步小型化,运算速度达到每秒数百万次。操作系统和分时系统开始普及。 第四代为1972~1990年,大规模和超大规模集成电路计算机。一片芯片可集成数千至上万个元件。个人计算机(PC)诞生并迅速发展。1971年Intel 4004微处理器标志着微计算机时代的开始。 第五代为1991年开始的巨大规模集成电路计算机。运算速度提高到每秒10亿次以上。由一片巨大规模集成电路实现的单片计算机(系统级芯片,SoC)开始出现。并行处理、多核技术、量子计算等新技术不断涌现。 计算机从第三代起,与集成电路技术的发展密切相关。LSI(大规模集成电路)的采用,一块集成电路芯片上可以放置1000个元件,VLSI(超大规模集成电路)达到每个芯片1万个元件,现在的ULSI(甚大规模集成电路)芯片超过了100万个元件。1965年摩尔观察到芯片上的晶体管数量每年翻一番,1970年这种态势减慢成每18个月翻一番,这就是人们所称的摩尔定律。该定律揭示了集成电路工艺的持续进步,但也面临物理极限的挑战。 半导体存储器的发展 半导体存储器的发展经历了从磁芯存储器到半导体RAM和ROM的转变。20世纪60年代末,半导体存储器开始取代磁芯存储器,成为计算机的主要存储部件。随着集成电路技术的进步,存储容量不断增大,成本不断降低,速度也大幅提升。如今,DRAM(动态随机存取存储器)和SRAM(静态随机存取存储器)广泛应用于主存和高速缓存,闪存(Flash)则成为移动设备和固态硬盘的重要存储介质。近年来,3D NAND、MRAM、ReRAM等新型存储器不断涌现,进一步拓展了存储技术的边界。 微处理器的发展 微处理器是将中央处理器的主要功能集成到一块芯片上的器件。1971年,英特尔公司推出了世界上第一块微处理器4004,4位字长,主频108kHz,开启了微处理器时代。随后,8位微处理器(Intel 8080、Zilog Z80)、16位(Intel 8086/8088、Motorola 68000)、32位(Intel 80386、ARM)、64位微处理器相继问世,性能不断提升,集成度从数千晶体管发展到数百亿晶体管。微处理器的出现极大地推动了个人计算机和嵌入式系统的发展。当前主流微处理器包括Intel Core系列、AMD Ryzen系列、ARM Cortex系列等,广泛应用于从智能手机到超级计算机的各类设备。 计算机的性能指标 衡量计算机性能的主要指标包括: 主频(时钟频率):CPU的核心时钟速率,单位Hz。主频越高,单位时间内能完成的操作越多,但不同架构的CPU不能单纯比较主频。 字长:CPU一次能并行处理的二进制位数,通常为8、16、32、64位。字长影响数据精度和寻址范围。 运算速度:通常用每秒百万条指令(MIPS)或每秒浮点运算次数(FLOPS)表示。现代计算机常用SPEC等基准测试程序综合评估。 存储容量:主存(RAM)容量和辅存(硬盘/SSD)容量。容量越大,可运行的程序和数据越多。 输入输出速度:I/O带宽和响应时间,影响系统的整体运行效率。 其他指标:功耗、可靠性(MTBF)、可用性、可扩展性等。 计算机的硬件 硬件组成要素 计算机硬件主要包括运算器、存储器、控制器、输入设备和输出设备五大部分。它们共同协作,实现数据的输入、存储、运算、控制和输出功能。这些部件通过总线(数据总线、地址总线、控制总线)相互连接,组成完整的硬件系统。 运算器 运算器负责对数据进行算术和逻辑运算,是计算机的“计算核心”。它通常包括算术逻辑单元(ALU)、累加器(ACC)、暂存器、状态寄存器(标志寄存器)等部件。ALU执行加、减、乘、除等算术运算和与、或、非、异或等逻辑运算。运算器的设计对计算机的性能至关重要。 存储器 存储器用于存放程序和数据,分为主存(内存)和辅存(外存)。主存速度快但容量有限,通常由DRAM构成,直接与CPU交换信息;辅存容量大但速度较慢,如硬盘、固态硬盘、光盘等,用于长期保存信息。存储器系统采用层次结构(Cache-主存-辅存)来兼顾速度、容量和成本。 控制器 控制器负责协调和控制计算机各部件的工作,保证程序的正确执行。它通过时序信号和控制信号实现对各部件的管理。控制器从存储器中逐条取出指令,分析指令(译码),然后发出相应的微操作命令序列,驱动运算器、存储器、I/O设备执行指令规定的操作。控制器分为微程序控制器和硬布线控制器两种主要类型。 适配器与输入输出设备 适配器(也称接口或控制器)用于连接主机与各种输入输出设备,如键盘、鼠标、显示器、打印机、磁盘驱动器等,实现数据的输入和输出。适配器负责信号转换、数据缓冲、协议转换和错误处理。常见的I/O接口标准有USB、HDMI、SATA、PCIe等。输入设备将外部信息转换为计算机可识别的电信号;输出设备则将计算机的处理结果转换为人们可感知的形式(如显示、打印、声音)。 计算机的软件 软件的组成与分类 计算机软件分为系统软件和应用软件。 系统软件:包括操作系统(Windows、Linux、macOS等)、编译程序(GCC、LLVM等)、解释程序、数据库管理系统(MySQL、Oracle等)、汇编程序、链接程序等,负责管理硬件资源和为应用软件提供运行环境。 应用软件:用于完成特定的用户任务,如文字处理(Word)、图像编辑(Photoshop)、科学计算(MATLAB)、网页浏览(Chrome)、游戏、财务软件等。 软件的发展演变 软件从最初的机器语言(二进制代码)、汇编语言(符号化机器指令)发展到高级语言(FORTRAN、C、Java、Python等)和面向对象编程,极大地提高了开发效率和程序的可维护性。随着互联网和人工智能的发展,软件的功能和复杂性也在不断提升。软件开发方法也从结构化方法发展到面向对象、组件化、服务化、敏捷开发、DevOps等模式。开源软件的兴起深刻改变了软件产业格局。 ...

September 3, 2025 · 1 min · farmer3-c

计算机组成原理

计算机组成原理 概论 运算方法和运算器 存储系统 指令系统 中央处理器 总线系统 参考 白中英,戴志涛.计算机组成原理 第6版

September 3, 2025 · 1 min · farmer3-c