自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Keep Fighting!

欢迎关注我的公众号《处理器与AI芯片》

翻译 【Microarchitecture of Intel and AMD CPU】 9 Sandy Bridge and Ivy Bridge pipeline 【9.11-9.15】

9.11 部分寄存器访问 一个通用寄存器的不同的部分可以存放在不同的临时寄存器中,以减少伪依赖。在向寄存器的一部分发起写操作,后续跟随一个读取完整寄存器的操作时会遇到问题。 ; Example 9.4. Partial register problem mov al, 1 mov ebx, ...

2020-05-31 17:06:32 361 0

翻译 【Microarchitecture of Intel and AMD CPU】 9 Sandy Bridge and Ivy Bridge pipeline 【9.8-9.10】

9.8 寄存器分配和重命名 所有的整数,浮点,MMX,XMM,YMM,标志寄存器,并且可能段寄存器也可以被重命名。浮点数控制字也可以被重命名。 寄存器重命名被RAT(寄存器重命名表)和重排序缓冲区控制,如图6.1所示。来自译码器和stack engine的uops通过queue进入RAT,而后...

2020-05-17 12:50:53 346 0

翻译 【Microarchitecture of Intel and AMD CPU】 9 Sandy Bridge and Ivy Bridge pipeline 【9.7】

9.7 Stack Engine Sandy Bridge 设计了独立的stack engine,工作方式与之前的处理器中的Stack Engine相同。 引入7.7 Stack Engine对stack的介绍 栈指令,比如push,pop,call 和ret都会修改栈指针。例如,指令pus...

2020-05-15 22:02:51 303 0

转载 SPECCPU2006 Spec2006 使用说明

工具介绍 SPEC CPU 2006 benchmark是SPEC新一代的行业标准化的CPU测试基准套件。重点测试系统的处理器,内存子系统和编译器。这个基准测试套件包括的SPECint基准和SPECfp基准。 其中SPECint2006基准包含12个不同的基准测试和SPECfp2006年基准包含...

2020-05-10 16:31:55 128 0

翻译 【Microarchitecture of Intel and AMD CPU】 9 Sandy Bridge and Ivy Bridge pipeline 【9.4~9.6】

9.4 LoopBack Buffer Nehalem 中的28uop loop buffer 在Sandy Bridge和Ivy Bridge中被保留。Loop Buffer被放置在uop cache之后,但是在uop cache miss的情况下,它也可以接受来自译码器的指令。Loop bu...

2020-05-03 00:20:03 325 0

转载 C/C++中static的用法全局变量与局部变量

1.什么是static?   static是C/C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。 1.1static的引入   我们知道在函数内部定义的变量,当程序执行到它的定义处时,编译器为它在栈上分配空间,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题:...

2020-05-01 10:55:38 46 0

翻译 【Microarchitecture of Intel and AMD CPU】 9 Sandy Bridge and Ivy Bridge pipeline 【9.1~9.3】

Intel命名Sandy Bridge 的微架构是基于Core 2 和Nehalem的第二代设计。在解码器后面加入了新的uop cache,并且浮点执行单元从128bit扩展到256bit。 Sandy Bridge 有2-8 个core,其中的一些版本可以在每个core上运行双线程。 支持新...

2020-04-29 00:59:51 48 0

原创 微架构之超线程

线程并行 当代的软件趋向于运行在多线程模式,或者是并行处理。网络包传输和web服务可以运行以多线程的方式运行以达到更高的性能。甚至是桌面应用也开始增加并行性。Intel架构师已经开始尝试利用TLP( thread-level parallelism) 线程并行性,用来在较少的晶体管和功耗下就能达...

2020-04-28 18:29:50 45 0

原创 Leetcode 5. 最长回文子串

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2: 输入: "cbbd&qu...

2020-04-17 20:38:39 27 0

原创 Leetcode 61. 旋转链表

给定一个链表,旋转链表,将链表每个节点向右移动k个位置,其中k是非负数。 示例1: 输入: 1->2->3->4->5->NULL, k = 2 输出: 4->5->1->2->3->NULL 解释: 向右旋转 1 步: 5->...

2020-04-17 16:34:41 20 0

原创 Leetcode 142. 环形链表 II

