1.计算机概述

计算机系统概述

1.冯诺依曼架构

QQ截图20230311165244

冯诺依曼架构由五部分构成

  • 在现代的计算机架构与冯诺依曼架构基本一致,例如 CPU 由控制设备和逻辑运算设备构成,内存和磁盘构成存储设备,输入设备有鼠标、键盘等,输出设备有显示屏等

2.计算机基本硬件组成

  • 计算机基本组成的硬件有 中央处理器(CPU)、内存(主存)、磁盘/硬盘

QQ截图20230311165309

3.计算机性能指标

1.性能

  • 响应时间:指计算机完成某个任务所需的时间
  • 吞吐率(带宽):单位时间内完成任务的数量

对于某个计算机其性能表示为: 性能 = 1 / 执行时间, 即响应时间越短性能越好

2.CPU性能

要描述CPU性能先要知道时钟频率,也叫主频,其是时钟周期的倒数,是指每秒多少个时钟周期

QQ截图20221203210841

时钟周期:就是一个上升沿到下一个上升沿的时间,对于时钟周期和时钟频率的单位转换关系如图

CPU性能除了与时钟频率有关还与CPI (Cycle Pre Instruction)有关,其意思就是平均执行每条指令需要的时钟周期

  • CPU性能的表示公式:CPU的时间 = 指令数 * CPI * 时钟周期
  • 也等于 CPU的时间 = 指令数 * CPI / 时钟频率

3.MIPS与其他指标

  • MIPS(Million Instructions Per Second),没秒执行百万条指令数

  • 其描述指令执行的效率,越大效率越高,与执行时间成反比

    其计算公式为 MIPS = 指令数 / (执行时间 * 1e6) , 同时执行时间为 指令数 * CPI / 时钟频率,

    化简为 MIPS = 时钟频率 / (CPI * 1e6)

同样类似与MIPS的单位量还有下图这些,本质上与MIPS一直只是每个单位之间都扩大1e3

QQ截图20221203212327

4.高级程序到机器程序

#include <stdio.h>

int main()
{
    printf("Hello World\n");
    return 0;
}

以这个程序为例子,进行从高级程序到机器程序的转化,步骤如下

QQ截图20221203212652

当我们写下上面的hello.c 的程序后,在Linux命令行中输入 gcc -o hello hello.c , 就可以得到hello的可执行文件,下面我们将其分步进行

  1. 当我们输入 gcc -E -o hello.i hello.c 时,预处理器回对.c文件进行预处理,然后生成hello.i文件
  2. 当我们输入gcc -S -o hello.s hello.i 时,编译器回对hello.i 文件进行编译,然后生成hello.s文件
  3. 当我们输入 as -o hello.o hello.s时,汇编器回对hello.s 进行汇编,然后生成可重定位文件 hello.o
  4. 最后,链接器将hello.o 和其他需要文件进行链接然后生成可执行文件 hello

对上面文件进行解释:

  • .i 文件其实就是将头文件、define的进行替换之后的文件
  • .s文件就是将.i 文件 "翻译"成汇编代码之后的文件
  • .o文件就是将.s文件 "翻译"成机器代码之后的文件

posted on   一七_2  阅读(126)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示