Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (7) - 流水线前端/译码后指令缓存

版权声明:转载必须保留原出处,没有书面许可不可用于商用目的, https://blog.csdn.net/qq_43401808/article/details/85997249 Decoded ICache 译码后微指令缓存本质上是对传统的译码流水线的高速缓存加速器。通过缓存微指令,可以提供如下的优势: 减少由于分支预测失败导致的延迟 增加发射微指令到乱序引擎的带宽 降低流水线前端的能耗 译码后微指令缓存存储指令译码器生成的微指令。以后当这些微指令需要被执行时,可以直接从缓存中获取,而不再需
分类: 其他 发布时间: 01-12 23:00 阅读次数: 0

Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (8) - 流水线前端/分支预测

版权声明:转载必须保留原出处,没有书面许可不可用于商用目的, https://blog.csdn.net/qq_43401808/article/details/85997337 Branch Prediction 分支预测机制会预先推测分支目标,让处理器在分支指令实际计算出决断结果之前就开始执行分支路径上的指令。所有的分支都会利用分支预测单元BPU做预测。分支预测单元在预测分支目标时不但会基于分支的EIP,而且还会参考到达这个EIP的执行路径。BPU可以高效的预测如下的分支类型: 条件分支
分类: 其他 发布时间: 01-12 22:59 阅读次数: 0

Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (9) - 流水线前端/微指令队列&循环流侦测器LSD

版权声明:转载必须保留原出处,没有书面许可不可用于商用目的, https://blog.csdn.net/qq_43401808/article/details/85997414 Micro-op Queue and the Loop Stream Detector (LSD) 微指令队列将流水线前端与乱序引擎解耦合(即隔离开)。它位于微指令生成单元与重命名单元之间(参看上图),主要功能是用于隐藏不同的微指令来源(即传统译码流水线,MSROM和微指令缓存)产生的“气泡现象(即带宽不均衡)”,确
分类: 其他 发布时间: 01-12 22:59 阅读次数: 0

Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (10) - 乱序引擎概述

版权声明:转载必须保留原出处,没有书面许可不可用于商用目的, https://blog.csdn.net/qq_43401808/article/details/85997620 The Out-of-Order Engine 乱序引擎相较于前代微架构提供了更好的性能,同时也具有极佳的电力特征(excellent power chacteristics,即更好的能效)。乱序引擎侦测到依赖链,将其发送(到执行核)进行乱序执行,同时还维护正确的数据流。当某个依赖链等待某项资源时,例如正等待来自于二
分类: 其他 发布时间: 01-12 22:59 阅读次数: 0

Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (11) - 乱序引擎/重命名器&调度器

版权声明:转载必须保留原出处,没有书面许可不可用于商用目的, https://blog.csdn.net/qq_43401808/article/details/85997673 Renamer 从上图中可以看出,重命名器是连接“有序前端”与“调度器的数据流世界(即乱序引擎)”的桥梁。它每周期可以最多从微指令队列搬移4条微指令到乱序引擎。尽管重命名器最多可以搬移4条微指令(未熔合的,微熔合的,宏熔合的),这个带宽已经等价于发射口的带宽(每周期6条微指令)。在这个过程中,乱序核执行如下的步骤:
分类: 其他 发布时间: 01-12 22:59 阅读次数: 0

Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (12) - 执行核

版权声明:转载必须保留原出处,没有书面许可不可用于商用目的, https://blog.csdn.net/qq_43401808/article/details/85997764 The Execution Core 执行核的特点是1)超标量,2)乱序处理指令。通过高效处理最常用的操作,同时最小化潜在的时延,执行核优化了总体执行性能。 相比起前代微架构,Sandy Bridge的乱序执行核在如下几个方面改进了执行单元的组织结构: 降低了读口(即load端口)的停顿 降低了回写时的冲突与时延 节
分类: 其他 发布时间: 01-12 22:58 阅读次数: 0

Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (13) - 缓存层级结构

