计算机指令

CPU

不问归期 提交于 2019-12-12 10:36:07
CPU 1. CPU是什么? 2.CPU 实际做什么? 3.CPU 的内部结构 4.CPU 是寄存器的集合体 5.计算机语言 6.汇编语言 7.程序计数器 8.条件分支和循环机制 9.标志寄存器 10.函数调用机制 11.通过地址和索引实现数组 12.CPU 指令执行过程 13.总结 1. CPU是什么? CPU 的全称是 Central Processing Unit ,它是你的电脑中最硬核的组件,这种说法一点不为过。CPU 是能够让你的计算机叫计算机的核心组件,但是它却不能代表你的电脑,CPU 与计算机的关系就相当于大脑和人的关系。 它 是一种小型的计算机芯片 ,它嵌入在台式机、笔记本电脑或者平板电脑的主板上。通过在单个计算机芯片上放置数十亿个微型晶体管来构建 CPU。 这些晶体管使它能够执行运行存储在系统内存中的程序所需的计算,也就是说 CPU 决定了你电脑的计算能力。 2.CPU 实际做什么? CPU 的核心是从程序或应用程序获取指令并执行计算。 此过程可以分为三个关键阶段: 提取,解码和执行 。 CPU从系统的 RAM 中提取指令,然后解码该指令的实际内容,然后再由 CPU 的相关部分执行该指令。 RAM : 随机存取存储器 (英语:Random Access Memory,缩写:RAM),也叫主存,是与 CPU 直接交换数据的内部存储器。它可以 随时读写 (刷新时除外)

你真的了解JMM吗?

谁都会走 提交于 2019-12-11 14:03:43
引言 在现代计算机中,cpu的指令速度远超内存的存取速度,由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的缓冲:将运算需要使用到的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存之中,这样处理器就无须等待缓慢的内存读写了。 基于高速缓存的存储交互很好地解决了处理器与内存的速度矛盾,但是也为计算机系统带来更高的复杂度,因为它引入了一个新的问题:缓存一致性(Cache Coherence)。在多处理器系统中,每个处理器都有自己的高速缓存,而它们又共享同一主内存(MainMemory)。当多个处理器的运算任务都涉及同一块主内存区域时,将可能导致各自的缓存数据不一致,举例说明变量在多个CPU之间的共享。如果真的发生这种情况,那同步回到主内存时以谁的缓存数据为准呢?为了解决一致性的问题,需要各个处理器访问缓存时都遵循一些协议,在读写时要根据协议来进行操作,这类协议有MSI、MESI(Illinois Protocol)、MOSI、Synapse、Firefly及Dragon Protocol等。 一、JMM(Java Memory Model) java虚拟机规范定义java内存模型屏蔽掉各种硬件和操作系统的内存访问差异

你真的了解JMM吗?

怎甘沉沦 提交于 2019-12-11 08:37:05
引言 在现代计算机中, cpu的指令速度远超内存的存取速度 ,由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不 加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache) 来作为内存与处理器之间的缓冲: 将运算需要使用到的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存之中,这样处理器就无须等待缓慢的内存读写了。 基于高速缓存的存储交互很好地解决了处理器与内存的速度矛盾,但是也为计算机系统带来更高的复杂度,因为它 引入了一个新的问题:缓存一致性(Cache Coherence) 。在多处理器系统中,每个处理器都有自己的高速缓存,而它们又共享同一主内存(MainMemory)。当多个处理器的运算任务都涉及同一块主内存区域时,将可能导致各自的缓存数据不一致,举例说明变量在多个CPU之间的共享。如果真的发生这种情况,那同步回到主内存时以谁的缓存数据为准呢?为了解决一致性的问题,需要各个处理器访问缓存时都遵循一些协议,在读写时要根据协议来进行操作,这类协议有MSI、MESI(Illinois Protocol)、MOSI、Synapse、Firefly及Dragon Protocol等。 一、JMM(Java Memory Model) java虚拟机规范定义 java内存模型屏蔽掉各种硬件和操作系统的内存访问差异

程序员需要了解的硬核知识之控制硬件

