GESP计算机基础知识

GESP计算机基础知识

1.引言

在踏入C++编程世界的门槛之前,深入理解计算机基础知识是不可或缺的。这不仅有助于我们更好地编写高效、稳定的程序,还能让我们在解决复杂问题时拥有更广阔的视野。

2. 计算机系统结构

计算机系统是由硬件和软件两部分组成,用于存储、检索和处理数据,包括中央处理器(CPU)、存储器、输入/输出设备等。

根据冯·诺依曼结构,计算机由五大基本组成部件组成,分别是:运算器、控制器、存储器、输入设备和输出设备。冯·诺依曼结构将指令和数据存储在同一个存储器中,并使用同一套总线进行数据传输。

根据哈佛结构,计算机由‌CPU、程序存储器和数据存储器组成,采用不同的总线。提供了较大的存储器带宽,使得数据的移动和交换更加方便,尤其适合于提供较高的数字信号处理性能。哈佛结构的‌微处理器通常具有较高的执行效率,能够预先读取下一条指令,减轻了程序运行时的访存瓶颈。

2.1 中央处理器(CPU - Central Processing Unit)

中央处理器(Central Processing Unit,简称CPU)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。CPU自产生以来,在逻辑结构、运行效率以及功能外延上取得了巨大发展。

2.1.1 运算器

运算器是计算机中执行各种算术和逻辑运算的部件,包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作。

  • 组成部分
    算术逻辑单元(ALU):是运算器的核心部件,负责执行算术和逻辑运算。ALU的基本功能包括加、减、乘、除四则运算,以及与、或、非、异或等逻辑操作。
    累加器:专门存放算术或逻辑运算的一个操作数和运算结果的寄存器。能进行加、减、读出、移位、循环移位和求补等操作。
    状态寄存器:用来存放体现当前指令执行结果的各种状态信息(如有无进位、有无溢出、结果正负、结果是否为零等)和控制信息(如允许中断、跟踪标志等)。
    通用寄存器组:用于保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存再读取的操作。
2.1.2 控制器

控制器是指按照预定顺序改变主电路或控制电路的接线和改变电路中电阻值来控制电动机或其他设备的启动、调速、制动和反向的主令装置。在计算机系统中,控制器是发布命令的“决策机构”。

  • 组成部件
    控制器的组成部件主要包括以下几个方面:
    程序计数器(PC):用于存储下一条要执行的指令的地址。
    指令寄存器(IR):用于存放当前正在执行的指令。
    指令译码器:用于对指令进行译码,即分析指令的操作码和操作数,确定执行的具体操作。
    时序产生器:用于产生控制信号的时序,确保各个部件在正确的时间点执行操作。
    操作控制器:根据指令译码器的输出和时序产生器的时序信号,生成相应的控制信号,控制各个部件的工作状态和操作顺序。
    此外,控制器还包括寄存器(如累加器、状态寄存器等)、时钟(提供稳定的时钟信号,同步各个部件的工作)等部件。
2.1.3 性能指标

CPU的性能指标主要包括主频、外频、倍频、前端总线频率、CPU的位和字长、缓存、CPU扩展指令集等。这些指标决定了CPU的运算速度、数据处理能力和兼容性等方面。

  • 主频
    主频即CPU的时钟频率,计算机的操作在时钟信号的控制下分步执行,每个时钟信号周期完成一步操作,时钟频率的高低在很大程度上反映了CPU速度的快慢。

  • 外频
    CPU外频是指CPU与主板上的外部总线之间的数据传输速度,通常以兆赫兹(MHz)为单位表示。CPU外频决定了数据在CPU和其他系统组件之间传输的速率。

  • 倍频
    CPU倍频,全称是倍频系数。CPU的核心工作频率与外频之间存在着一个比值关系,这个比值就是倍频系数,简称倍频。 理论上倍频是从1.5一直到无限的,但需要注意的是,倍频是以0.5为一个间隔单位。


  • CPU的位‌指的是处理器能够处理的数据位数,这是衡量CPU性能的一个重要指标。
    CPU的位(bit)是处理和存储数据的最小单位。

  • 字长
    CPU的字长是指它在单位时间内能够一次性处理的二进制数字的位数。
    所以能处理字长为8位数据的CPU通常就叫8位的CPU。
    CPU的字长可以是8位、16位、32位或64位。

  • 缓存
    CPU缓存(Cache Memory)是计算机系统中一个至关重要的组成部分,它位于CPU与内存之间,作为两者之间的临时存储器。以下是对CPU缓存的详细解析:

  • 定义:CPU缓存是一种高速的存储器,用于存储CPU即将访问的数据和指令。

  • 作用:减少CPU访问内存所需的时间,从而提高系统的整体性能。CPU缓存通过存储最近访问的数据和指令,减少了CPU对内存的依赖,从而提高了处理速度和效率。
    分类与结构

  • CPU缓存的多层结构:一级缓存(L1 Cache)、二级缓存(L2 Cache)和三级缓存(L3 Cache)

  • 一级缓存(L1 Cache):

  • 定义:CPU内部最接近核心的部分,是CPU最先访问的缓存。它分为数据缓存(D-Cache)和指令缓存(I-Cache)两部分,分别用于存储数据和指令。
    特点:容量最小(一般在几十KB到几百KB之间),但访问速度最快,几乎与CPU的运行速度相匹配。
    作用:极大地减少CPU对内存的访问次数,提高数据读取速度,是CPU性能提升的关键因素之一。

  • 二级缓存(L2 Cache):
    定义:位于CPU和一级缓存之间,作为一级缓存和内存之间的缓冲。
    特点:容量大于一级缓存但小于内存,访问速度略慢于一级缓存但远大于内存。其容量通常从几百KB到几MB不等。
    作用:进一步减少CPU对内存的访问次数,提高系统的整体性能。当CPU在一级缓存中未找到所需数据时,会转向二级缓存进行查找。

  • 三级缓存(L3 Cache):
    定义:CPU缓存体系中的最后一层,位于二级缓存和内存之间。
    特点:容量最大(可以从几MB到几十MB不等),但访问速度相对较慢。然而,与内存相比,其访问速度仍然具有显著优势。
    作用:主要用于缓解二级缓存和内存之间的速率差,进一步减少CPU对内存的访问次数。在拥有三级缓存的CPU中,只有极少数数据需要从内存中直接读取。