版权声明:转载必须保留原出处,没有书面许可不可用于商用目的, https://blog.csdn.net/qq_43401808/article/details/85997892 Cache Hierarchy 每个处理器核中,高速缓存的层级结构包括一级指令缓存LII,一级数据缓存LID,以及二级缓存。如果开启了Intel超线程技术,数据缓存有可能被两个逻辑处理器共享使用。二级缓存是混和式的,由指令与数据共享使用。物理处理器中所有的处理器核通过一个互联环路连接到共享的三级缓存,即最后级缓存LL
分类: 其他 发布时间: 01-12 22:58 阅读次数: 0

Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (14) - 读存操作&写存操作

版权声明:转载必须保留原出处,没有书面许可不可用于商用目的, https://blog.csdn.net/qq_43401808/article/details/85998011 Load and Store Operation Overview 本节讲述读存与写存操作。 Loads 当指令从回写式类型的存储器中的某个地址读取数据时,处理器会从高速缓存和存储器中查找数据。下表描述的是访问查找顺序以及最佳情形时延。实际的时延可能随着缓存队列的占用率,LLC环路的占用率,存储器模块以及它们的性能参
分类: 其他 发布时间: 01-12 22:58 阅读次数: 0

Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (15) - L1数据缓存/读&写&地址转换

版权声明:转载必须保留原出处,没有书面许可不可用于商用目的, https://blog.csdn.net/qq_43401808/article/details/85998078 L1 DCache (L1D) L1D指的是一级数据缓存,通过缓存内部的数据结构(即硬件逻辑),管理所有类型的读存与访存请求: 允许投机式,乱序发射读存与写存请求 确保退役的读存与写存指令在退役时具有正确的数据 确保读存与写存操作遵循IA32与Intel 64指令集架构定义的访存顺序规则 表:L1D的构件 Compo
分类: 其他 发布时间: 01-12 22:58 阅读次数: 0

Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (16) - L1数据缓存/存储转发&访存消歧&存储体冲突

版权声明:转载必须保留原出处,没有书面许可不可用于商用目的, https://blog.csdn.net/qq_43401808/article/details/85998175 Store Forwarding 如果读存操作紧跟着写存操作,且要读取的数据包含在要写入的数据中,则数据可能可以从写操作直接转发给读操作。这个过程叫做“存储-读取转发”,简称为“存储转发”。这种技术可以节省读操作的时延周期数,因为读操作无需等待写操作完成后在从存储器中读取数据,而是直接从写操作中获取数据(注:从写存缓
分类: 其他 发布时间: 01-12 22:57 阅读次数: 0

Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (17) - 互联环路&LLC

版权声明:转载必须保留原出处,没有书面许可不可用于商用目的, https://blog.csdn.net/qq_43401808/article/details/85998291 Ring Interconnect and Last Level Cache 片上系统设计提供了一个高带宽的双向环路总线,用于连接IA处理器核与核外的各子系统。在第二代Intel Core处理器2xxx系列(即基于Sandy Bridge微架构的处理器)上,核外子系统包括系统代理(system agent),图形单元
分类: 其他 发布时间: 01-12 22:57 阅读次数: 0

Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (18) - 数据预取

版权声明:转载必须保留原出处,没有书面许可不可用于商用目的, https://blog.csdn.net/qq_43401808/article/details/85998354 Data Prefetching 使用软件预取指令,硬件预取机制,或者两者的任意组合,都可以将数据投机式地加载到L1D中。 程序员可以使用4条SSE预取指令来实施软件控制的预取操作。这些指令给处理器提供一些“提示”,请求将数据行加载到指定的某级缓存中。注意:软件控制的预取是针对数据的,不要预取代码。 接下来讲述San
分类: 其他 发布时间: 01-12 22:57 阅读次数: 0

Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (19) - 系统代理

版权声明:转载必须保留原出处,没有书面许可不可用于商用目的, https://blog.csdn.net/qq_43401808/article/details/85998432 System Agent 在Sandy Bridge微架构中实现的系统代理包括了如下的组件: 一个总裁器,用于管理所有的访问请求,并将这些请求路由(即转发)到正确的位置上。访问请求可能来自于环域(ring domain)和I/O(PCIe* 和DMI)。 PCIe控制器,用于连接外部PCIe设备。PCIe控制器根据产
分类: 其他 发布时间: 01-12 22:57 阅读次数: 0

Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (20) - IvyBridge微架构