孤街醉人 提交于 2019-12-10 21:45:40
应用和硬件的关系 我们作为程序员一般很少直接操控硬件,我们一般通过 C、Java 等高级语言编写的程序起到间接控制硬件的作用。所以大家很少直接接触到硬件的指令,硬件的控制是由 Windows 操作系统 全权负责的。 你一定猜到我要说什么了,没错,我会说但是,任何事情没有绝对性,环境的不同会造成结果的偏差。虽然程序员没法直接控制硬件,并且 Windows 屏蔽了控制硬件的细节,但是 Windows 却为你开放了 系统调用 功能来实现对硬件的控制。在 Windows 中,系统调用称为 API ,API 就是应用调用的函数,这些函数的实体被存放在 DLL 文件中。 下面我们来看一个通过系统调用来间接控制硬件的实例 假如要在窗口中显示字符串,就可以使用 Windows API 中的 TextOut 函数。TextOut 函数的语法(C 语言)如下 BOOL TextOut{ HDC hdc, // 设备描述表的句柄 int nXStart, // 显示字符串的 x 坐标 int nYStart, // 显示字符串的 y 坐标 LPCTSTR lpString, // 指向字符串的指针 int cbString // 字符串的文字数 } 那么,在处理 TextOut 函数的内容时,Windows 做了些什么呢?从结果来看,Windows 直接控制了作为硬件的显示器。但 Windows

并发(JMM综述)

核能气质少年 提交于 2019-12-10 15:31:41
JMM综述 文章目录 JMM综述 一,内存模型产生背景 二,内存模型概念 2.1JMM组成部分 2.2JVM内存操作的并发问题 2.3内存交互操作流程 三,JMM深入 3.1原子性,可见性和有序性 3.2happens-before 3.3内存屏障 3.3重排序 四,volatile 4.1volatile内存语义 4.2volatile特性 4.3volatile如何禁止指令重排序 五,synchronize 六,final 一,内存模型产生背景 由于计算机的存储设备与处理器的运算速度有几个数量级的差距,为了避免处理器等待缓慢的内存读写操作完成,现代计算机系统通过加入一层读写速度尽可能无限接近处理器运算速度的高速缓存 缓存作为内存和cpu之间的缓冲区,将运算需要用到的数据放入到高速缓存中,让运算能快速运行,运算结束后在从缓存同步回内存之中 类似redis缓存和数据库一样,引入了高速缓存虽然解决了处理器和内存速度的差异,但是却带来一个新的问题-----缓存一致性问题 在多核处理器的系统中,每个处理器都有自己的高速缓存,他们共享同一内存,当多个处理器的运算任务都涉及同一块内存区域时,可能会出现缓存数据不一致的问题,需要使用缓存一致性协议来维护缓存的一致性 二,内存模型概念 java虚拟机提供java内存模型(JMM)来 屏蔽掉各种硬件和操作系统的内存访问差异 ,以实现

第一章,计算机系统概论

吃可爱长大的小学妹 提交于 2019-12-10 12:57:44
  1,比较数字计算机和模拟计算机的特点。   2,数字计算机如何分类?分类的依据是什么?   3,数字计算机有哪些主要应用?   4,冯诺依曼型计算机的主要设计思想是什么?它包括那些主要组成结构?   5,什么是存储容量?什么是单位地址?什么是数据字?什么是指令字?   6,什么是指令?什么是程序?   7,指令和数据均存放在内存中,计算机如何区分他们是指令还是数据?   8,什么是内存?什么是外存?什么是CPU?什么是适配器?简述其功能   9,计算机的系统软件包括哪几类?说明他们的用途   10,说明软件发展的演变过程   11,现代计算机系统如何进行多级划分?这种分级观点对计算机设计会产生什么影响?   12,为什么软件能够转化为硬件?硬件能够转化为软件?实现这种转化的媒介是什么?   13,“计算机应用”与“应用计算机”在概念上等价吗?用学科角度和计算机系统的层次结构来说明你的观点 来源: https://www.cnblogs.com/cheneyboon/p/12015955.html

《计算机基础》:计算机是怎么运行的?

*爱你&永不变心* 提交于 2019-12-09 16:44:13
计算机的三个根本性基础 1)计算机是执行输入、运算、输出的机器 2)程序是指令和数据的集合 3)计算机的处理方式有时与人们的思维习惯不同 计算机技术进步日新月异,进步的方向就是为了更好的贴合人类,为人类服务。这就需要他的思维习惯有更好的进步,这是如此,计算机还有很大的进步空间。(面向对象变成,是贴合人类的一种体现) 无论是刚入行的技术人员,还是有资历的老工程师,都应该 由衷地欢迎技术的进化,坦率地接受新技术。 CPU 机器语言就是由 二进制数字 构成的程序(.class文件),CPU 可以直接对其解释、执行。 1.CPU 中的 标志寄存器 (Flags Register)有什么作用? Flag的本意是“旗子”,这里引申为“标志”。一旦执行了算术运算、逻辑运算、比较运算等指令后,标志寄存器并不会存放运算结果的值,而是会把运算后的某些状态存储起来,例如运算结果是否为0、是否产生了 负数、是否有溢出(Overflow)等。 2.CPU内部有存储数据的地方。这种存储数据的地方叫作“寄存器”。虽然也叫寄存器,但是与I/O的寄存器不同,CPU的寄存器不仅能存储数据,还具备对数据进行运算的能力。( I/O的寄储器不能存取数据 ) 1. 控制器 控制单元主要由时序控制和指令控制等组成,其中指令控 制协调指令译码器,完成读指令、分析指令、交给运算器执行指令等操作。指令寄存器中存储着指令集。 2.