查看主频有以下两种方式:
方法一:Ctrl+Shift+Esc 键打开任务管理器->性能->CPU->基准速度
方法二:通过系统信息查看

查看外频和倍频有以下两种方式:
方法一:下载AIDA软件,可在超频选项中查看倍频
方法二:在电脑启动时,按下键盘上的Delete键进入BIOS设置界面。在BIOS设置界面中,您可以找到与外频相关的设置选项。具体位置可能因主板和BIOS版本而异,但通常可以在“Advanced”(高级设置)或“Performance”等菜单下的“CPU Frequency”、“Turbo Boost”或类似的名称中找到。

2.2 存储器

存储器是计算机系统中的记忆设备,负责保存和管理各种数据和信息。

存储器可以根据多种标准进行分类,以下是几种常见的分类方式:

### C++ GESP 一级考试基础知识概念教程 #### 计算机基础和操作系统 GESP C++ 一级官方考试大纲不仅涵盖了编程技能,还包括计算机基础知识的要求。学生需理解计算机的构成与操作,以及计算机的发展历程[^3]。 #### 开发环境设置 为了参加 GESP C++ 一级考试,考生应熟悉 Dev C++ 这一集成开发环境 (IDE) 的基本使用方法。这包括创建新项目、编写代码、编译运行程序等基本操作[^1]。 ```cpp // 创建并保存文件名为 main.cpp 的源码文件 #include <iostream> int main() { std::cout << "Hello, World!" << std::endl; return 0; } ``` #### 编程基础语法 ##### 数据类型与变量定义 掌握不同类型的数据表示法及其适用范围是学习任何一门编程语言的基础之一。对于 C++ 来说,常见的数据类型有整型 `int`、浮点数 `float/double` 和字符型 `char/string` 等。 ```cpp int age = 20; // 定义一个整型变量age 并赋值为20 double height = 1.75; // 定义双精度浮点型height 变量并初始化为1.75米 std::string name = "Alice"; // 使用标准库中的字符串类来存储名字"Alice" ``` ##### 输入输出流 能够正确处理输入输出也是重要的考点之一。C++ 中常用的标准输入输出函数分别为 `cin` 和 `cout`,它们分别用于接收键盘输入并将结果显示到屏幕上。 ```cpp #include <iostream> using namespace std; int main(){ int num; cout<<"请输入一个数字:"; cin>>num; cout<< "您输入的是:" << num << endl; return 0; } ``` ##### 控制结构 控制结构决定了程序执行流程的方向,在这里主要考察三种类型的逻辑构建方式: - **条件判断(分支)**:依据特定条件决定是否执行某段代码块; - **循环迭代**:当满足一定条件下重复执行一段或多段相同的操作直至结束。 以下是关于这些控制结构的具体实现例子: ###### 分支结构示例 ```cpp if (condition){ statement1; } else{ statement2; } switch(expression){ case value1 : statements ; break ; /*可选*/ default : /*默认情况下的处理语句*/ default_statements; } ``` ###### 循环结构实例 ```cpp for(init_stmt; condition_expr; increment_expr){ loop_body; } while(condition){ body_of_while_loop; } do{ do_while_body; }while(condition); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rocjian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值