版权声明:转载必须保留原出处,没有书面许可不可用于商用目的, https://blog.csdn.net/qq_43401808/article/details/85998497 Intel® Ivy Bridge Microarchitecture 第三代Intel Core处理器是基于Ivy Bridge微架构的。上述的Sandy Bridge微架构的特性也都适用于Ivy Bridge微架构。本节概述与Sandy Bridge不同的特性,可能会影响到程序的编码与性能。 Ivy Bridge
分类: 其他 发布时间: 01-12 22:56 阅读次数: 0

Linux introduce

Linux各目录内容: /:根目录 bin:二进制文件,放的是可执行文件,比如linux命令 dev:linux中绝大部分设备都是以文件方式存在,dev存放的就是这些设备文件 etc:配置文件 home:linux用户的家 lib:library,存放linux用到的库文件 root:root用户的家 sbin:二进制可执行文件 tmp:临时文件 模式切换: init 3:由界面模式切换到文本模式 init 5:由文本模式切换到界面模式 一些按键在文本模式中作用: Tab:补全命令,补全路径
分类: 其他 发布时间: 01-12 22:55 阅读次数: 0

Linux 在线安装软件

Linux系统可以通过rpm指令安装软件,这种安装方法较为简单,但缺点是需要下载相应的软件包,以及解决包的依赖问题。 另一种安装方法是借用软件包仓库在线安装软件。软件包仓库拥有各种各样的软件包,客户只需要提供要安装的软件名称,软件包仓库就会自动给客户安装上软件包以及依赖包。 在linux系统中可以通过yum指令安装软件包仓库的软件。在使用yum之前,需要将软件包仓库地址等信息存放在以repo为后缀名的文件中,并将该文件存放在/etc/yum.repod.d/目录下。/etc/yum.repod
分类: 其他 发布时间: 01-12 22:54 阅读次数: 0

Linux 系统安装软件

安装包的类型 通常Linux应用软件的安装包有三种: 1) tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。 2) rpm包,如software-1.2.3-1.i386.rpm。它是Redhat linux提供的一种包封装格式。 3) dpkg包,如software-1.2.3-1.deb。它是Debain Linux提供的一种包封装格式。 而且,大多数Linux应用软件包的命名有一定的规律,它遵循: 名称-版本-修正版-类型 例如:
分类: 其他 发布时间: 01-12 22:54 阅读次数: 0

gcc 编译器简介

在Linux中选择gcc编译器的原因是gcc执行效率高。 gcc基本用法:gcc [options] filename 其中options为编译选项。 例子:执行指令 gcc hello.c ,则对hello.c进行编译,如果程序没有语法错误,则产生可执行文件a.out(gcc默认文件名) 运行可执行文件指令:./a.out gcc编译器将c/c++源程序、汇编程序形成可执行文件经过四个阶段:预处理、编译、汇编、链接。 预处理:该阶段编译器将程序中包含的头文件编译进来,编译选项为-E 例如:g
分类: 其他 发布时间: 01-12 22:53 阅读次数: 0

Linux应用程序地址分布

(1)内存组成 (2)内存布局 Linux所有应用程序都是从0x80480000开始, 其中0x80480000是一个虚拟地址 1)下面来测试一下应用程序的地址分布 #include <stdio.h> #include <stdlib.h> int global_init_a=1; //全局的,初始化的变量 : 数据段 int global_uninit_a; //全局的,没有初始化的变量 : 数据段 static int static_global_init_a = 1; //全局的,静态
分类: 其他 发布时间: 01-12 22:53 阅读次数: 0

Linux中Shutdown命令实现定时自动关机

Shutdown命令可以安全地关闭或重启Linux系统,在Linux中可以用shutdown命令实现自动定时关机的功能,它在Linux系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,可以是一个精确的时间,也可以是从现在开始的一个时间段。 精确时间的格式是hh:mm,表示小时和分钟,时间段由+ 和分钟数表示。系统执行该命令后会自动进行数据同步的工作。 该命令的一般格式: Shutdown [选项] [时间] [警告信息] 命令中各选项的含义为: - k 并不
分类: 其他 发布时间: 01-12 22:53 阅读次数: 0