i代表intel系列的cpu 386 几乎适用于所有的 x86 平台,不论是旧的 pentum 或者是新的 pentum-IV 与 K7 系列的 CPU等等,都可以正常的工作! 那个 i 指的是 Intel 兼容的 CPU 的意思,至于 386 不用说,就是 CPU 的等级啦! i586 就是 586 等级的计算机,那是哪些呢?包括 pentum 第一代 MMX CPU, AMD 的 K5, K6 系列 CPU ( socket 7 插脚 )  等等的 CPU 都算是这个等级: i686 在 p…
今天,我们来学习另一个重要的概念. CPU内存指令重排序(Memory Reordering) 什么叫重排序? 重排序的背景 我们知道现代CPU的主频越来越高,与cache的交互次数也越来越多.当CPU的计算速度远远超过访问cache时,会产生cache wait,过多的cache wait就会造成性能瓶颈. 针对这种情况,多数架构(包括X86)采用了一种将cache分片的解决方案,即将一块cache划分成互不关联地多个 slots (逻辑存储单元,又名 Memory Bank 或 Cache…
CPU读取指令时,如果单字节指令,一次访存即可完成读取操作:如果是多字节指令,会根据第一次读取指令的操作码与寻址标志位,判断指令的后续长度,进而完成整个指令的读取,同时指令指针IP会自动进行修改,指向下一条待取指令.…
郑重声明:转载自http://blog.csdn.net/zhongjin616/article/details/18765301 1> 首先讨论各种单片机与操作系统的关系 说到单片机,大家第一时间想到的应该是51单片机,对吧.不错,更高级一点的AVR,把他称为单片机,我们也还觉得可以接受.那么再高级一点的ARM7,8086,80386,Core i3,Athlon 等等我们更习惯称他们为CPU,因为学习计算机原理的时候都是这么叫的,但按照单片机的定义,他们也是归属于单片机.这也不怪大家,中国的…
[js类库AngularJs]学习angularJs的指令(包括常见表单验证,隐藏等功能) AngularJS诞生于2009年,由Misko Hevery 等人创建,后为Google所收购.是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为核心的 是:MVVM.模块化.自动化双向数据绑定.语义化标签.依赖注入.等等. 参考资料: angularjs中文网:http://www.apjs.net/ angularjs官网:http://angula…
Windows内核中的CPU架构-6-中断门(32-Bit Interrupt Gate) 中断门和调用门类似,也是一种系统段.同样的它也可以用来提权. 中断门: 虽然中断门的段描述符如下: 但是中断门其实也就是段描述的一种.只不过有稍微区别,并且和调用门的段描述符类型非常相似. 中断门和调用门的区别: 这里将调用们的段描述符拿来对比下: 可以看到大致的结构是相同的,只不过 高32位的0-4位作为了一种保留位,采用0填充. 而Type位和段描述符中的s位采用了固定的值.其实这个就拿标准段描述符拿…
Windows内核中的CPU架构-7-陷阱门(32-Bit Trap Gate) 陷阱门和中断门几乎是一模一样的: (注:图里高32位中的第11位的值为D,其实是1) 除了高32位中的type字段的内容不一样: 陷阱门的值为15,中断门的值为14. 陷阱门和中断门的区别: 陷阱门和中断门只有一个唯一的区别,其它的包括调用方式都是一模一样. 唯一区别:通过中断门进入中断服务程序时CPU会字段将中断关闭,也就是把CPU中EFLAG寄存器中的IF标志位复位,来防止嵌套中断的发生.而通过陷阱门进入中断服…
下载安装DOSBox.网上提供下载地址:DOSBOX Debug是DOS(Disk Operating System,磁盘操作系统).windows提供的实模式(8086方式)程序的调试工具.使用它,可以查看CPU各种寄存器中的内容.内存的情况和在机器码级跟踪程序的运行. 查看更详细的介绍DEBUG百度百科 一般我们常用到的Debug参数: r命令查看.修改CPU寄存器的内容:      d命令查看内存中的内容:      e命令改写内存中的内容:      u命令将内存中的机器指令翻译成汇编指…
转自:http://tinylab.org/arm-wfe/ Zhang Binghua 创作于 2020/05/19 打赏 微信公众号   知识星球 关注 @泰晓科技 与数千位一线 Linux 工程师做朋友,您准备好了吗? 周一到周五,天天有新文.   日更实战经验与技巧! 1 背景简介 大家好,我叫张昺华,中间那个字和“饼”字一个读音,本人非常热衷技术,是个技术狂热者. 今天我想分享一个跟多核锁原理相关的东西,由于我搞 arm 居多,所以目前只研究了 arm 架构下的 WFE 指令,分享出来…
software和hardware之间总是存在tradeoff:要么是hardware结构复杂,software灵活.要么是hardware结构保持简洁清晰,software干一些脏活累活.VLIW就是属于后一种. 与Superscalar架构不同,VLIW将检查指令依赖关系的工作全部交给了编译器:编译器将没有依赖关系的指令打包成一个bundle,hardware不需要动态调度,只是负责取指.执行. VLIW创始人Josh Fisher于1983年发表的论文Very Long Instructi…
本篇文章将以Intel CPU作为讨论基础 一.并发的由来 一台计算机有2个cpu,其中CPU1执行程序A,CPU2执行程序B,由于程序A和程序B是两个不同的应用程序,所以它们两个之间并不存在并发问题. 2.现在两个CPU要执行程序A的同一段代码,比如对变量a执行加1操作,代码a=a+1经过汇编器编译之后就是如下指令片段:addl $1,-4(%esp); Intel CPU的指令集属于复杂指令集类型(CISC),其内部也是由微指令组成,就拿上面的加1操作指令,在CPU内部执行的时候可能会分成如…
(zz from http://blog.luoyuanhang.com/) ##常见寄存器 寄存器 16位 32位 64位 累加寄存器 accumulator AX EAX RAX 基址寄存器 base BX EBX RBX 计数寄存器 count CX ECX RCX 数据寄存器 data DX EDX RDX 堆栈基指针 Base Pointer BP EBP RBP 变址寄存器 Source Index SI ESI RSI 堆栈顶指针 Stack Pointer SP ESP RSP…
进程分析之CPU 进程分析之CPU 本文转载自:https://github.com/ColZer/DigAndBuried/blob/master/system/cpu.md 在<进程分析之内存>文中,对系统/进程的内存使用情况进行分析了,本文将从cpu使用情况对进程进行分析:在这之前,先针对cpu比较相关几个概念进行介绍 CPU INFO的阅读以及对基本概念的了解: cpu从硬件到系统层面有三个概念:物理CPU个数.物理核数.逻辑核个数:其中物理CPU的个数即硬件层面实实在在的CPU的个数…
进入20世纪第二个十年,计算机已经成为生活中一个必不可小的工具了,但我们真的了解计算机吗?计算机有哪些部分构成?不同的计算机又可以做什么样的事情呢?我们的PC和用来做加减乘除的计算器都属于计算机范畴吗?下面我们就来来接认识一下[注:本人从事Java开发小白一枚,有志于增强自身功力,所以自20171130开始从事菜鸟崛起笔记总结和记录,所录材料来自于网络和书籍,会有备注,如果有所忽视,尚请见谅,另小白写日记繁琐,片面,欢迎各位指正和提问,成长需要挫折和责难!] 1.1 计算机:大脑风暴 计算机其实…
NVIDIA GPU Pascal架构简述 本文摘抄自英伟达Pascal架构官方白皮书:https://www.nvidia.com/en-us/data-center/resources/pascal-architecture-whitepaper/ SM 相比Maxwell架构,Pascal架构改进了16-nm FinFET的制造工艺,并提供了各种其它架构改进. Pascal further improves the already excellent power efficiency pr…
本文主要是为了帮自己记住每次重装系统后需要干点啥,如果能帮到你,烦请给个好评 环境说明: 1. windows10 64bit 2. wampservers 3.0.6(x86) apache2.4.23 mysql5.7.14 php5.6.25+7.0.10 3. git-2.8.1-64-bit 4.phpstorm10.0.3 安装步骤: 第一步 安装VC++运行库 个人建议从2005到2017的都装一遍(包括32bit和64bit),这样在安装wamp的时候就不会出乱七八糟的错误了(3…
引言   不知道你是否和我有过同样的感受,<计算机组成原理>这门学科学起来如此的艰难:一节课下来,教室黑板上留下了满满的 "足迹",看上去也挺简单的,不就是 0 和 1 嘛.但这些看起来简简单单的 0 1 码却成为了我当时学习路上的绊脚石.源码.反码.补码等等等等,各种的码制转换令我一头雾水,我曾一度怀疑这就是计算机干的活儿吗?   随着后面慢慢了解<计算机组成原理>后,我愿称计算机为世界上最麻烦的电子产品.也形象的将计算机描述为一套有电源.有身体.有框架,但就…
指令集是CPU体系架构的重要组成部分.C语言的语法是对解决现实问题的运算和流程的方法的高度概况和抽象,其主要为算术.逻辑运算和分支控制,而指令集就是对这些抽象的详细支持,汇编仅仅只是是为了让开发者更好地记住指令,但它跟CPU所认的机器码事实上是一一相应的,因此汇编也是低级语言. CPU的指令运行一般包含取指.译码和运行,这是经典的三级指令运行流水线,教科书上往往以这三种过程来描写叙述,arm7也是.可是现代的CPU设计往往使用更广泛使用的5级流水线,也就是分为取指.译码.运行.訪存和回写.为什么…
大家好,我是轩辕. 我们知道,我们平时编程写的高级语言,是经过编译器编译以后,变成了CPU可以执行的机器指令: 而CPU能支持的指令,都在它的指令集里面了. 很久以来,我都在思考一个问题: CPU有没有未公开的指令? 或者说: CPU有没有隐藏的指令? 为什么会有这个问题? 平常我们谈论网络安全问题的时候,大多数时候都是在软件层面.谈应用程序的漏洞.后端服务的漏洞.第三方开源组件的漏洞乃至操作系统的漏洞. 但很少有机会去触及硬件,前几年爆发的熔断和幽灵系列漏洞,就告诉我们,CPU也不是可信任的.…
青蛙见了蜈蚣,好奇地问:"蜈蚣大哥,我很好奇,你那么多条腿,走路的时候先迈哪一条啊?" 蜈蚣听后说:"青蛙老弟,我一直就这么走路,从没想过先迈哪一条腿,等我想一想再回答你." 蜈蚣站立了几分钟,它一边思考一边向前,蹒跚了几步,终于趴下去了. 它对青蛙说:"请你再也别问其它蜈蚣这个问题了!我一直都在这样走路,这根本不成问题!可现在你问我先移动哪一条腿,我也不知道了.搞得我现在连路都不会走了,我该怎么办呢?" 这个小故事属实反映了我最近的心态: 越学…
在查看dpdk官方文档的时候,发现有 这样(kernel - devel.x86_64; kernel - devel.ppc64:glibc.i686)这样的安装包信息,收集了点资料来分析这三者的关系和区别. 原文网址:http://www.ithao123.cn/content-1324943.html linux 版本中 i386/i686/x86-64/pcc 等的区别 2015-03-02 参考1: 一. I386 为32位 x86 64位 二.安装介质 1. i386 适用于inte…
本文转载自网络. 如有侵权,请联系处理!   简介 中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit).它的功能主要是解释计算机指令以及处理计算机软件中的数据.   位数 二进制的每一个0或1是组成二进制的最小单位,称为位(bit).字长是指同一时间能并行处理的二进制位数.字长可以分为CPU字长.操作系统字长.CPU字长也称为CPU的位宽或运算位数,现在绝大部分CPU都是64位的…
查看分区:cat /proc/partitions   [root@lbg init.d]# cat /proc/partitions major minor  #blocks  name      2        0          4 fd0    8        0   20971520 sda    8        1     409600 sda1    8        2     204800 sda2    8        3   20356096 sda3    8 …
本文转载自inter官方网址:https://software.intel.com/zh-cn/articles/book-Processor-Architecture_CPU_work_process CPU的工作过程 CPU的基本工作是执行存储的指令序列,即程序.程序的执行过程实际上是不断地取出指令.分析指令.执行指令的过程. CPU从存放程序的主存储器里取出一条指令,译码并执行这条指令,保存执行结果,紧接着又去取指令,译码,执行指令--,如此周而复始,反复循环,使得计算机能够自动地工作.除…
一.不得不提的volatile volatile是个很老的关键字,几乎伴随着JDK的诞生而诞生,我们都知道这个关键字,但又不太清楚什么时候会使用它:我们在JDK及开源框架中随处可见这个关键字,但并发专家又往往建议我们远离它.比如Thread这个很基础的类,其中很重要的线程状态字段,就是用volatile来修饰,见代码 /* Java thread status for tools, * initialized to indicate thread 'not yet started' */   p…
转于:http://www.cnblogs.com/lidabo/p/4738113.html 目录(?)[-] proc文件系统 proccpuinfo文件 procstat文件 procpidstat文件 procpidtasktidstat文件 系统中有关进程cpu使用率的常用命令 ps 命令 top命令 单核情况下Cpu使用率的计算 基本思想 总的Cpu使用率计算 计算方法 某一进程Cpu使用率的计算 计算方法 实验数据 某一线程Cpu使用率的计算 计算方法 实验数据 多核情况下cpu使…
一般而言,MySQL 的调优可以分为两个层面,一个是在MySQL层面上进行的调优,比如SQL改写,索引的添加,MySQL各种参数的配置:另一个层面是从操作系统的层面和硬件的层面来进行调优.操作系统的层面的调优,一般要先定位到是那种资源出现瓶颈——CPU. 内存.硬盘.网络,然后入手调优.所以其实MySQL 的调优,其实不是那么简单,它要求我们对 硬件.OS.MySQL 三者都具有比较深入的理解.比如 NUMA 架构的CPU是如何分配CPU的,以及是如何分配内存的,如何避免导致SWAP的发生:Li…
一.不得不提的volatile volatile是个很老的关键字,几乎伴随着JDK的诞生而诞生,我们都知道这个关键字,但又不太清楚什么时候会使用它:我们在JDK及开源框架中随处可见这个关键字,但并发专家又往往建议我们远离它.比如Thread这个很基础的类,其中很重要的线程状态字段,就是用volatile来修饰,见代码 /* Java thread status for tools, * initialized to indicate thread 'not yet started' */   p…
CPU相关术语 处理器:插到系统插槽或者处理器版上的物理芯片,以核或者硬件线程的方式包含了一块或者多块CPU. 核:一颗多核处理器上的一个独立CPU实例.核的使用时处理器扩展的一种方式,有称为芯片级多处理器(chip-level multiprocessing,CMP). 硬件线程:一种支持在一个核上同时执行多个线程(包括Intel的超线程技术)的CPU架构,每个线程是一个独立的CPU实例.这种扩展的方法又称为多线程. CPU指令:单个CPU操作,来源于它的指令集.指令用于算术操作.内存I/O,…
CPU主要由什么构成? CPU包括运算逻辑部件.寄存器部件和控制部件等. 逻辑部件:可以执行点或浮点算术远算操作.移位操作以及逻辑操作,也可以执行地址运算和转换. 寄存器部件:存储程序.数据和各种信号.命令等信息,并在需要时提供这些信息. 控制部件:负责对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号. 详细的说: 1)控制器:CPU的控制器包括用电信号指挥整个电脑系统的执行及储存程序命令的电子线路.像一个管弦乐队的指挥者,控制器不执行程序命令,而是指挥系统的其它部分做这些工作.控…