计算机之个人理解记录--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和它们之间的时序实现,底层的都不考虑了。
待续...
- 计算机之个人理解记录--1
- 关于计算机中补码的个人理解
- 计算机原理-(个人理解-未完善)
- MVC之个人理解
- shuffle之个人理解
- KMP之个人理解
- BeanUtils之个人理解
- 扁平化的理解(个人记录)
- C语言中的指针-记录个人理解
- 委托的用法(个人理解记录)
- C#委托之个人理解
- C#委托之个人理解
- 递归算法之个人理解
- C#委托之个人理解
- C#委托之个人理解
- C#委托之个人理解
- JAVA NIO之个人理解
- C#委托之个人理解
- ios面试题
- C++中的纯虚函数与抽象类
- 录制、回放乱码问题解决办法和快照问题解决办法.
- 1-4 输出菱形
- 错误检查(Project将某年某月的日期表示方式转化为某年中第几天的表示方式)
- 计算机之个人理解记录--1
- ACM——The Dragon of Loowater(UVa 11292)
- 3.1.2.2 嵌套函数声明(NESTED FUNCTION DECLARATIONS)
- ubuntu下播放视频只有声音但黑屏的解决办法
- JAVA并发编程学习笔记之CLH队列锁
- copy_to_user()和copy_from_user()
- 解析包时出现问题
- Crash log debug 崩溃日志处理 (日志符号化)
- javascript detect mobile device