微机原理:微型计算机基础

欢迎来到 s a y − f a l l 的文章 欢迎来到say-fall的文章 欢迎来到say−fall的文章

🌈 say-fall:个人主页 🚀 专栏:《手把手教你学会C++》 | 《C语言从零开始到精通》 | 《数据结构与算法》 | 《小游戏与项目》 💪 格言:做好你自己,才能吸引更多人,与他们共赢,这才是最好的成长方式。


前言:

程序员或者电子从业者在学习计算机编程语言的时候经常会遇到一些底层的原理,而这些原理也是随着处理器的发展而发展形成的,本专栏会以C语言为例子,讲解微型计算机的组成原理,本篇文章主要是讲解一下微机运行总概


文章目录


正文:

一、程序在计算机中的执行

计算机中存储的程序都是以01的二进制码存储的,而我们现在的程序都是用计算机不能直接识别的高级语言编写的,下面以C语言的编译过程为例,讲解从源程序到计算机能够执行的程序的过程:

  1. 预处理:
cpp 复制代码
test.c → test.i

预处理程序会读取头文件中的内容,然后将头文件内容插入test.c文件的过程,插入后源文件会变为test.i文件

  • 处理内容:
  1. 展开#include头文件:把<stdio.h>的内容直接复制到main.c中;
  2. 替换#define宏:把代码中的宏全部替换成对应值;
  3. 删除注释:所有//或/* */注释被清空;
  4. 处理条件编译(如#ifdef/#if):根据条件保留 / 删除对应代码;
  5. 保留#line等调试信息(方便后续报错定位行号)。
  1. 编译:
cpp 复制代码
test.i → test.s

编译器将刚才的test.i文件编译为汇编文件,所有的语言编译器都会将高级语言编译为相同的汇编语言

  1. 汇编:
cpp 复制代码
test.s → test.o/obj

汇编会将汇编语言变为计算机可读取的计算机语言指令,打包成一种或可重定位目标文件,将结果保存在目标文件(Hello.o/.obj

  1. 连接:
cpp 复制代码
test.o/obj → test.exe

头文件中包含一些函数,将头文件中的函数(如printf.o)连接到test.o中,连接程序以后就得到了计算机可执行的文件test.exe

二、硬件系统的组成

1. CPU

CPU是执行存储在内存中的指令的引擎,是整个计算机系统的核心,由运算器、控制器和一组寄存器组成。

运算器的主要组成部分是ALU(算术逻辑单元),主要作用是在控制信号下进行运算(执行指令)。

寄存器组是由若干个一字节的寄存器组成,其中有一个关键寄存器是PC(程序计数器),在任何时候,PC中都是内存中机器指令的地址。

控制器是整个CPU的指挥控制中心。

2. 内存(RAM)

RAM,也称运行内存或者主存,是程序运行时的占用空间。也称主存,是一个临时存储设备,在CPU运行时存放指令和数据。内存可以理解为一个物理的线性表,将单元编码,每个单元都是一个独立的地址,每个单元中的一字节数据称为单元内容。

8bit = 1byte

1024byte = 1 MB

3. 总线

总线是贯穿整个系统的一组电子通道,是系统中各部件传输地址、数据和控制信息的公共通路。总线按照字(word)传送,一字中的字节数(字长)是一个基本的系统参数。总线具有公用性,但是某一时刻只能有一个部件或者设备进行信息传送。

4. I/O设备与I/O接口

类似于键盘、鼠标、显示器和外部磁盘等设备,能够通过I/O口与计算机通信的设备称为I/O设备,需要通过I/O接口与主线进行连接,但是计算机与这些外部设备不能直接连接和信息交换,需要适配器或者控制器来与总线相连接。控制器是外部设备或者是主板上的芯片组,适配器一般是插在拓展槽上的卡。

三、冯 · 诺依曼结构

计算机程序是由一条一条的指令组成的,计算机执行程序的过程就是读取指令的过程,下面介绍指令的执行过程:

  1. 取出指令并更新PC:处理器从PC指向的内存地址处读取指令,同时根据指令的字长更新PC的值(下一条指令)
  2. 指令分析:处理器(送入指令译码器)对读取的指令进行分析,解释指令含义。
  3. 读取操作数(可不执行):有需要的话,处理器根据所需指令给出的地址,去内存中寻找执行的数据,拷贝到寄存器中(或者直接从寄存取出),拷贝到运算器中等待运算
  4. 执行指令:ALU执行指令
  5. 传送结果:将执行结果送入指令指定地址。
  6. 继续执行步骤1

四、总线(bus)的详细介绍

1. 总线的分类

总线的条数称为总线宽度,一般为8、16、32条,称为8、16、32位,总线宽度决定了一次传送二进制码的位数,是系统整体性能的关键因素之一

  1. 数据总线:是传送数据用的总线,具有双向性(CPU → 其他设备 and 其他设备 → CPU)

  2. 地址总线:用来传送地址信息,因为所有的地址信息都是由处理器产生的,所以他的传送方向是单向的(CPU → 其他设备),即总是去某个地址取信息/写信息

  3. 控制总线:传送控制信号,控制信号的作用是系统内各部件之间发送操作命令和请求、响应、定时信号。

总体上来说,传送控制信号是双向的,但就某一具体信号,他的传送方向是单向的。

2. 总线操作

微机系统的各种操作从本质上来讲都是总线操作(传输信息)。总线操作的特点是:在任意时刻,总线上只允许一对设备进行信息交换,多个设备进行信息交换时,只能分时使用。

分时使用,即将总线时间分为若干段,每一个时间段完成一次设备间的信息交换,这个时间段称之为一个总线周期或者数据传送周期。

  • 下面介绍总线周期的五个步骤:
    1. 总线请求:想要使用总线的主控设备向总线仲裁机构提出请求。
    2. 总线仲裁:也叫总线判优,决定下个周期谁来使用总线传送信息。
    3. 寻址:主控设备通过地址总线将地址和相关命令传送给从属设备。
    4. 数据传送:主控设备将信息传送给从属设备。
    5. 传送结束:主控设备和从属设备的相关信息从总线上移除,让出总线,以便其他设备使用总线。

3. 总线的基本功能

总线的基本功能包括:数据传送、仲裁控制、总线驱动和出错处理

五、操作系统对硬件的管理

⼀个完整的计算机系统应该是由三层结构组成的,包括硬件、软件和操作系统。

操作系统是⼀组控制和管理计算机软、硬件资源、为⽤⼾提供便捷使⽤计算机的程序集合。

是应⽤程序和硬件之间插⼊的⼀层软件,是⽤⼾和计算机之间进⾏"交流"的界⾯。

操作系统有两个基本功能:管理系统资源、为用户使用计算机提供友好界面

计算机主要通过进程、虚拟内存和文件来实现上述两个功能:

  1. 进程
    进程简单理解就是执行中的程序,程序本身是静态的,而进程是动态的。操作系统会跟踪进程运行时的所有状态信息,有了进程,操作系统就可以暂停当前进程,先执行另一进程,执行完以后再执行原进程。
  2. 虚拟内存
    虚拟内存是为了更有效地利用系统中的内存资源而创造的,他将部分硬盘和内存联合在一起构成一个虚拟内存部分。
  • 这是程序员视角下的虚拟内存
  1. 文件
    文件是数据的一种组织形式,可以是各种种类的信息,现代计算机系统中的大量信息以文件的形式存放在外存中。
  2. 操作系统和软件的协同工作
    计算机开机以后最先执行的程序是操作系统,操作系统被唤醒以后反过来对硬件进行管理,并且协调软件与硬件之间的交互

  • 本节完...
相关推荐
柏木乃一10 小时前
进程(11)进程替换函数详解
linux·服务器·c++·操作系统·exec
ben9518chen10 小时前
Linux文件系统基础
linux·服务器·php
BreezeJuvenile10 小时前
ADC_案例练习:独立模式单通道转换
stm32·单片机·adc·hal·寄存器·单通道采集
ipooipoo118810 小时前
跨境电商IP选型指南:静态IP vs 动态IP 的区别
网络·网络协议·tcp/ip
zd84510150010 小时前
stm32f407 电机多轴联动算法
stm32·单片机·算法
克里斯蒂亚诺更新10 小时前
理解即时通信Socket以及用NodeJs实现WebSocket
网络·websocket·网络协议
代码游侠10 小时前
应用——Linux FrameBuffer图形显示与多线程消息系统项目
linux·运维·服务器·开发语言·前端·算法
stillaliveQEJ10 小时前
【计算机网络】网络发展历程与网络模型
网络·计算机网络
Caitlin_lee_10 小时前
计算机网络期末复习SCAU-第六章
运维·服务器·计算机网络