电⼦电路-机器语⾔与指令集架构CPU软核CPU硬核-汇编语⾔与与
编译器
1. 1 电⼦
元件是电⼦中的基本零件;⽽器件常由⼏个元件组成,有时也指较⼤的元件。
器件种类更多,有双极性晶体三极管、场效应晶体管、可控硅、半导体电阻电容等。
元件主要包括电阻、电容、电感;器件
元件
器件对电压、电流有控制、变换作⽤(放⼤、开关、整流、检波、振荡和调制等)。
元件对电压、电流⽆控制和变换作⽤;⽽器件
元件
1.2 电路
模拟电路:
运算放⼤器放⼤后输出⼀个较⼤的交流电压,处理的信号是连续变化的,如交流电流是连续的正弦波。模处理模拟信号的电路,如⼀交流电压经运算放⼤器
拟电路有运算放⼤器,调制和解调电路,震荡电路等。
门电路:实现基本逻辑运算(有与门、或门、⾮门、与⾮门、或⾮门、与或⾮门、异或门等⼏种)的单元电路。
数字电路:
基本组成原件就是门电路。由于它具有逻辑运算和逻辑处理处理数字信号的电路,电路处理的信号不是0就是1,0代表低电平,1代表⾼电平,基本组成原件就是门电路
数字逻辑电路。
功能,所以⼜称数字逻辑电路
数字电路根据逻辑功能的不同特点,可以分成两⼤类:
时序逻辑电路(简称时序电路)。
⼀类叫组合
组合逻辑电路(简称组合电路),另⼀类叫做时序
组合电路在逻辑功能上的特点是任意时刻的输出仅仅取决于该时刻的输⼊,与电路原来的状态⽆关。
时序电路是任意时刻的输出不仅取决于当时的输⼊信号,⽽且还取决于电路原来的状态,或者说,还与以前的输⼊有关。有触发器、计数器、寄存器等。
与译码器
2.机器语⾔
2.机器语⾔与译码器
机器语⾔是⽤⼆进制代码表⽰,计算机能执⾏,机器指令的集合;
机器语⾔与译码器
指令(指令寄存器)=操作码(译码器将操作码翻译交给操作控制器)+地址码(送到地址寄存器);
3.指令集架构/微架构
3.1 Intel指令集
Intel有x86,SSE,AVX指令集结构,AMD有x86,x86-64,3D-Now!指令集。
x86泛指⼀系列基于Intel 8086且向后兼容的指令集
x86
45条指令,每秒执⾏5万条指令,运⾏速度只有108KHz,甚⾄⽐不上1946年1971年,Intel发明了世界上第⼀个商⽤微处理器—4004,只有45条指令
世界第⼀台计算机ENIAC,但集成度却要⾼很多,集成晶体管2300只,重量还不到⼀盅司。
在Pentium 4 CPU中,SSE2指令⼀共144条,
数学运算。
SSE3⼜新增加了13条新指令,⼀条⽤于视频解码,两条⽤于线程同步,其余⽤于复杂的数学运算
SSE4⼜新增加了50条有助于编译、媒体、字符/⽂本处理和程序指向加速指令。
3.2 ARM指令集
ARM有共三种指令集:ARM指令集,Thumb指令集和Thumb-2指令集。其具体使⽤了什么指令集,芯⽚采⽤ARM V?
操作系统位数/CPU架构位数/指令集位数/向上兼容
操作系统的位数是说其所依赖的指令集的位数。
32位CPU:数据总线(DataBus)有32根,ALU能处理的数据位数。
向下(前)兼容
CPU向前兼容,64位CPU兼容32位指令集,所以64位CPU可以跑32位操作系统。
32位CPU兼容16位指令集,所以32位CPU可以跑16位操作系统。
如何实现向下兼容?
64位cpu是从16位发展过来的,依然是x86结构,原理和基本指令都是⼀样的。
bits 16 ; 为16 位代码⽽编译
mov eax, 1 ; 机器码是:66 b8 01 00 00 00
16位编程使⽤了32位寄存器,编译器会⾃动加上default operand-size override prefix(默认操作数⼤⼩覆盖前缀)。
bits 32 ; 为32位代码⽽编译
mov eax, 1 ; 机器码是: b8 01 00 00 00
这段代码的汇编语句是完全⼀样的,只不过是为32位代码⽽编译,它们的机器码就是不⼀样的。
操作64位寄存器的低32位,⾼32位会清0,例如mov eax, 0FFFFFFFCH,则整个寄存器为00000000FFFFFFFCH,⾼32位会被清0。
微架构是具体的实现。
指令集是CPU选择的语⾔,⽽微架构
指令集
3.3 微架构
电脑语⾔的「指令集架构」 vs. 执⾏语⾔载具的「处理器核⼼微架构」
指令集⽆法决定架构,x86指令集也可以⽤ARM架构。
指令集版本微架构⽤途
ARM V1ARM1
ARM V2ARM2, ARM3
ARM V3ARM6, ARM7
ARM V4StrongARM, ARM7TDMI, ARM9TDMI
ARM V5ARM7EJ, ARM9E, ARM10E, XScale
ARM V6ARM11, ARM Cortex-M
ARM V7ARM Cortex-A, ARM Cortex-M, ARM Cortex-R
x86架构和arm架构区别ARM V8
ARM V9
ARM推出的通⽤的架构,缓存(cache)就是在内核中的,这些内核⼜名公版架构。
寒武纪⾃⾏开发的指令集DianNaoYu(电脑语),看似俗得不得了的名称,却真正是属于国产的芯⽚指令集。计算机这个⾏业指令集不值钱,却掌握着这个⾏业的话语权,intel开发的X86指令集霸占了桌⾯电脑话语权数⼗年,AMD不得不向其获取授权。
3.4 ARM授权模式
ARM提供三类CPU授权:
3.4.1 指令集架构授权
ARM提供指令集以及设计规范。
2016年,三星发布了Exynos8 Octa 8890(Octa代表8核),这是三星第⼀款拥有⾃研架构的ARM芯⽚
⾃研架构=⾃研微架构≈cortex-A53,A73(公版微架构)
⾼通,基于ARM v7深度开发⾃⼰的处理器微架构。
苹果,基于ARMv7开发Swift微架构。
3.4.2软核授权
ARM提供CPU设计源代码,不允许更改,且不能剽窃。
多数⼚商选择直接购买ARM CPU内核设计⽅案,然后与其它组件(⽐如GPU、多媒体处理、调制解调器等等)整合,制造出完整的SoC⽚上系统。
参考:
3.4.3硬核授权
ARM公司不提供设计源代码,提供类似于⼆进制代码的⽹表。
4.汇编语⾔与编译器
汇编语⾔:⽤助记符代替机器指令的操作码,⽤地址符号或标号代替指令或操作数的地址。
汇编语⾔和机器语⾔指令集是⼀⼀对应的,不同平台之间不可直接移植。
指令集架构(ISA):规定了处理器如何识别这些汇编指令,以及如何与上层交互,区分软件和硬件的界限。芯⽚的软件部分。指令集中的每⼀条指令对应着⼀条汇编指令和固定的实现电路,程序设计最⼩语⾔单位。
如add r1, r2, r3,
在XX指令集,1010代表add,所以这条指令的指令码部分就是1010,
但XX指令集,0000代表add,所以同样的⼆进制串在不同的指令集下有不同的解读。
在不同的汇编语⾔⾥它有不同的意思,有可能是代表r1=r2+r3 , 也有可能是代表r3=r2+r1。
汇编语⾔和机器语⾔机器移植性差,因为针对特定指令系统,不同的CPU汇编语⾔和机器语⾔不能通⽤。
汇编语⾔和机器语⾔程序结构性差,不便于模块化设计,也造成可移植性差。
指令集架构是专利,不是版权。
ARM有ARM V1~V8指令集结构,(V8是指指令集版本号,ARM architecture)。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论