给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 说明:不允许修改给定的链表。 示例 1: 输入:head = [3...

2020-04-15 22:30:52 14 0

原创 Leetcode 面试题48. 最长不含重复字符的子字符串

请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 示例1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb&quo...

2020-04-14 21:40:48 17 0

原创 LeetCode 845. 数组中的最长山脉

我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山脉”: B.length >= 3 存在 0 < i< B.length - 1 使得 B[0] < B[1] < ... B[i-1] < B[i] > B[i+1] > ... &g...

2020-04-11 11:45:43 10 0

原创 LeetCode 209. 长度最小的子数组

vector<vector<int>> dp(5); for (int i = 0; i < array.size(); i++) dp[i].resize(5); for (int i = 0; i<array.size();i++) dp[...

2020-04-10 10:37:10 19 0

原创 LeetCode 【回溯】面试题 08.08. 有重复字符串的排列组合

有重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合。 示例1: 输入:S = "qqe" 输出:["eqq","qeq","qqe"] 示例2: 输入:S = "ab" ...

2020-03-14 16:30:01 106 0

原创 Leetcode 39. 组合总和

给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。 candidates中的数字可以无限制重复被选取。 说明:所有数字(包括target)都是正整数。 解集不能包含重复的组合。 示例1: 输入: cand...

2020-03-14 15:06:03 37 0

翻译 【Microarchitecture of Intel and AMD CPU】 2 Out-of-order execution

Intel 的第六代微处理器,从PPro开始,提供了一种重要的技术提升,乱序执行。如果一条指令的输入因为某些原因在当前时刻还未准备好,那么我们可以尝试执行这条指令后面的指令。当然,处理器需要检查时候后面的指令需要前面的指令的执行结果。如果每一条指令都依赖于前一条指令的结果,那么这就叫做依赖链。 ...

2020-03-10 20:22:03 26 0

原创 Leetcode 17. 电话号码的字母组合

给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输出:["ad", "ae", "af", &qu...

2020-03-09 16:16:29 19 0

原创 Leetcode 306. 累加数

累加数是一个字符串,组成它的数字可以形成累加序列。 一个有效的累加序列必须至少包含 3 个数。除了最开始的两个数以外,字符串中的其他数都等于它之前两个数相加的和。 给定一个只包含数字'0'-'9'的字符串,编写一个算法来判断给定输入是否是累加数。 说明...

2020-03-08 12:42:12 33 0

转载 范数(norm) 几种范数的简单介绍

什么是范数? 我们知道距离的定义是一个宽泛的概念,只要满足非负、自反、三角不等式就可以称之为距离。范数是一种强化了的距离概念,它在定义上比距离多了一条数乘的运算法则。有时候为了便于理解,我们可以把范数当作距离来理解。 在数学上,范数包括向量范数和矩阵范数,向量范数表征向量空间中向量的大小,矩阵...

2020-03-07 22:37:48 30 0

原创 LeetCode 面试题 10.09. 排序矩阵查找

给定M×N矩阵,每一行、每一列都按升序排列,请编写代码找出某元素。 示例: 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [1...

2020-03-07 11:55:16 44 0

原创  Leetcode300. 最长上升子序列

给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。 说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法的时间复杂度...

2020-03-03 00:30:13 20 0

原创 LeetCode 3. 无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 示例1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 ...

2020-03-01 15:18:11 22 0

原创 Leetcode 139. 单词拆分

给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明:拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1: 输入: s = "leetcode", wordD...

2020-03-01 00:43:32 29 0

转载 背包九讲

背包九讲 目录 P01:01背包问题 P02:完全背包问题 P03:多重背包问题 P04:混合三种背包问题 P05:二维费用的背包问题 P06:分组的背包问题 P07:有依赖的背包问题 P08:泛化物品 P09:背包问题问法的变化 前言 本篇文章是我(dd_engi)正在进...

2020-02-27 23:51:31 35 0

转载 动态规划实现回文字符串问题

问题一:求一个字符串的最大回文字符串长度;   1)思路:动态规划;   2)具体描述:设立一个长度len为字符串str,用一个dp[len][len]的二维数组来表示字符串i-j下标所构成的子串的长度,经过循环计算之后我们返回最大回文子串的长度即可,即返回dp[0][len-1];   3...

2020-02-27 23:43:43 19 0

转载 01背包问题 (动态规划算法)

原文链接 0-1 背包问题:给定 n 种物品和一个容量为 C 的背包,物品 i 的重量是 wi,其价值为 vi 。 问:应该如何选择装入背包的物品,使得装入背包中的物品的总价值最大? 分析一波,面对每个物品,我们只有选择拿取或者不拿两种选择,不能选择装入某物品的一部分,也不能装入同一物品多次...

2020-02-27 23:38:55 27 0

原创 Leetcode 64. 最小路径和

给定一个包含非负整数的 mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。 cl...

2020-02-27 11:11:35 25 0

原创 Leetcode 62. 不同路径

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径? 例如,上图是一个7 x 3 的网格。有多少可能的路径? 说明:m和 n ...

2020-02-27 00:41:34 18 0

原创 Leetcode 932. 漂亮数组

对于某些固定的N,如果数组A是整数1, 2, ..., N组成的排列,使得: 对于每个i < j,都不存在k 满足i < k < j使得A[k] * 2 = A[i] + A[j]。 那么数组 A是漂亮数组。 给定N,返回任意漂亮数组A(保证存在一个)。 示例...

2020-02-27 00:02:42 43 0

转载 Leetcode 95.不同的二叉搜索树II

题目 给定一个整数 n,生成所有由 1 ... n 为节点所组成的二叉搜索树。 示例: 输入: 3 输出: [ [1,null,3,2], [3,2,null,1], [3,1,null,null,2], [2,1,3], [1,null,2,null,3] ] 解释: 以上的输出对应以下 5...

2020-02-22 21:10:34 22 0

原创 Leetcode 19. 删除链表的倒数第N个节点

给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n保证是有效的。 进阶: 你能尝...

2020-02-21 21:08:05 57 0

原创 Leetcode 954. 二倍数对数组

给定一个长度为偶数的整数数组A,只有对A进行重组后可以满足 “对于每个 0 <=i < len(A) / 2,都有 A[2 * i + 1] = 2 * A[2 * i]”时,返回 true;否则,返回 false。 示例 1: 输入:[3,1,3,6] 输出:false 示例 ...

2020-02-21 19:44:11 33 0

原创 Leetcode 951. 翻转等价二叉树

我们可以为二叉树 T 定义一个翻转操作,如下所示:选择任意节点,然后交换它的左子树和右子树。 只要经过一定次数的翻转操作后,能使 X 等于 Y,我们就称二叉树 X 翻转等价于二叉树 Y。 编写一个判断两个二叉树是否是翻转等价的函数。这些树由根节点root1 和 root2给出。 示例: ...

2020-02-21 16:39:53 30 0

原创 Leetcode 面试题14- II. 剪绳子 II

给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m] 。请问 k[0]*k[1]*...*k[m] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此...

2020-02-21 14:49:24 31 0

原创 Leetcode 94 二叉树的中序遍历

给定一个二叉树,返回它的中序遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 进阶:递归算法很简单,你可以通过迭代算法完成吗? 注意迭代算法的实现,仔细思考迭代算法是怎么处理以下两种情况的: 1) 1 /...

