计算机之个人理解记录--1

来源:互联网 发布:淘宝套现 编辑:程序博客网 时间:2024/06/16 05:27

计算机之三大主要器件:CPU、内存、外设。

CPU:众所周知为中央处理器,之所以称为中央处理器主要是因为它处理了所有的事物(程序,指令集合),姑且不去研究CPU的内部逻辑器件。单纯从把CPU单作一个整体来理解,那么CPU只是用来执行指令的,它执行自己所支持的指令,工作在某种模式(对于某种模式只是CPU执行时的特权不一样,例如不能访问某个寄存器,而这些都是硬件上实现的,通过某些寄存器位来转换的:某些位段的组合来识别不同的模式),然后把程序执行完。

内存:简单说就是存放数据的,分随机存取存储器、只读存储器。

外设:各种人机交互设备。


之前学过单片机,单片机是一集CPU、内存、外设于一身的芯片,所以制作一个最小系统时,提供所需的电源、时钟和复位即可。单片机的CPU有自己的体系架构,像之前学过的51单片机,里面是51核,支持自己的指令集,stm32为cortex内核等等。每个体系结构会有自己的一套开发平台,将各种编程语言编写的程序编译成相应的指令集合。

从一个最简单的例子来阐述计算机执行过程:开发平台中将自己编写的程序编译、链接成可执行的二进制文件,通过工具将二进制文件下载到内存中,CPU开始执行程序直到结束。到这里就可以看到当不需要使用任何外设时,计算机只需要CPU和内存就可以执行程序了。

现在考虑一下复杂点的问题:程序的功能是要向我们显示一个字符。那么就应该需要一个可以向我们展示字符的外设,就举一个一位数码管吧。这样数码管就看做是外设了,但是问题来了:数码管怎么连接呢?CPU只能通过某种指令向某个地址写数据和执行移位、位操作、加法和减法运算,那么是怎么连接到CPU的呢?

先不考虑电压问题,之前学过微机,知道8086单独给I/O空间编址,通过in、out指令来实现。所以现在需要将IO总线和数码管连接起来,具体怎么接研究微机的IO章节。这样就可以通过out某个地址和将需要显示的数据发送就可以在数码管上连接了。

以上问题解决了,但是学习过单片机都知道单片机会有gpio(通用输出输入引脚),它们是怎么实现的呢?-----主要是像上述接数码管那样,只不过在IO总线接的是IO控制器,而不是具体的外设罢了。这样CPU通过in、out指令读取IO控制器的数据,就可以和接到IO控制器上的外设收发数据,进行交互了。当然现在是不考虑IO控制器的具体构造和CPU和它们之间的时序实现,底层的都不考虑了。

待续...

0 0