Tim

一枚野生程序员~

  • 主页
  • 分类
  • 标签
  • 归档
  • 关于
所有文章 工具

Tim

一枚野生程序员~

  • 主页
  • 分类
  • 标签
  • 归档
  • 关于

冯诺依曼架构

阅读数:次 2018-06-18
字数统计: 1.2k字   |   阅读时长≈ 4分

冯诺依曼计算机特点

  • 计算机由运算器、控制器、存储器、输入设备、输出设备五大部件组成
  • 指令与数据以同等地位存放在存储器,并可按地址寻访
  • 指令与数据均以二进制数表示
  • 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置
  • 指令在存储器中顺序存放。通常也顺序执行,在特定条件下,可根据运算结果或设定条件改变执行顺序
  • 机器以运算器为中心,输入输出设备与存储器间的数据传递通过运算器完成

mark

细化的计算机组成框架

mark

主存储器

  • 主存储器包括存储体M、各种逻辑部件及控制电路。存储体由许多存储单元组成,每个存储单元包含若干个存储元件(称存储元、存储基元),每个存储元件能寄存以为二进制代码
  • 主存的工作方式是按存储单元的地址号来实现对存储字各位的存(写)、取(读)。这种存取方式称为按地址存取方式,即按地址访问存储器(简称访存)
  • 为了能实现按址访问的方式,主存中还需要配置两个寄存器MAR和MDR

MAR(Memory Address Register)是存储器地址寄存器,用来存放欲访问的存储单元的地址,其位数对应存储单元的个数(如MAR为10 位,则由210=1024个存储单元,记为1K)MDR(Memory Data Register)是存储器数据寄存器,用来存放从存储体的某个单元取出的代码或者准备往某个存储单元存入的代码,其位数与存储字长相等

  • 现代计算机为了适应指令和是字长可变,其长度不由存储字长来确定,而是由字节的个数来表示,1个字节(byte)被定义为8位(bit)二进制代码组成,此时存储字长、指令字长、数据字长三者可不相等,但必须是字节整数倍

运算器

  • 运算器最少包括3个寄存器(现代计算机内部往往设有通用寄存器组)和一个算术逻辑部件(ALU)。其中ACC为累加器、MQ为商乘寄存器、X为操作数寄存器,这三个寄存器完成不同运算时,所放的操作数也各不相同
  • ACC在加法运算中存储被加数以及和;在减法运算中存储被减数以及差;乘法运算中存储乘积高位;在除法运算中存储被除数以及余数,MQ在乘法运算中存储乘数以及乘积低位;在除法运算中存储商,X在加法运算中存储加数;在减法运算中存储减数;在乘法运算中存储被乘数;在除法运算中存储除数

控制器

  • 控制器是计算机的神经中枢,由他指挥各部件自动、协调地工作。具体而言它首先要命令存储器读出一条指令,称为取址过程。接着对该指令分析,指出该指令要完成的操作,并按寻址特征指明操作数的地址,称为分析过程。最后根据操作数所在的地址及指令的操作码完成操作,称为执行过程。
  • 控制器由程序计数器(Program Counter,PC)、指令寄存器(Instruction Register)以及控制单元(Control Unit,CU)
  • PC用来存放当前欲执行指令的地址,它与主存的MAR之间有一条直接通路,并具有自动加1功能,即可自动形成下一条指令的地址。
  • IR用来存放当前的指令,IR的内容来自主存的MDR,IR中的操作码(OP(IR))送至CU,记作OP(IR)→CU,用来分析指令;其地址码(Ad(IR))作为操作数的地址送至存储器的MAR,记作Ad(IR)→MAR
  • CU用来分析当前指令所需要完成的操作,并发出各种微操作命令序列,用以控制所以被控的对象

mark

CPU工作过程

mark

控制单元在时序脉冲的作用下,将指令计数器里所指向的指令地址(这个地址是在内存里的)送到地址总线上去,然后CPU将这个地址里的指令读到指令寄存器进行译码。对于执行指令过程中所需要用到的数据,会将数据地址也送到地址总线,然后CPU把数据读到CPU的内部存储单元(就是内部寄存器)暂存起来,最后命令运算单元对数据进行处理加工。周而复始,一直这样执行下去!

赏

谢谢你请我喝咖啡

支付宝
微信
  • 本文作者: Tim
  • 本文链接: https://zouchanglin.cn/3293372011.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 许可协议。转载请注明出处!
  • Linux
  • Mac
  • Windows
  • 操作系统理论

扫一扫,分享到微信

Java内置的序列化方式
MySQL库表操作
  1. 1. 冯诺依曼计算机特点
  2. 2. 细化的计算机组成框架
    1. 2.1. 主存储器
    2. 2.2. 运算器
    3. 2.3. 控制器
  3. 3. CPU工作过程
© 2017-2021 Tim
本站总访问量次 | 本站访客数人
  • 所有文章
  • 工具

tag:

  • 生活
  • Android
  • 索引
  • MySQL
  • 组件通信
  • Nginx
  • JavaSE
  • JUC
  • JavaWeb
  • 模板引擎
  • 前端
  • Linux
  • 计算机网络
  • Docker
  • C/C++
  • JVM
  • 上传下载
  • JavaEE
  • SpringCloud
  • Golang
  • Gradle
  • 网络安全
  • 非对称加密
  • IDEA
  • SpringBoot
  • Jenkins
  • 字符串
  • vim
  • 存储
  • 文件下载
  • Mac
  • Windows
  • NIO
  • RPC
  • 集群
  • 微服务
  • SSH
  • 配置中心
  • XML
  • Chrome
  • 压力测试
  • Git
  • 博客
  • 概率论
  • 排序算法
  • 分布式
  • 异常处理
  • 文件系统
  • 哈希
  • openCV
  • 栈
  • 回溯
  • SpringCore
  • 流媒体
  • rtmp
  • 面向对象
  • Vue
  • ElementUI
  • 软件工程
  • 异步
  • 自定义UI
  • ORM框架
  • 模块化
  • 交互式
  • Jsoup
  • Http Client
  • LRUCache
  • RabbitMQ
  • 消息通信
  • 服务解耦
  • 负载均衡
  • 权限
  • 多线程
  • 单例模式
  • Protobuf
  • 序列化
  • Python
  • m3u8
  • 堆
  • 二叉树
  • 自定义View
  • 观察者模式
  • 设计模式
  • 线程池
  • 动态扩容
  • 高可用
  • GC
  • ffmpeg
  • SpringMVC
  • REST
  • Redis
  • 缓存中间件
  • UML
  • Maven
  • Netty
  • 高性能网络
  • IPC通信
  • IO
  • Stream
  • 发布订阅
  • SQLite
  • Hash
  • 集合框架
  • 链表
  • Lambda
  • 汇编语言
  • 组件化
  • Router
  • 开发工具

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia-plus根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • 思维导图
  • PDF工具
  • 无损放大
  • 代码转图
  • HTTPS证书