计算机系统(软考版)----计算机系统基础知识、基本单位与进制(1)

文章目录

  • 计算机系统基础知识
    • 一 硬件组成
    • 二 CPU功能
    • 三 CPU组成
      • 运算器
      • 控制器
      • 寄存器组
    • 练习题(答案为加粗部分)
  • 计算机基本单位与进制
    • 一 计算机基本单位
    • 二 进制
      • 1 概述
      • 2 进制转换
      • 3 进制加减
    • 练习题(答案为加粗部分)

计算机系统基础知识

一 硬件组成

计算机系统是由硬件和软件组成的,它们协同工作来运行程序。计算机的基本硬件系统由运算器、控制器、存储器、输入设备和输出设备5大部件组成。运算器、控制器等部件被集成在一起统称为中央处理单元(Central Processing Unit,CPU)。(标黄这个需要记忆)CPU是硬件系统的核心,用于数据的加工处理,能完成各种算术、逻辑运算及控制功能。存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速度高、容量小,一般用于临时存放程序、数据及中间结果。而后者容量大、速度慢,可以长期保存程序和数据。输入设备和输出设备合称为外部设备(简称外设),输入设备用于输入原始数据及各种命令,而输出设备则用于输出计算机运行的结果。

二 CPU功能

中央处理单元(CPU)是计算机系统的核心部件,它负责获取程序指令、对指令进行译码并加以执行。
在这里插入图片描述

三 CPU组成

CPU主要由运算器、控制器、寄存器组和内部总线等部件组成
在这里插入图片描述

运算器

