【计算机-CPU】电子电路-机器语言与指令集架构/CPU软核/CPU硬核-汇编语言与与编译器
1. 1 电子
元件是电子中的基本零件;而器件常由几个元件组成,有时也指较大的元件。
元件主要包括电阻、电容、电感;器件种类更多,有双极性晶体三极管、场效应晶体管、可控硅、半导体电阻电容等。
元件对电压、电流无控制和变换作用;而器件对电压、电流有控制、变换作用(放大、开关、整流、检波、振荡和调制等)。
参考:http://m.elecfans.com/article/589969.html 元件和器件的区别
1.2 电路
模拟电路:
处理模拟信号的电路,如一交流电压经运算放大器放大后输出一个较大的交流电压,处理的信号是连续变化的,如交流电流是连续的正弦波。模拟电路有运算放大器,调制和解调电路,震荡电路等。
门电路:实现基本逻辑运算(有与门、或门、非门、与非门、或非门、与或非门、异或门等几种)的单元电路。
数字电路:
处理数字信号的电路,电路处理的信号不是0就是1,0代表低电平,1代表高电平,基本组成原件就是门电路。由于它具有逻辑运算和逻辑处理功能,所以又称数字逻辑电路。
数字电路根据逻辑功能的不同特点,可以分成两大类:
一类叫组合逻辑电路(简称组合电路),另一类叫做时序逻辑电路(简称时序电路)。
组合电路在逻辑功能上的特点是任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关。
时序电路是任意时刻的输出不仅取决于当时的输入信号,而且还取决于电路原来的状态,或者说,还与以前的输入有关。有触发器、计数器、寄存器等。
2.机器语言与译码器
机器语言是用二进制代码表示,计算机能执行,机器指令的集合;
机器语言与译码器
指令(指令寄存器)=操作码(译码器将操作码翻译交给操作控制器)+地址码(送到地址寄存器);
参考: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 (转)处理器架构、指令集和汇编语言,三者有何关系?
参考:https://blog.csdn.net/p312011150/article/details/79612379 汇编指令与机器码的相互转换
参考:https://blog.csdn.net/dark_tone/article/details/52426886 指令到底是什么?机器码又是什么?
3.指令集架构/微架构
3.1 Intel指令集
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 指令集
3.2 ARM指令集
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结构,原理和基本指令都是一样的。
- 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。
参考:https://zhidao.baidu.com/question/329146909.html 寄存器如何向下兼容?
参考:http://book.51cto.com/art/201210/359658.htm 通用寄存器
参考:https://zhidao.baidu.com/question/2011537345660325628.html CPU位数,操作系统位数
指令集是CPU选择的语言,而微架构是具体的实现。
3.3 微架构
电脑语言的「指令集架构」 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)就是在内核中的,这些内核又名公版架构。
3.4 ARM授权模式
ARM提供三类CPU授权:
参考:https://blog.csdn.net/weixin_34146805/article/details/85779161 ARM介绍2:授权模式
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片上系统。
参考:
https://blog.csdn.net/baidu_35679960/article/details/77606930 指令集架构、arm内核、SoC、处理器、CPU、GPU等的关系
https://blog.csdn.net/zzx1045917067/article/details/78575259 ARM 指令集版本和ARM 版本
3.4.3硬核授权
ARM公司不提供设计源代码,提供类似于二进制代码的网表。
4.汇编语言与编译器
汇编语言:用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。
汇编语言和机器语言指令集是一一对应的,不同平台之间不可直接移植。
指令集架构(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
参考:https://blog.csdn.net/qq_34322603/article/details/75276415
参考:https://blog.csdn.net/yangtalent1206/article/details/6247607?utm_source=jiancool
汇编语言和机器语言机器移植性差,因为针对特定指令系统,不同的CPU汇编语言和机器语言不能通用。
汇编语言和机器语言程序结构性差,不便于模块化设计,也造成可移植性差。
指令集架构是专利,不是版权。
ARM有ARM V1~V8指令集结构,(V8是指指令集版本号,ARM architecture)。
【计算机-CPU】电子电路-机器语言与指令集架构/CPU软核/CPU硬核-汇编语言与与编译器相关推荐
- 基于RISC-V指令集架构的单周期CPU与五级流水线的实现(一)——分析
本文是为完全不了解CPU的朋友所写的入门级教程,对于较为精通的朋友,多数章节均为赘述,完整代码在下一篇博客中,请见谅哈 一.实现功能 实现了部分RV32I指令集中的部分指令类型,如下表 具体指令如下( ...
- 通俗来理解 ARM芯片内核,架构,指令集,软核和硬核之间的关系
1.单片微型计算机: 简称单片机,简单来说就是集CPU(运算.控制).RAM(数据存储-内存).ROM(程序存储).输入输出设备(串口.并口等)和中断系统处于同一芯片的器件,在我们自己的个人电脑中,C ...
- 为什么安装的是gpu版本训练时还是用的cpu?_免费GPU哪家强?谷歌Kaggle vs. Colab | 硬核评测...
作者 | Jeff Hale译者 | Monanfei责编 | 夕颜出品 | AI科技大本营(id:rgznai100) 谷歌有两个平台提供免费的云端GPU:Colab和Kaggle, 如果你想深入学 ...
- 北邮计算机2019电子电路期中详解
答案是我自己写的,顺序有点错乱,如果有发现里面有一些笔误和思考不到位的地方,欢迎大家在评论区指出来~ 链接:https://pan.baidu.com/s/16cf-lKpTDV8fiCK7Us4Lc ...
- 计算机专业买笔记本有什么要求,笔记本电脑什么配置好?硬核选购指南来了!...
在选购笔记本电脑时,电脑的配置是大部分人首先考虑的因素,毕竟电脑的配置决定了它的工作能力,尤其是一些对专业性能要求高的工程师或设计行业从业者而言,便会更看重笔记本的硬件配置.现在市面上的笔记本电脑什么 ...
- 了解RISC-V指令集架构
参考资料: ARM与RISC-V的恩爱情仇 ARM与RISC-V架构的区别 第五代精简指令集计算机RISC-V你了解多少? RISC-V能否"重构"芯片产业格局 浅析RISC-V指 ...
- 计算机组成原理 — CPU — 指令集架构类型
目录 文章目录 目录 主流 CPU 指令集架构 CISC(复杂指令集计算机) x86 系列处理器 RISC(精简指令集计算机) ARM 系列处理器 PowerPC 系列处理器 MIPS 架构 RISC ...
- 计算机组成原理+左冬红,计算机组成原理与接口技术--基于MIPS架构(第2版高等学校电子信息类专业系列教材)...
导语 内容提要 华中科技大学电子信息与通信学院基于FPGA平台的"微机原理与接口技术"课程教学改革已进行数载,作者在总结教学经验基础上,对<计算机组成原理与接口技术>进 ...
- 指令集架构、微架构、处理器架构、CPU架构、内核
前两天看书碰到了"CPU架构"这个词,脑子里感觉有点模糊不懂.查阅相关资料后又陆续碰到了"指令集架构"."微架构"."处理器架构& ...
- 指令集架构、微架构、处理器架构、CPU架构
前两天看书碰到了"CPU架构"这个词,脑子里感觉有点模糊不懂.查阅相关资料后又陆续碰到了"指令集架构"."微架构"."处理器架构& ...
最新文章
- 算法提高课-图论-负环-AcWing 361. 观光奶牛:spfa判正环、负环、01分数规划、二分
- 计算机教育应用3t模式,[信息技术教育应用作业.doc
- easyui tree:根据属性格式化树节点名称
- ElasticSearch-安装以及常见错误(自己测试过yum install -y log4j* )
- 在C/C++代码中使用SSE等指令集的指令(1)介绍
- python实现英文新闻摘要自动提取_Automotive Innovation摘要集系列2:Intelligent and Connected Vehicles...
- Ubuntu16.04下禁用scp、sftp和winscp
- linux ssh远程登陆报警提醒
- 解决在Mac上操作sourcetree反复要求输入密码的问题
- (引)XPath 示例
- 【转载】视频网站六间房将从200人减至60人裁员三分之二
- 方立勋_30天掌握JavaWeb_Web开发入门
- 离线tts linux,GitHub - rayboot/tts-go: 讯飞离线文字转语音。 支持Linux Windows
- 在 SSM 中使用 Ajax 进行数据传递
- 关于定点数、原码、反码、补码的理解
- 附上解决迅雷9及迅雷极速版任何资源下载任务出错、内容违规问题
- 从中国封建历史的发展来理解云计算、雾计算、边缘计算以及云原生之间的关系
- 418合练剑指618,猫宁要给京东一个下马威?
- 用 Python 生成 CSV 文件
- 编程中的命名设计那点事