元件是电子中的基本零件;而器件常由几个元件组成,有时也指较大的元件。html
元件主要包括电阻、电容、电感;器件种类更多,有双极性晶体三极管、场效应晶体管、可控硅、半导体电阻电容等。编程
元件对电压、电流无控制和变换做用;而器件对电压、电流有控制、变换做用(放大、开关、整流、检波、振荡和调制等)。缓存
参考:http://m.elecfans.com/article/589969.html 元件和器件的区别架构
模拟电路:ide
处理模拟信号的电路,如一交流电压经运算放大器放大后输出一个较大的交流电压,处理的信号是连续变化的,如交流电流是连续的正弦波。模拟电路有运算放大器,调制和解调电路,震荡电路等。模块化
门电路:实现基本逻辑运算(有与门、或门、非门、与非门、或非门、与或非门、异或门等几种)的单元电路。post
数字电路:url
处理数字信号的电路,电路处理的信号不是0就是1,0表明低电平,1表明高电平,基本组成原件就是门电路。因为它具备逻辑运算和逻辑处理功能,因此又称数字逻辑电路。spa
数字电路根据逻辑功能的不一样特色,能够分红两大类:操作系统
一类叫组合逻辑电路(简称组合电路),另外一类叫作时序逻辑电路(简称时序电路)。
组合电路在逻辑功能上的特色是任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关。
时序电路是任意时刻的输出不只取决于当时的输入信号,并且还取决于电路原来的状态,或者说,还与之前的输入有关。有触发器、计数器、寄存器等。
机器语言是用二进制代码表示,计算机能执行,机器指令的集合;
机器语言与译码器
指令(指令寄存器)=操做码(译码器将操做码翻译交给操做控制器)+地址码(送到地址寄存器);
参考:http://m.elecfans.com/article/666558.html 一文读懂处理器,内核,芯片三个概念的区别
参考:http://www.360doc.com/content/15/0929/22/1564981_502326554.shtml 寄存器和内存的关系
参考:https://blog.csdn.net/alianada/article/details/82142379 计算机底层是什么东西?
参考:https://www.eefocus.com/mcu-dsp/402521/r0 一样采用ARM架构,苹果处理器凭啥比别的强?
参考:https://www.cnblogs.com/voidobject/p/3975552.html (转)处理器架构、指令集和汇编语言,三者有何关系?
参考:http://www.noobyard.com/article/p-zyvslyit-ms.html 汇编指令与机器码的相互转换
参考:http://www.noobyard.com/article/p-nlvxfowm-mn.html 指令究竟是什么?机器码又是什么?
Intel有x86,SSE,AVX指令集结构,AMD有x86,x86-64,3D-Now!指令集。
x86泛指一系列基于Intel 8086且向后兼容的指令集
1971年,Intel发明了世界上第一个商用微处理器—4004,只有45条指令,每秒执行5万条指令,运行速度只有108KHz,甚至比不上1946年世界第一台计算机ENIAC,但集成度却要高不少,集成晶体管2300只,重量还不到一盅司。
在Pentium 4 CPU中,SSE2指令一共144条,
SSE3又新增长了13条新指令,一条用于视频解码,两条用于线程同步,其他用于复杂的数学运算。
SSE4又新增长了50条有助于编译、媒体、字符/文本处理和程序指向加速指令。
参考:http://www.360doc.com/content/15/0411/07/21966267_462329844.shtml Intel CPU 发展简史
参考:https://baike.baidu.com/item/指令集/238130 指令集
ARM有共三种指令集:ARM指令集,Thumb指令集和Thumb-2指令集。其具体使用了什么指令集,芯片采用ARM V?
参考:https://www.cnblogs.com/voidobject/p/3975552.html
操做系统位数/CPU架构位数/指令集位数/向上兼容
操做系统的位数是说其所依赖的指令集的位数。
32位CPU:数据总线(DataBus)有32根,ALU能处理的数据位数。
向下(前)兼容
CPU向前兼容,64位CPU兼容32位指令集,因此64位CPU能够跑32位操做系统。
32位CPU兼容16位指令集,因此32位CPU能够跑16位操做系统。
如何实现向下兼容?
64位cpu是从16位发展过来的,依然是x86结构,原理和基本指令都是同样的。
16位编程使用了32位寄存器,编译器会自动加上default operand-size override prefix(默认操做数大小覆盖前缀)。
这段代码的汇编语句是彻底同样的,只不过是为32位代码而编译,它们的机器码就是不同的。
操做64位寄存器的低32位,高32位会清0,例如mov eax, 0FFFFFFFCH,则整个寄存器为00000000FFFFFFFCH,高32位会被清0。
参考:https://zhidao.baidu.com/question/329146909.html 寄存器如何向下兼容?
参考:http://book.51cto.com/art/201210/359658.htm 通用寄存器
参考:https://zhidao.baidu.com/question/2011537345660325628.html CPU位数,操做系统位数
指令集是CPU选择的语言,而微架构是具体的实现。
电脑语言的「指令集架构」 vs. 执行语言载具的「处理器核心微架构」
指令集没法决定架构,x86指令集也能够用ARM架构。
指令集版本 | 微架构 | 用途 |
ARM V1 | ARM1 | |
ARM V2 | ARM2, ARM3 | |
ARM V3 | ARM6, ARM7 | |
ARM V4 | StrongARM, ARM7TDMI, ARM9TDMI | |
ARM V5 | ARM7EJ, ARM9E, ARM10E, XScale | |
ARM V6 | ARM11, ARM Cortex-M | |
ARM V7 | ARM Cortex-A, ARM Cortex-M, ARM Cortex-R | |
ARM V8 | ||
ARM V9 |
ARM推出的通用的架构,缓存(cache)就是在内核中的,这些内核又名公版架构。
ARM提供三类CPU受权:
参考:http://www.noobyard.com/article/p-tcnjuedt-hg.htmlARM介绍2:受权模式
ARM提供指令集以及设计规范。
2016年,三星发布了Exynos8 Octa 8890(Octa表明8核),这是三星第一款拥有自研架构的ARM芯片
自研架构=自研微架构≈cortex-A53,A73(公版微架构)
高通,基于ARM v7深度开发本身的处理器微架构。
苹果,基于ARMv7开发Swift微架构。
ARM提供CPU设计源代码,不容许更改,且不能剽窃。
多数厂商选择直接购买ARM CPU内核设计方案,而后与其它组件(好比GPU、多媒体处理、调制解调器等等)整合,制造出完整的SoC片上系统。
参考:
http://www.noobyard.com/article/p-oyrosovx-do.html 指令集架构、arm内核、SoC、处理器、CPU、GPU等的关系
http://www.noobyard.com/article/p-whfpnans-mp.html ARM 指令集版本和ARM 版本
ARM公司不提供设计源代码,提供相似于二进制代码的网表。
汇编语言:用助记符代替机器指令的操做码,用地址符号或标号代替指令或操做数的地址。
汇编语言和机器语言指令集是一一对应的,不一样平台之间不可直接移植。
指令集架构(ISA):规定了处理器如何识别这些汇编指令,以及如何与上层交互,区分软件和硬件的界限。芯片的软件部分。指令集中的每一条指令对应着一条汇编指令和固定的实现电路,程序设计最小语言单位。
如add r1, r2, r3,
在XX指令集,1010表明add,因此这条指令的指令码部分就是1010,
但XX指令集,0000表明add,因此一样的二进制串在不一样的指令集下有不一样的解读。
在不一样的汇编语言里它有不一样的意思,有多是表明r1=r2+r3 , 也有多是表明r3=r2+r1。
参考:https://www.cnblogs.com/voidobject/p/3975552.html
参考:http://www.noobyard.com/article/p-yasqowjh-hg.html
参考:https://blog.csdn.net/yangtalent1206/article/details/6247607?utm_source=jiancool
汇编语言和机器语言机器移植性差,由于针对特定指令系统,不一样的CPU汇编语言和机器语言不能通用。
汇编语言和机器语言程序结构性差,不便于模块化设计,也形成可移植性差。
指令集架构是专利,不是版权。
ARM有ARM V1~V8指令集结构,(V8是指指令集版本号,ARM architecture)。