运算器由算术逻辑单元(Arithmetic and Logic Unit,ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器等组成。它是数据加工处理部件,用于完成计算机的各种算术和逻辑运算。相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。

运算器有如下两个主要功能。
执行所有的算术运算,例如加、减、乘、除等基本运算及附加运算。
执行所有的逻辑运算并进行逻辑测试,例如与、或、非、零值测试或两个值的比较等。

运算器中各组成部件的功能

  1. 算术逻辑单元(ALU)。ALU是运算器的重要组成部件,负责处理数据,实现对数据的算术运算和逻辑运算。
  2. 累加寄存器(AC)。AC通常简称为累加器,它是一个通用寄存器,其功能是当运算器的算术逻辑单元执行算术或逻辑运算时,为ALU提供一个工作区。例如,在执行一个减法运算前,先将被减数取出暂存在AC 中,再从内存储器中取出减数,然后同AC的内容相减,将所得的结果送回AC中。运算的结果是放在累加器中的,运算器中至少要有一个累加寄存器。为ALU提供数据并暂存运算结果
  3. 数据缓冲寄存器(DR)。在对内存储器进行读/写操作时,用DR暂时存放由内存储器读/写的一条指令或一个数据字,将不同时间段内读/写的数据隔离开来。DR的主要作用为:作为CPU和内存、外部设备之间数据传送的中转站;作为CPU和内存、外围设备之间在操作速度上的缓冲;在单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数寄存器。
  4. 状态条件寄存器(PSW)。PSW保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,主要分为状态标志和控制标志,例如运算结果进位标志(C)、运算结果溢出标志(V)、运算结果为0标志(Z)、运算结果为负标志(N)、中断标志(I)、方向标志(D)和单步标志等。这些标志通常分别由 1 位触发器保存,保存了当前指令执行完成之后的状态。通常,一个算术操作产生一个运算结果,而一个逻辑操作产生一个判决。 保存由算数指令和逻辑指令运行或测试的结果建立的各种条件码内容。

控制器

指令 = 操作码 + 地址码
例如:1 + 2 中 1 和 2 为地址码; + 为操作码。

运算器只能完成运算,而控制器==用于控制整个CPU 的工作,它决定了计算机运行过程的自动化。它不仅要保证程序的正确执行,而且要能够处理异常事件。==控制器一般包括指令控制逻辑、时序控制逻辑、总线控制逻辑和中断控制逻辑等几个部分。
指令控制逻辑要完成取指令、分析指令和执行指令的操作,其过程分为取指令、指令译码、按指令操作码执行、形成下一条指令地址等步骤。

  1. 指令寄存器(IR)。当CPU执行一条指令时,先把它从内存储器取到缓冲寄存器中,再送入IR暂存,指令译码器根据 IR 的内容产生各种微操作指令,控制其他的组成部件工作,完成所需的功能。保存当前CPU执行的指令(指令 = 操作码 + 地址码)
  2. 程序计数器(PC)PC具有寄存信息和计数两种功能,又称为指令计数器。程序的执行分两种情况,一是顺序执行,二是转移执行。在程序开始执行前,将程序的起始地址送入PC,该地址在程序加载到内存时确定,因此PC的内容即是程序第一条指令的地址。执行指令时,CPU自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单地对PC加1。当遇到转移指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量得到,或者根据转移指令给出的直接转移的地址得到。
  3. 地址寄存器(AR)。AR保存当前CPU所访问的内存单元的地址。由于内存和CPU存在着操作速度上的差异,所以需要使用AR保持地址信息,直到内存的读/写操作完成为止。
  4. 指令译码器(ID)。指令包含操作码和地址码两部分,为了能执行任何给定的指令,必须对操作码进行分析,以便识别所完成的操作。指令译码器就是对指令中的操作码字段进行分析解释,识别该指令规定的操作,向操作控制器发出具体的控制信号,控制各部件工作,完成所需的功能。对指令中的操作码字段进行分析解释

时序控制逻辑要为每条指令按时间顺序提供应有的控制信号。总线逻辑是为多个功能部件服务的信息通路的控制电路。中断控制逻辑用于控制各种中断请求,并根据优先级的高低对中断请求进行排队,逐个交给CPU 处理。

指令寄存器(IR)存放的是从内存中取得指令,就像个中间站一样,不过是存放指令的中间站

程序计数器(PC)存放的是指令的地址,还有计数的功能

地址寄存器(AR)存放的是cpu访问内存单元的地址

指令译码器(ID)是把操作码解析成对应的指令操作

PC:程序计数器(PC)保存下一条要执行或解码的指令的地址。
IR:指令寄存器(IR)保存当前正在执行或解码的指令。

寄存器组

寄存器组可分为专用寄存器和通用寄存器。运算器和控制器中的寄存器是专用寄存器,其作用是固定的。通用寄存器用途广泛并可由程序员规定其用途,其数目因处理器不同有所差异。

用户可见:通用寄存器组、程序状态字寄存器(PSWR)、程序计数器(PC)、累加寄存器(ACC)
用户不可见:指令寄存器(IR)、暂存寄存器(DR)、存储器地址寄存器(MAR)、存储器数据寄存器(MDR)

练习题(答案为加粗部分)

  1. 在CPU中,常用来为ALU执行算术逻辑运算提供数据并暂存运算结果的寄存器是 (1) 。(2014年上半年)
    (1) A. 程序计数器 B. 状态寄存器
    C. 通用寄存器 D. 累加寄存器

  2. 属于CPU中算术逻辑单元的部件是 (3) 。(2014年下半年)
    (3) A. 程序计数器 B. 加法器 C. 指令寄存器 D. 指令译码器

  3. CPU执行算术运算或者逻辑运算时,常将源操作数和结果暂存在 (1) 中。(2017年上半年)
    (1) A. 程序计数器(PC) B. 累加器(AC)
    C. 指令寄存器(IR) D. 地址寄存器(AR)

  4. 以下关于CPU的叙述中,错误的是 (1) 。(2009年下半年)
    (1) A. CPU产生每条指令的操作信号并将操作信号送往相应的部件进行控制
    B. 程序计数器PC除了存放指令地址,也可以临时存储算术/逻辑运算结果
    C. CPU中的控制器决定计算机运行过程的自动化
    D. 指令译码器是CPU控制器中的部件

  5. 计算机指令一般包括操作码和地址码两部分,为分析执行一条指令,其 (5) 。(2010年上半年)
    (5) A. 操作码应存入指令寄存器(IR),地址码应存入程序计数器(PC)
    B. 操作码应存入程序计数器(PC),地址码应存入指令寄存器(IR)
    C. 操作码和地址码都应存入指令寄存器(IR)
    D. 操作码和地址码都应存入程序计数器(PC)

  6. 在CPU的寄存器中, (5) 对用户是完全透明的。(2011年下半年)
    (5) A. 程序计数器 B. 指令寄存器
    C. 状态寄存器 D. 通用寄存器(书上没提,这里单独记忆一下。)

  7. CPU中译码器的主要作用是进行 (6) 。(2011年下半年)
    (6) A. 地址译码 B. 指令译码
    C. 数据译码 D. 选择多路数据至ALU

  8. 在CPU中, (1) 不仅要保证指令的正确执行,还要能够处理异常事件。(2012年下半年)
    (1) A. 运算器 B. 控制器
    C. 寄存器组 D. 内部总线

  9. 计算机执行指令的过程中,需要由 (1) 产生每条指令的操作信号并将信号送往相应的部件进行处理,以完成指定的操作。(2019年上半年)
    (1) A. CPU的控制器 B. CPU的运算器
    C. DMA控制器 D. Cache控制器

  10. 为实现程序指令的顺序执行,CPU (1) 中的值将自动加1。(2010年上半年)
    (1) A. 指令寄存器(IR) B. 程序计数器(PC)
    C. 地址寄存器(AR) D. 指令译码器(ID)

  11. 在CPU中用于跟踪指令地址的寄存器是 (1) 。(2011年上半年)
    (1) A. 地址寄存器(MAR) B. 数据寄存器(MDR)
    C. 程序计数器(PC) D. 指令寄存器(IR)

  12. 计算机在一个指令周期的过程中,为从内存读取指令操作码,首先要将 (2) 的内容送到地址总线上。(2016年下半年)
    (2) A. 指令寄存器(IR) B. 通用寄存器(GR)
    C. 程序计数器(PC) D. 状态寄存器(PSW)

  13. CPU在执行指令的过程中,会自动修改 (1) 的内容,以便使其保持的总是将要执行的下一条指令的地址。(2018年下半年)
    (1) A. 指令寄存器 B. 程序计数器
    C. 地址寄存器 D. 指令译码器

  14. 计算机中提供指令地址的程序计数器PC在 (2) 中。(2020年下半年)
    (2) A. 控制器 B. 运算器
    C. 存储器 D. I/O设备

  15. 在CPU中,用 (1) 给出将要执行的下一条指令在内存中的地址。(2021年上半年)
    (1) A. 程序计数器 B. 指令寄存器
    C. 主存地址寄存器 D. 状态条件寄存器

计算机基本单位与进制

一 计算机基本单位

中文名称英文名称英文缩写转换关系
位(比特)bitb
字节byteB1 B = 8b
千字节KBK1KB = 1024B
兆字节MB1MB = 1024KB
吉字节GB1GB = 1024MB
太字节TB1TB = 1024GB了解:
   了解: 计算机中最小的数据单位: b
         最小的操作单位: byte

二 进制

1 概述

进制后缀表示基数
二进制B0和1
八进制O0-7
十进制D0-9
十六进制H0-9,A-F (0-15)

基数是指一种进制中组成的基本数字,也就是不能再进行拆分的数字

2 进制转换

(1) 十进制

n 进制转 十进制
在这里插入图片描述
十进制转n进制(除 n 取余法)
从下朝上看
(2)二进制

转八进制
在这里插入图片描述
转十六进制
在这里插入图片描述
转十进制,参考 (1)十进制
(3)八进制

转二进制
在这里插入图片描述
转十六进制
在这里插入图片描述
转十进制,参考 (1)十进制
(4)十六进制

转二进制
在这里插入图片描述
转八进制
在这里插入图片描述
转十进制,参考 (1)十进制

3 进制加减

(1)相加

规则: 逢 n 进 1
在这里插入图片描述
(2)相减
规则: 借 1 转 n
在这里插入图片描述

练习题(答案为加粗部分)

类型1: 给你一个地址的范围,问你有几个存储单元
假设地址范围为[1,6]
存储单元个数 : (6 - 1) + 1 = 6
在这里插入图片描述

类型2:给你一个地址范围,再给你一个芯片的大小,问你需要几片芯片
假设芯片大小为 2,地址范围为[1,6]
先计算存储单元个数: (6 - 1) + 1 = 6
再计算需要多少片芯片: 6/2 = 3
在这里插入图片描述

1 示例1

内存单元按字节编址,地址0000A000H〜0000BFFFH共有 (2) 个存储单元。(2012年上半年)
(2) A. 8192K B. 1024K C. 13K D. 8K

分析: 在这里插入图片描述

答案: D

2 示例2

地址编号从80000H到BFFFFH且按字节编址的内存容量为 (5) KB,若用 16K x 4bit 的存储器芯片构成该内存,共需 (6) 片。(2013年上半年)
(5) A. 128 B. 256 C. 512 D. 1024
(6) A. 8 B. 16 C. 32 D. 64

分析:在这里插入图片描述

答案: 256 32

3 示例3(%)
设用 2K x 4 位的存储器芯片组成 16K x 8 位的存储器(地址单元为0000H〜3FFFH,每个芯片的地址空间连续),则地址单元0B1FH所在芯片的最小地址编号为 (4) 。(2010年下半年)
(4) A. 0000H B. 0800H C. 2000H D. 2800H
在这里插入图片描述

存储器是8bit的,而芯片是4bit的。因此需要用两片芯片构成一个8bit的
在这里插入图片描述

地址单位 0B1FH 位于 0800H~0FFFH之间, 因此最小地址编号为 0800H

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Rust 最新版1.75.0升级记

升级方法 稳定版 C:\>rustup update stable info: syncing channel updates for stable-x86_64-pc-windows-msvc info: latest update on 2023-12-28, rust version 1.75.0 (82e1608df 2023-12-21) info: downloading component cargo 5.9 MiB / 5.9 MiB (100 %) 3.…

C#超市管理系统源码

C#超市管理系统源码 功能齐全的超市管理系统,专门美化过UI 请先附加数据库,否则无法进入系统 默认拥有最高权限账户为经理,密码为admin 压缩包内有使用说明

Postman接口测试神器从安装到精通

Postman 的优点: 支持各种的请求类型: get、post、put、patch、delete 等支持在线存储数据,通过账号就可以进行迁移数据很方便的支持请求 header 和请求参数的设置支持不同的认证机制,包括 Basic Auth,Digest Auth,OAu…

索引策略-多列索引

一. 前言 当我们对多列索引的理解不够深刻的时候,往往会为每个列创建独立的索引或者按照错误的顺序创建多列索引。 二. 案例说明 问题一: 为每个列创建独立索引 CREATE TABLE t(c1 INT,c2 INT,c3 INT,KEY(c1),KEY(c2),KEY(c3) );这种索引策略,一般都是由于人们听到一些专家诸…

【Python进阶必备】一文掌握re库:实战正则表达式

目录 re库初识 re库基础使用方法 compile()函数 基本用法 正则表达式常用规则字符 match与search方法 match search match/search findall与finditer方法 使用findall()返回所有匹配项 使用findall()提取多个组的匹配 使用finditer()逐个返回Match对象 使用findi…

Android14之解决Pixel手机联网出现感叹号(一百八十)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

MySQL的Windows系统安装

一、MySQL的Windows系统安装 1、下载MySQL安装包 打开如下链接地址,下载安装包 2、安装并配置 双击下载好的安装包进行安装,出现如下界面: 选择【 Full 】选项,然后单击【 Next 】按钮。 出现如下界面,单击【 Execute…

数据结构实战:利用JavaScript和Python实现链表

文章目录 一、实战概述二、链表(一)链表概述(二)结点结构(二)链表结构 三、利用JavaScript实现链表(一)创建LinkedList.js(二)创建LinkedList.html&#xff0…

数字图像处理常用算法的原理和代码实现详解

本专栏详细地分析了常用图像处理算法的数学原理、实现步骤。配有matlab或C实现代码,并对代码进行了详细的注释。最后,对算法的效果进行了测试。相信通过这个专栏,你可以对这些算法的原理及实现有深入的理解!   如有疑问&#xf…

中通快递批量查询方法

你是否经常需要处理大量的中通快递单号,却苦于一个个等待查询?现在,有了固乔快递查询助手,这个问题迎刃而解!通过批量查询功能,你可以轻松管理、追踪你的中通快递单号,大大提高工作效率。 一、下…

结构体成员 分数比较大小

题目&#xff1a; 代码&#xff1a; #include <bits/stdc.h> #include<cstring>using namespace std;struct Num{double fenzi;double fenmu;char fenhao;};bool cmp(Num r1,Num r2){return r1.fenzi/r1.fenmu<r2.fenzi/r2.fenmu;}int main(){int n;Num num[n…

基于net6的asp.net core webapi项目打包为docker镜像,并推送至私有镜像仓库harbor中

基于net6的asp.net core webapi项目打包为docker镜像&#xff0c;并推送至私有镜像仓库harbor中 0、环境说明1、打包步骤1.1 创建Asp.net core WebApi项目1.2 在Asp.net core WebApi项目根目录下创建Dockerfile文件1.3 在子系统Ubuntu20.04.4中通过docker build生成docker镜像1…

游戏测试大揭秘,帮你轻松过关

游戏测试可以看作是软件测试的一个分支&#xff0c;黑盒测试最基本的要求是会玩游戏。小公司会要求测试能力更加全面的员工&#xff0c;其中除了功能测试还要会性能测试&#xff0c;兼容测试&#xff0c;弱网测试&#xff0c;自动化测试等。 游戏测试是游戏开发过程中必不可少…

vue2-手写轮播图

轮播图5长展示&#xff0c;点击指示器向右移动一个图片&#xff0c;每隔2秒移动一张照片&#xff01; <template><div class"top-app"><div class"carousel-container"><div class"carousel" ref"carousel">&…

Tensorflow2.0笔记 - 修改形状和维度

本次笔记主要使用reshape&#xff0c;transpose&#xff0c;expand_dim&#xff0c;和squeeze对tensor的形状和维度进行操作。 import tensorflow as tf import numpy as nptf.__version__#tensor的shape和维数获取 #假设下面这个tensor表示4张28*28*3的图片 tensor tf.rando…

RAG 详解

原文&#xff1a;GitHub - Tongji-KGLLM/RAG-Survey 目录 RAG调查 什么是RAG&#xff1f;RAG的范式 幼稚的 RAG高级 RAG模块化 RAG如何进行增强&#xff1f;RAG 还是微调&#xff1f;如何评估 RAG&#xff1f;前景 严峻的挑战多式联运扩展RAG的生态系统RAG论文清单 增强阶段 …

C++多线程学习[二]:线程的传参以及传参的一些坑

一、线程的传参 #include<iostream> #include<thread> #include<string> using namespace std; void threadtest(int a,double b,string str) {this_thread::sleep_for(100ms);cout << a << " " << b << " " &…

【Linux】编写第一个小程序:进度条

文章目录 1. 预备知识1.1 简单认识几个函数1.1.1 sleep()1.1.2 fflush()1.1.3 usleep()1.1.4 memset() 1.2 缓冲区1.3 回车与换行 2. 编写入门版的进度条2.1 基本逻辑2.2 美化效果2.3 代码实现2.4 执行效果 3. 编写升级版的进度条3.1 代码实现3.2 执行效果 1. 预备知识 1.1 简…

C++每日一练(15):简单幂计算

题目描述 输入两个数a和b&#xff0c;求a的b次方。 输入 输入两个整数a&#xff0c;b&#xff08;1<a<10&#xff0c;1<b<15&#xff09;。 输出 输出一个正整数&#xff0c;该值<1000000000000。 输入样例 3 3 输出样例 27 参考答案 #include<bits/stdc.h&…

企业级iptalbes防火墙

一、IPtables介绍 Iptables是unix/linux自带的一款开源的基于包过滤(对OSI模型的四层或者是四层以下进行过滤)的防火墙工具&#xff0c;它的功能十分强大&#xff0c;可以对流入和流出服务器的数据包进行很精细的控制。 iptables其实并不是真正的防火墙&#xff0c;我们可以把…