文章目录

  • 图灵机
  • 编码Encoding
    • ASCII编码
  • 从晶体管到概念CPU
  • 通用CPU
  • 微控制器MCU
  • ARM Cortex-M指令集

图灵机

  • 可计算性(calculability)是指一个实际问题是否可以使用计算机来解决,定义为“可以再有限步骤内被解决的问题”(数理逻辑)
  • 很多非数值问题(比如文字识别,图像处理等)都可以通过转化为数值问题来交给计算机处理
  • 1936年,Alan Turing在伦敦权威的数学杂志上发表了一篇划时代的重要论文《可计算数字及其在判断性问题中的应用》
  • 在这篇开创性的论文中,图灵给“可计算性”下了一个严格的数学定义,并提出著名的“图灵机”(Turing Machine)的设想。一台完全属于想象中的“计算机”!
  • “图灵机”想象使用一条无限长度的纸带子,带子上划分成许多格子。 机器的运作时按逐步进行的方式,每一步由三个不同的动作组成:
    (1)在任意确定时刻,读写头对准带子上的一个方格,根据该格上的内容和机器的状态决定自己的动作;
    (2)机器可以抹去带上的原有符号,使方格保持空白或者写上另外的符号(也可以与原来相同)
    (3)然后让带子通过读写头,朝两个方向之一移动一个方格
  • 机器的行为自始至终是由一个指令集所决定,它明确地指示机器每一步应该执行哪三个动作
  • 整个运作从读写头是读一个方格数据开始,一旦计算结束,机器就进入一个特别的停止状态。运算过程的任何结果都被记录在带子上
  • “图灵机”是一个虚拟的“计算机”,完全忽略硬件状态,考虑的焦点是逻辑结构
  • 图灵甚至还想象在带子上存储数据和程序,“万能图灵机”实际上就是现代通用计算机的最原始的模型
  • 图灵的文章从理论上证明了制造出通用计算机的可能性
  • 几年之后,美国的阿坦纳索夫在1939年果然研究制造看世界上的第一台电子计算机ABC,其中采用了二进制,电路的开与合分别代表数字0与1,运用电子管和电路执行逻辑运算等
  • ABC是“图灵机”的第一个硬件实现,看得见摸得着
  • 冯·诺依曼不仅在上个世纪40年代研制成功了功能更好、用途更为广泛的电子计算机,并且为计算机设计了编码程序,还实现了运用纸带存储与输入
    *“冯·诺依曼体系结构”指出了计算机分为控制器、运算器、存储器、输入设备、输出设备五大部件

编码Encoding

  • 编码(Encoding)描述的是:为信息分配表示形式的过程
  • 选择一种合适的有效编码方案是一项真正的工程学挑战
    (1)机制、效率(所使用的比特数)
    (2)可靠性(噪声)
    (3)安全性(加密)

ASCII编码

  • American Standard Code for Information Interchange,基于英语字母序的码表系统
  • ASCII长久以来在计算机系统中广泛采用,是实质上的标准
  • ASCII采用7个bit来进行编码
    (1)数字0~9
    (2)英文字母:小写与大写
    (3)标点符号
    (4)32个非打印字符用来控制打印机

从晶体管到概念CPU

  • 用电压幅值来代表0与1,常见的定义方式有
    TTL: VCC=5V±5%,0-0.7V为0,2.4-5V为1
    CMOS:VDD=3-8V(Lower to 1.8 or 0.9) 0-0.3VDD为0,0.7-1VDD为1
  • 4比特的概念CPU如下


通用CPU

  • CPU不仅仅是运算单元:CPU是计算机/微控制器的核心,进行算术/逻辑运算
  • 通用CPU需要大量的外围辅助部件:
    内存:DDR2、DDR3
    硬盘
    主板
    显卡
    显示器
    鼠标键盘

微控制器MCU

  • 微控制器MCU不仅仅是一个简单的CPU:微控制器是一个完整的计算机系统,在单个芯片上包含了处理器、存储器和所有外设IO模块
  • 微控制器是一个片上计算机,对比PC中的处理器,微控制器更注重自完备(Self-sufficiency)和低成本。典型的微控制器包含了应用所需的全部存储器和接口,而PC的处理器需要其他的外部器件来提供这些需求
  • 微控制器MCU有哪些部件:
    CPU:从4位到8位到16位到32位到64位
    输入/输出接口:例如串口
    外设:例如定时器、信号转换电路(从CPU角度向外看)
    ARM:数据存储器
    ROM:程序存储器,例如EPROM、EEPROM、Flash
    时钟发生器、电压调节器等

ARM Cortex-M指令集

