中央处理器(CPU)(概述、指令周期)

news2025/5/13 13:23:07

一、概述

主要功能:(1)程序控制(2)操作控制(3)时序控制(4)数据加工(5)中断处理

组成:早期冯·诺依曼计算机的 CPU 主要由运算器和控制器两部分构成,现代 CPU 还增加了cache、MMU、浮点运算器等单元。

1.1 CPU 中的主要寄存器

(1)程序计数器(PC)

程序计数器(PC)保存要执行的指令的字节地址,CPU取指令时借助PC来访问主存,Intel x86 系列中称为指令指针寄存器(IP)。PC 位宽与主存地址总线位宽相同。

(2)存储器地址寄存器(AR)

存储器地址寄存器(AR)也可简称为地址寄存器,在 CPU 中AR 通常用来保存 CPU 访问主存的单元地址,无论 CPU 是取指令还是存取数据,都必须先将要访问地址送入 AR,直到读写操作完成。AR 位宽和主存地址总线位宽相同。

(3)存储器数据寄存器(DR)

存储器数据寄存器(DR)也可简称为数据寄存器,在 CPU 中 DR 用于存放从主存中读出的数据或准备写入主存的数据,其数据位宽与机器字长相同。作为 CPU 和主存之间的缓冲寄存器也可用于存放运算器 ALU 的操作数、运算结果或中间结果,以减少访问主存的次数。

(4)指令寄存器(IR)

指令寄存器(IR)用于保存当前正在执行的指令。从主存中取出的指令字存放在 IR 中,其位宽和指令字相同。

(5)通用寄存器组(GR)

通用寄存器组(GR)是指运算器内部的若干寄存器,又称寄存器堆。这些寄存器都对程序员可见,每个寄存器均有对应的地址编号,寄存器地址由指令字中的地址码部分提供。

(6)程序状态字寄存器(PSW/PSR)

程序状态字寄存器(PSW/PSR)用于保存由算术运算指令、逻辑运算指令、测试指令等建立的各种条件标志。另外程序状态字寄存器还可用于保存中断和系统工作的状态信息,以便 CPU 能及时了解计算机运行的状态,从而便于控制程序。

1.2 操作控制器

操作控制器接收指令译码器,形成各种具有严格顺序的操作控制信号,控制相应部件按指令的功能依序进行动作,从而实现指令的功能。

CPU 执行指令的过程就是 CPU 控制信息流的过程,操作控制器是控制的决策机构,其产生的微操作控制信号序列就是控制流。

1.3 时序产生器

指令执行过程中的所有操作都必须按照一定的次序执行,需要引入时序的概念,也就是要对完成指令而执行的微操作控制信号进行时间调制,严格规定各信号的产生时间和持续时间。

操作控制器分为硬布线控制器微程序控制器两种。前者采用时序逻辑,是一种硬时序;后者采用程序存储逻辑,是一种软时序

二、指令周期

2.1 指令执行流程

计算机运行程序的过程,实质上就是由控制器根据程序对应的机器指令序列逐条执行指令的过程。

2.2 指令周期基本概念

指令周期:一条指令从取出到执行完成所需要的时间

一般计算机包含取指周期译码|取操作数周期执行周期写回周期。部分计算机还有中断周期、总线周期和IO周期。

为了便于指令的同步,可进一步将指令周期划分成若干个机器周期(又称 CPU 周期)。通常将从主存取出一个存储字所需的最短时间定义为机器周期,而每个机器周期又可包含若干个时钟周期。

指令周期的机器周期数以及每个机器周期所包含的时钟周期数并不一定是固定的,和具体实现有关,通常分为定长指令周期变长指令周期两种。

2.3 寄存器传送语言

每条指令的执行过程都可以分解为一组操作序列,进而可分解为一组微操作序列。其中“操作”是指功能部件级的动作,微操作是指令序列中最基本的、不可再分割的动作。

 结合C++的原子操作我们能更好理解微操作

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

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

相关文章

MiniCPM-V

一、引言 在多模态大语言模型(MLLMs)快速发展的背景下,现有模型因高参数量(如 72B、175B)和算力需求,仅能部署于云端,难以适配手机、车载终端等内存和算力受限的端侧设备。MiniCPM-V聚焦 “轻量高效” 与 “端侧落地”,通过架构创新、训练优化和部署适配,打造高知识密…

Screeps Arena基础入门

本文主要内容 JavaSsript语法使用VScode编译环境Screeps Arena游戏规则 JavaSsript语法使用 基本数据类型 // String, Numker,Boolean,null, undefined const username "John"; const age 30; const rate 4.5; const iscool true; const x null; #表示值为…

开疆智能Profinet转Canopen网关连接sick RFID读写器配置案例

打开CANopen总线配置软件设置CANopen参数: 1. 使用Profinet转CANopen网关的配置软件修改CANopen主站参数: 首先新建项目,选择对应网关模块 2. 设置波特率:250 kbps(需与SICK RFID读写器一致)。 设置同步…

17.three官方示例+编辑器+AI快速学习webgl_buffergeometry_lines

本实例主要讲解内容 这个Three.js示例展示了如何使用BufferGeometry创建大量线段,并通过**变形目标(Morph Targets)**实现动态变形效果。通过随机生成的点云数据,结合顶点颜色和变形动画,创建出一个视觉效果丰富的3D线条场景。 核心技术包括…

深入掌握CSS定位:构建精密布局的核心技术

一、定位的定义 定位(Positioning)是CSS中用于控制元素在网页中的具体位置的一种机制。通过定位,可以将元素放置在页面的任意位置,并控制其与其他元素的层叠关系。 二、定位的特点与作用 自由摆放位置: 允许元素摆放…