Docker学习总结(6)——通过 Docker 化一个博客网站来开启我们的 Docker 之旅

孤者浪人 提交于 2019-12-08 23:47:12
通过 Docker 化一个博客网站来开启我们的 Docker 之旅 这篇文章包含 Docker 的基本概念,以及如何通过创建一个定制的 Dockerfile 来 Docker 化Dockerize一个应用。 Docker 是一个过去两年来从某个 idea 中孕育而生的有趣技术,公司组织们用它在世界上每个角落来部署应用。在今天的文章中,我将讲述如何通过“Docker 化Dockerize”一个现有的应用,来开始我们的 Docker 之旅。这里提到的应用指的就是这个博客! 什么是 Docker? 当我们开始学习 Docker 基本概念时,让我们先去搞清楚什么是 Docker 以及它为什么这么流行。Docker 是一个操作系统容器管理工具,它通过将应用打包在操作系统容器中,来方便我们管理和部署应用。 容器 vs. 虚拟机 容器和虚拟机并不完全相似,它是另外一种提供 操作系统虚拟化 的方式。它和标准的虚拟机还是有所不同。 标准的虚拟机一般会包括一个完整的操作系统、操作系统软件包、最后还有一至两个应用。这都得益于为虚拟机提供硬件虚拟化的管理程序。这样一来,一个单一的服务器就可以将许多独立的操作系统作为虚拟客户机运行了。 容器和虚拟机很相似,它们都支持在单一的服务器上运行多个操作环境,只是,在容器中,这些环境并不是一个个完整的操作系统。容器一般只包含必要的操作系统软件包和一些应用

计算机系统基础(一):程序的表示、转换和链接---第一周

做~自己de王妃 提交于 2019-12-07 18:20:36
1.以下有关冯.诺依曼结构思想的叙述中,错误的是( )。 A.程序由指令构成,计算机能自动执行程序中一条一条指令 B.计算机内部以二进制形式表示指令和数据 C.计算机由运算器、存储器、控制器和I/O设备组成 D.指令和数据都放在存储器中,两者在形式上有差别 2.以下有关指令以及指令执行过程的叙述中,错误的是( )。 A.指令中指定的操作数只能是存放在存储器中的数据 B.将要执行的下条指令的地址总是在程序计数器PC中 C.指令由操作码和操作数或操作数的地址码构成 D.CPU中的控制器对指令操作码进行译码 3.以下有关编程语言的叙述中,错误的是( )。 A.用高级编程语言编写程序比用汇编语言更方便 B.计算机不能直接执行高级语言程序和汇编语言程序 C.汇编语言和机器语言都与计算机系统结构相关 D.不能直接用机器语言(机器指令)编写程序 4.以下有关机器指令和汇编指令的叙述中,错误的是( )。 A.机器指令和汇编指令一一对应,功能相同 B.机器指令和汇编指令都能被计算机直接执行 C.汇编指令中用符号表示操作码和地址码 D.汇编指令中用十进制或十六进制表示立即数 5.以下有关使用高级编程语言编写和开发软件的叙述中,错误的是( )。 A.须程序员在应用程序中直接控制外设进行输入/输出 B.须有一个翻译或转换程序,即编译器或解释器 C.须有程序员与计算机交互的用户接口,即GUI或CUI D

单片机的组成、工作原理、分类、特点以及发展趋势

老子叫甜甜 提交于 2019-12-07 01:09:45
芯片在没有开发前,单片机只是具备功能极强的超大规模集成电路,如果赋予它特定的程序,它便是一个最小的、完整的微型计算机控制系统,它与个人电脑(PC机)有着本质的区别,单片机的应用属于芯片级应用,需要用户了解单片机芯片的结构和指令系统以及其它集成电路应用技术和系统设计所需要的理论和技术,用这样特定的芯片设计应用程序,从而使该芯片具备特定的功能。 不同的单片机有着不同的硬件特征和软件特征,即它们的技术特征均不尽相同,硬件特征取决于单片机芯片的内部结构,用户要使用某种单片机,必须了解该型产品是否满足需要的功能和应用系统所要求的特性指标。这里的技术特征包括功能特性、控制特性和电气特性等等,这些信息需要从生产厂商的技术手册中得到。软件特征是指指令系统特性和开发支持环境,指令特性即我们熟悉的单片机的寻址方式,数据处理和逻辑处理方式,输入输出特性及对电源的要求等等。开发支持的环境包括指令的兼容及可移植性,支持软件(包含可支持开发应用程序的软件资源)及硬件资源。要利用某型号单片机开发自己的应用系统,掌握其结构特征和技术特征是必须的。 单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化,现在单片机控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。诚然