查看: 1415|回复: 0
打印 上一主题 下一主题

关于CPU的知识杂谈

[复制链接]
跳转到指定楼层
沙发
发表于 2018-4-27 16:52:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、 程序在CPU里面的执行
CPU只能识别1010的二进制,所以我们在电脑上写好的程序必须要经过编译器转换才可以被CPU识别和执行。
首先C等高级语言写好的源代码要经过编译器转换成“.S”的汇编源代码再经过汇编器转换成Elf(也可以是其他的二进制格式)格式的二进制的可执行程序在用Objcopy工具转换成Bin格式的烧录文件(还是二进制文件只是剔除了一些不需要的文件),烧录到Flash里面,CPU通过总线读取后解码,解码完了CUP在执行指令。
汇编的实质其实是机器指令(机器码,就是一串0101的二进制)的助记符,机器的指令集是CPU的设计者制定的,不同的CPU机器指令集设计不同(因此用汇编写的程序很难在不同的cup之间移植),这些指令可以控制CPU的内部的逻辑电路,因为它是直接控制CPU的所以汇编的执行效率是最高的,机器指令集有点类似CPU设计者开放给程序员的API接口函数。
2、 CISC(complex instruction set computer),复杂指令集CUP
CISC就是用最少的指令来完成任务,只需要输入一个指令,很多其他的计算由硬件电路实现,每个指令都对应一个复杂的电路,(两三百个指令就对应两三百个复杂的硬件电路),比如增加一个串口外设,就要对应增加操作这个外设的指令,CISC的本身设计复杂工艺复杂,但是编译器好设计,inter至今还在使用CISC设计。
3、 RISC(reduced instruction set computer),精简指令集CUP
RISC就是让软件来实现具体的任务,CPU本身只提供基本的指令集,因此对应的硬件电路相对简单(这里的硬件是CPU内部的逻辑电路),ARM的CPU就是精简指令集的,访问外设和访问内存是差不多的,所以只需一些操作内存或者数据移动等一些指令,常用的指令就几十个,但是编译器的设计变难了。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表