ARM微控制器与嵌入式系统相关推荐

  1. 清华大学视频:ARM微控制器与嵌入式系统

    清华大学视频课件:ARM微控制器与嵌入式系统(2017) 本课程课程要求学生具备C语言编程基础,在课程中逐步讲解ARM微控制器(单片机)与嵌入式系统,面向实践安排教学,鼓励动手实践和自由创新,适合想参 ...

  2. 课程笔记 -- 《ARM微控制器与嵌入式系统》

    "人生是如此简单,而又是这般辉煌." 村上春树 --<如果我们的语言是威士忌> 推荐 最近看了清华大学曾鸣老师的嵌入式开发入门课程<ARM微控制器与嵌入式系统&g ...

  3. 清华大学视频课件:ARM微控制器与嵌入式系统

    清华大学视频课件:ARM微控制器与嵌入式系统(2017春) 直接点击博客网页连接就可以进入下载页面,因为是免费分享,点击后可能会有广告,请量解,点击普通下载. 将网址复制粘贴到浏览器地址栏,因为是免费 ...

  4. ARM微控制器与嵌入式系统 基础知识

    学习地址 2.1 基础概念 机械计算 图灵 :一个计算的问题一定可以拆解为有限个计算的集合(可计算性) 01 冯诺依曼结构:运算器.控制器.存储器.输入设备.输出设备 模拟信号 连续 数字信号 离散 ...

  5. 复位、时钟、存储器和总线————————ARM微控制器与嵌入式系统清华大学慕课记录

    复位 初始化微控制器内部电路 将所有寄存器恢复成默认值 确认MCU的工作模式 禁止全局中断 关闭外设 将IO设置为高阻输入状态 等待时钟趋于稳定 从固定地址取得复位向量并开始执行 中断向量表 中断向量 ...

  6. ARM Cortex -M 体系结构————————ARM微控制器与嵌入式系统(清华大学慕课记录)

    ARM的发展过程 对于ARM公司来讲,ARM公司只做CPU设计,采用出售IP的方式运营,半导体产商无需自己设计CPU,是生产关系的革命,提高了生产力.下面这张图ARM核的多个系列,我们可以看到ARM从 ...

  7. CPU的运行机制——————ARM微控制器及嵌入式系统(清华大学慕课记录)

    MCU的架构 MCU的架构主要包含三部分,CPU,存储器以及外设. 其中对于CPU的学习,主要需要掌握如下几个方面: 寄存器组 指令 栈 中断 时钟 CPU的一个总体架构图: 在上图中,可以清晰地看到 ...

  8. 清华大学-曾鸣-《ARM微控制器与嵌入式系统》I2C总线(二)

    I2C(Inter IC Bus)的通讯数据帧: SCL线无方向区分,SDA线上有数据的流动方向.上图中灰色的代表的是主机向从机发送数据,此时SDA线的电平控制权由主机掌控,从机只能监听该线上的电平状 ...

  9. 清华大学-曾鸣-《ARM微控制器与嵌入式系统》I2C总线(一)

    I2C是一种双向2线制同步串行通讯接口,是一类非常经典的串行总线通讯,理解好I2C通讯会帮助理解USB通讯.以太网通讯中的握手.数据帧等环节. I2C的发展历史: SPI串行通讯主要是由MOTOROL ...

最新文章

  1. Toward Multimodal Image-to-Image Translation(BicycleGAN)图像一对多转换测试
  2. 立体匹配算法实现之:AdaptWeight
  3. php根据指定时间日历,php学习笔记(十三)时间处理与日历的实现
  4. 有趣的MS Live Labs
  5. Google服务器 IP
  6. java/javascript 时间操作工具类
  7. LeNet-5 卷积神经网络
  8. phpstudy mysql升级5.7
  9. 千万级测试String、StringBuffer和StringBuilder的速度
  10. url-pattern配置技巧
  11. Winform分页控件支持表头全选操作实现之最优方法
  12. 遗传算法的基本概念和实现(附 Java 实现案例)
  13. 什么是机器学习(Machine Learning)? |李宏毅机器学习【1】
  14. 51单片机12864液晶显示模块控制
  15. 雷尼绍Renishaw wdf 文件解析(Python源码)软件分享
  16. Eclipse中使用SQL server 2008数据库以及实现eclipse与数据库的连接和操作数据库
  17. iis 值不在预期的范围错误解决办法
  18. ZZ 自制低成本3D激光扫描测距仪(3D激光雷达),第二部分
  19. Java高并发程序设计入门
  20. 初学者学习app2sd并且成功使用它的全过程

热门文章

  1. 全景视频拼接的关键技术与发展优势、作用、应用。
  2. 最新Symantec企业版官方专用卸载工具
  3. 微信小程序获取urlScheme地址Python版
  4. Ubuntu下,grep的用法
  5. 任正非自罚100万:“不要脸”的人,有多可怕?
  6. CAD图纸导入REVIT内并精准建模
  7. Python三维地址建模教程【Gempy】
  8. macOS - Cocoa开发之沙盒机制及访问Sandbox之外的文件
  9. Splay Tree
  10. CentOS7 好日子到头了,如何优雅的抛弃 CentOS7?