博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计算器结构
阅读量:6702 次
发布时间:2019-06-25

本文共 927 字,大约阅读时间需要 3 分钟。

  hot3.png

前言

从人开始产生语言,信息的传递就开始体现其巨大的作用。伴随者信鸽,烽火台, 电报,计算机,互联网,直到现在的云。信息时代就是用来描述当前社会对于信息的定位。

而信息的载体,就是语言。而语言如何产生其功能,就需要编译器,驱动机器,电路等实现应有的功能。

计算机的基本结构

现在主流的计算机是基于冯·诺伊曼的计算机结构,主要有负责运算的运算器,负责存储的内存,控制程序进程的控制器,输入和输出。

当程序开始运行,会将其程序通过编译器,编译为2进制的数据和指令,然后程序将这些2进制的指令和放入内存中,即从输入到内存的一个过程,控制器通过控制程序的运行。

数据和指令是以二进制的方式,存储在存储器中。

在内存中数据和指令是以什么方式存在的,就是栈,每一条指令和数据都是一个栈帧,编译过程压栈,执行过程弹栈。

指令

指令的生命周期为,取指,译码,执行

每一条指令的执行可以通过不同步骤,通过流水线的方式加快指令的执行效率

Alt text

速度不匹配是计算机的核心问题

cpu速度极快,远远比内存快,而内存比硬盘快的要多

三种速度的差别,就是计算机速度不匹配问题。

异步

现在的主要方式就是让各个模块不要等,cpu通过异步的操作,对硬盘进行操作。

DMA 就是这种操作的一个例子。

cpu先看内存中有没,没有就发起一个硬盘读的操作,cpu干其他事情。DMA控制器等到将硬盘中的数据读取到内存中,再通知cpu

并发

cpu切分时间片,操作系统负责切换,由于时间片切换速度比起人的分辨力快的多,人根本感受不到时间片的切换。

并行

并行就是多个cpu执行了。

但是却有多个线程对同一个资源的操作问题

增加中间层 -缓存

时间局部性:程序中的某条指令一旦执行,则不久之后该指令可能再次被执行; 如果某数据被访问,则不久之后该数据可能再次被访问。

空间局部性: 是指一旦程序访问了某个存储单元,则不久之后。其附近的存储单元也将被访问。

java的虚拟机就是通过这中局部性,找到热点代码,将原来执行class文件的慢速度,提升上去,甚至达到和c差不多的工作效率

通过不同的缓存来缓和彼此之间速度的差异

转载于:https://my.oschina.net/dylw/blog/846653

你可能感兴趣的文章
Atitti.java android反编译解决方案-----虚拟机方案
查看>>
Java 装饰模式 (Decorator)
查看>>
JAVA虚拟机垃圾回收算法原理
查看>>
PHP开启curl_init
查看>>
动态规划法求背包问题
查看>>
【maven + hibernate(注解) +spring +springMVC】 使用maven搭建项目
查看>>
Mybatis-mapper-xml-基础
查看>>
如何在Visual Studio VS中定义多项目模板
查看>>
tcpip学习
查看>>
yii2权限控制rbac之菜单menu最详细教程
查看>>
国内四大炒股软件APP 全面技术解析
查看>>
vncserver的安装和使用 2
查看>>
C++ STL--queue 的使用方法
查看>>
[svc]visio绘制模具
查看>>
springmvc入门基础之注解和参数传递
查看>>
iOS10 CoreData新特性
查看>>
absolute绝对定位的非绝对定位用法
查看>>
小白全栈
查看>>
struts2中struts.xml配置文件详解【未整理】
查看>>
基于Linux的智能家居的设计(5)
查看>>