Go语言多线程爬虫与代理IP反爬

有个朋友想用Go语言编写一个多线程爬虫,并且使用代理IP来应对反爬措施。多线程在Go中通常是通过goroutine实现的,所以应该使用goroutine来并发处理多个网页的抓取。然后,代理IP的话,可能需要一个代理池,从中随机选择代…

node.js 实战——express图片保存到本地或服务器(七牛云、腾讯云、阿里云)

本地 ✅ 使用formidable 读取表单内容 npm i formidable ✅ 使用mime-types 获取图片后缀 npm install mime-types✅ js 中提交form表单 document.getElementById(uploadForm).addEventListener(submit, function(e){e.preventDefault();const blob preview._blob;if(!blob)…

Shadertoy着色器移植到Three.js经验总结

Shadertoy是一个流行的在线平台,用于创建和分享WebGL片段着色器。里面有很多令人惊叹的画面,甚至3D场景。本人也移植了几个ShaderToy上的着色器。本文将详细介绍移植过程中需要注意的关键点。 1. 基本结构差异 想要移植ShaderToy的shader到three.js&am…

电脑端音乐播放器推荐:提升你的听歌体验!

在快节奏的职场环境中,许多上班族都喜欢用音乐为工作时光增添色彩。今天要分享的这款音乐工具,或许能为你的办公时光带来意想不到的惊喜。 一、软件介绍-澎湃 澎湃音乐看似是个普通的播放器,实则藏着强大的资源整合能力。左侧功能栏清晰陈列着…

VIC-2D 7.0 为平面样件机械试验提供全视野位移及应变数据软件

The VIC-2D系统是一个完全集成的解决方案,它基于优化的相关算法为平面试样的力学测试提供非接触、全场的二维位移和应变数据,可测量关注区域内的每个像素子集的面内位移,并通过多种张量选项计算全场应变。The VIC-2D 系统可测量超过 2000%变形…

一周学完计算机网络之三:1、数据链路层概述

简单的概述 数据链路层是计算机网络体系结构中的第二层,它在物理层提供的基本服务基础上,负责将数据从一个节点可靠地传输到相邻节点。可以将其想象成一个负责在两个相邻的网络设备之间进行数据 “搬运” 和 “整理” 的 “快递中转站”。 几个重要概念…

单片机-STM32部分:13-1、蜂鸣器

飞书文档https://x509p6c8to.feishu.cn/wiki/V8rpwIlYIiEuXLkUljTcXWiKnSc 一、应用场景 大部分的电子产品、家电(风扇、空调、电水壶)都会有蜂鸣器,用于提示设备的工作状态 二、原理 蜂鸣器是一种将电信号转换为声音信号的器件&#xff0…

动态IP技术赋能业务创新:解锁企业数字化转型新维度

在数字经济高速发展的今天,IP地址已不再是简单的网络标识符,而是演变为支撑企业数字化转型的核心基础设施之一。动态IP技术凭借其灵活、高效、安全的特性,正在重塑传统业务模式,催生出诸多创新应用场景。本文将深入剖析动态IP的技…

TDengine 在金融领域的应用

简介 金融行业正处于数据处理能力革新的关键时期。随着市场数据量的爆炸式增长和复杂性的日益加深,金融机构面临着寻找能够高效处理大规模、高频次以及多样化时序数据的大数据处理系统的迫切需求。这一选择将成为金融机构提高数据处理效率、优化交易响应时间、提高…

OSCP - Hack The Box - Sau

主要知识点 CVE-2023-27163漏洞利用systemd提权 具体步骤 执行nmap扫描,可以先看一下55555端口 Nmap scan report for 10.10.11.224 Host is up (0.58s latency). Not shown: 65531 closed tcp ports (reset) PORT STATE SERVICE VERSION 22/tcp o…

QT6 源(93)篇三:阅读与注释共用体类 QVariant 及其源代码,本类支持比较运算符 ==、!=。

(9) 本类支持比较运算符 、! : 可见, QString 类型里可存储多个 unicode 字符,即使只存储一个 unicode 字符也不等于 QChar。 (10)本源代码来自于头文件 qvariant . h : #ifndef Q…

Maven私服搭建与登录全攻略

目录 1.背景2.简介3.安装4.启动总结参考文献 1.背景 回顾下maven的构建流程,如果没有私服,我们所需的所有jar包都需要通过maven的中央仓库或者第三方的maven仓库下载到本地,当一个公司或者一个团队所有人都重复的从maven仓库下载jar包&#…

力扣210(拓扑排序)

210. 课程表 II - 力扣(LeetCode) 这是一道拓扑排序的模板题。简单来说,给出一个有向图,把这个有向图转成线性的排序就叫拓扑排序。如果有向图中有环就没有办法进行拓扑排序了。因此,拓扑排序也是图论中判断有向无环图…

C++ asio网络编程(5)简单异步echo服务器

上一篇文章:C asio网络编程(4)异步读写操作及注意事项 文章目录 前言一、Session类1.代码2.代码详解3.实现Session类1.构造函数2.handle_read3.介绍一下boost的封装函数和api4.handle_write 二、Server类1.代码2.代码思路详解 三、客户端四、运行截图与流程图 前言 提示&…

【机器人】复现 UniGoal 具身导航 | 通用零样本目标导航 CVPR 2025

UniGoal的提出了一个通用的零样本目标导航框架,能够统一处理多种类型的导航任务。 支持 对象类别导航、实例图像目标导航和文本目标导航,而无需针对特定任务进行训练或微调。 本文分享UniGoal复现和模型推理的过程~ 查找沙发,模…