2020-02-21 14:25:35 24 0

转载 【转载】奇异递归模板模式( Curiously Recurring Template Pattern,CRTP)

1.CRTP介绍 奇异递归模板模式(curiously recurring template pattern,CRTP)是C++模板编程时的一种惯用法(idiom):把派生类作为基类的模板参数。更一般地被称作F-bound polymorphism,是一类F 界量化,相关介绍可以参考 wiki 奇...

2020-02-20 00:32:58 14 0

原创 Gem5 实现与架构 ( Impl and Arch )

这一系列的目的是为了梳理清楚gem5是如何将不同的体系结构的代码进行构建的,记录学习的过程。如有错误,请不吝赐教。 1 Impl ./src/cpu/o3/impl.hh 这个文件中定义了CPUPolicy,BaseO3DynInst和FullO3CPU (其模板参数又为O3CPUImpl,看起...

2020-02-20 00:28:52 67 0

原创 【c++ primer 源代码】String 赏析

String.h #ifndef STRING_H #define STRING_H //#include "Version_test.h" #include <cstring> #include <algorithm> #include <c...

2020-02-14 23:57:01 22 0

原创 【PAT】 A1009 Product of Polynomials

This time, you are supposed to findA×BwhereAandBare two polynomials. Input Specification: Each input file contains one test case. Each case occupie...

2020-02-14 20:42:34 22 0

提示
确定要删除当前文章?
取消 删除