- 博客(159)
- 资源 (5)
- 收藏
- 关注
原创 ARMv8 Linux内核源码分析:__flush_dcache_all()
ARMv8 Linux内核源码分析:__flush_dcache_all()
2014-05-30 16:56:35 3276
原创 ARMv7用户层发生指令异常的处理流程?是否每个进程都有一个APSR的副本?
1、用户层发生指令异常的处理流程?用户层程序正在执行时,遇到未定义的指令(ARM不是别的指令)或者SWI软件中断指令(产生系统调用),就会产生异常,这里以未定义指令异常为例进行说明: 一旦出现未定义指令异常,CPU会自动做如下操作:(1)未定义模式(ARM其中运行模式的一种)下对应的lr(即R14)寄存器保存当前发生异常的指令下一条指令的地址。例如,在用户态有A B C
2014-05-29 11:52:31 3541
原创 关于ARMv8指令的几个问题
问题一:ARMv8 branch指令格式及用法(《ARMv8 ISA overview》中 page 25有相关叙述):问题二:ARMv8指令分类:问题三:ARMv8有没有两个目的操作数的指令?问题四:ARMv8中源操作数超过三个的指令及分类:问题五:branch指令向前向后跳转的区别
2014-05-29 11:48:39 7396 5
原创 simplescalar CPU模拟器源码分析
Sim-outorder.cMain函数Fetch ——> despetch——> issue——> writeback ——>commitCode text——>fetch queue ——> RUU/LSQ(—>readyqueue)—...
2014-05-29 11:45:18 5369
原创 关于ARMv8另外几个问题
之前没有ARMv8手册,所有问题只能从Linux内核源码中找答案,例如一下几个问题:问题1:支持ARMv8的Linux内核异常向量地址在哪?问题2:找出TLB中存放的ARMv8的页表格式?问题3:ARMv8中重要的控制寄存器的各位的意思是什么?
2014-05-29 11:41:58 6357
原创 从编译器源码中提取ARMv8的指令编码
2012年时,ARMv8 体系结构手册还没发布,当时项目需要ARMv8指令编码,我就从ARMv8交叉编译工具链的binutils中提取出了所有ARMv8指令的二进制编码,虽然ARMv8手册中已经详细公布,但方法还是值得一读。现把方法列出。
2014-05-29 11:40:00 4239
原创 虚拟化Xen平台中,Dom0和DomU之间发送网络数据时各个部分所运行时间
虚拟化Xen平台中,Dom0和DomU之间发送网络数据时各个部分所运行时间
2014-05-28 16:02:23 3480
转载 帮你理解网关、ARP、IP、MAC、路由
假设你叫小不点(本地主机),住在一个大院子(本地局域网)里,有很多邻居(网络邻居),门口传达室有个看大门的李大爷,李大爷就是你的网关。当你想跟院子里的某个伙伴玩,只要你在院子里大喊一声他的名字(ping他一下),他听到了就会回应你,并且跑出来跟你玩。 但是你不被允许走出大门,你与外界的一切联系,都必须李大爷(网关)用电话帮助你联系。假如你想找你的同学小明聊天,小明家住在很远的另外一
2014-05-16 10:52:51 2036
原创 linux下通过命令行使用Vtune统计处理器微体系结构特征
关于Vtune的介绍见官网,它可以调用intel处理器的底层performence counter,统计类似TLB miss、L1 cache miss等微体系结构信息。用界面的方式使用Vtune比较方便,但是要同时控制多台机器上的Vtune并抓取相应数据时,界面方式就不行了。使用shell命令行方式非常方便。可以用ssh无密码登录到其他节点,几乎同时调用vtune并开始统计。 vtune统计微体系结构信息分两部分,收集原始数据和对收集的数据做分析:
2014-04-25 21:31:41 8762
原创 spark0.9.1集群模式运行graphx测试程序(LiveJournalPageRank,新增Connected Components)
spark最新版发布了,之前的版本就已经集成了graphx,这个版本还改了一些bug。我做了简单测试,不过网上关于集群模式运行spark资料太少了,只有关于EC2(https://github.com/amplab/graphx/wiki/Launch-a-benchmarking-cluster)的,但是还很旧,好多命令都有变化了。很讨厌写安装类的博客不注明当前使用软件的版本,这是常识好不好?!
2014-04-21 17:32:58 5723
转载 shell 语法示例
#!/bin/shecho "This is the first shell script!"#=============This is comment.============#==================变量===================a="hello world!"echo $aecho "I am student. $a"#=================
2014-04-04 15:26:13 1275
原创 【解决】Xstart连接服务器桌面报错:Failed to connect to the session manager: IO error occurred opening connection
服务器系统:Centos6.2原因:xlibs太旧解决办法:yum install libX11
2014-04-04 10:49:45 4379
转载 linux下gsl安装问题与解决
从http://www.gnu.org/software/gsl/上下载, 按照提示安装之后,一切没有问题, 但是把manual中给出的例子拿来算, 却总不能编译成功. 错误信息为头文件中定义的函数函数没有定义.像下面的例子中,#include #include int main(){ gsl_block * b = gsl_block_alloc(100);
2014-03-19 15:01:23 12723
原创 cpio文件系统的解压和制作方法
cpio解压方法: 1. # gunzip XXX.cpio.gz 2. cpio -idmv 制作cpio格式文件系统的方法: 1. 执行gen_initramfs_list.sh脚本: # gen_initramfs_list.sh ./Filesystem/ >filelist 其中Filesy
2014-03-06 18:17:54 36306
翻译 比较虚拟机中文件系统的性能
基于虚拟机并使用Vagrant(译注:Vagrant用于创建和部署自动化虚拟化开发环境)开发环境主要瓶颈是文件系统的性能。各平台的CPU区别是很小的,甚至可以忽略不计,而且RAM只有在很多虚拟机(译注:指同一台物理机上的虚拟机)都活跃时才会成为性能瓶颈。昨天我花了大部分时间测试并分析了通用的文件系统机制,现在把我得到的结果分享给你们。
2014-03-01 14:26:03 3979
原创 做到以下几点,一篇学术论文就能研究明白
之前有篇翻译,从步骤上讲述如何读一篇论文,以下我要说的是关于读论文时应该思考的内容,结合之前的翻译的文章,读论文时带着如下问题,就能顺利搞清楚一篇论文的所有内容。
2014-02-20 11:09:35 1861
转载 Hadoop工具箱:到底应该什么时候用哪一个?
Eight years ago not even Doug Cutting would have thought that the tool which he's naming after his kid's soft toy would so soon become a rage and change the way people and organizations look at
2014-02-18 10:14:24 1542
原创 关于“缓存着色(cache coloring, page coloring)”技术的相关资料介绍
关于缓存着色(cache coloring)的相关资料
2014-01-08 17:22:22 7092 1
转载 Should volatile Acquire Atomicity and Thread Visibility Semantics?
Doc. no.N2016=06-0086Date:2006-04-21Reply to:Hans Boehm Authors:Hans Boehm & Nick MaclarenShould volatile Acquire Atomicity and Thread Visibility Semantics?Traditio
2013-12-25 11:39:34 1288
转载 Volatile: Almost Useless for Multi-Threaded Programming
Volatile: Almost Useless for Multi-Threaded ProgrammingSubmitted by Arch D. Robison... on Fri, 11/30/2007 - 12:44There is a widespread notion that the keyword volatile is g
2013-12-25 11:38:26 1385
转载 Why the "volatile" type class should not be used
------------------------------------------------C programmers have often taken volatile to mean that the variable could bechanged outside of the current thread of execution; as a result, they ares
2013-12-23 10:26:46 1456
转载 核间中断IPI的机制
XLR 732 多核多线程处理器的中断由 PIC(Programmable Interrupt Controller)统一控制。PIC 允许一个硬件线程中断其他的硬件线程,这种方式被称为核间中断(Inter-Processor Interrupts,IPI)。PIC 拥有一个宽度为 32 位的核间中断寄存器IPIBase,该寄存器包含目的线程的编号、中断向量及中断类型(是否中断多个硬件线程
2013-12-21 11:10:25 14589
翻译 编译器如何工作?
解释编译器如何工作不是一件容易的事,最好的方法是用一个实例进行说明: 编译器是这样一个电脑程序,它把用高级编程语言编写的源代码,转化成低级语言。最基本地,一个编译器由以下几个阶段组成:词法分析、语法分析、语义分析、IR(中间代码,intermediateRepresentation)产生、IR优化、代码产生、最终优化。
2013-12-09 22:48:30 1929
转载 编译器基本过程
编译器最基本的功能就是把高级语言(例如C/Fortran)编写的代码转化为机器指令(就是01串),从这个角度来说它本质上是个转换过程。经典的编译过程主要包括:1、 词法分析(Lexical Analysis)词法分析就是从输入代码中识别出各种记号(token),例如对于C语言我们就需要知道if,else等是语言的关键字,myvar是个标识,而123myvar不能被识别为一个标识
2013-12-09 22:39:03 1784
转载 linux下补丁(patch)的制作与应用
命令简介用到的两个命令是diff和patch。diffdiff可以比较两个东西,并可同时记录下二者的区别。制作补丁时的一般用法和常见选项为:diff 【选项】 源文件(夹) 目的文件(夹)-r递归。设置后diff会将两个不同版本源代码目录中的所有对应文件全部都进行一次比较,包括子目录文件。-N选项确保补丁文件将正确地处理已经创建或删除文件的情况。-u输出每个修
2013-11-28 09:17:20 1890
转载 ARM9 2410移植之ARM中断原理, 中断嵌套的误区,中断号的怎么来的
几天前一个学生问我ARM中断嵌套的问题,我才发现原在我心中理所当然的事对学生来说理解实属不易。 ARM有七种模式,我们这里只讨论SVC、IRQ和FIQ模式。 我们可以假设ARM核心有两根中断引脚(实际上是看不见的),一根叫 irq pin, 一根叫fiq pin. 在ARM的cpsr中,有一个I位和一个F位,分别用来禁止IRQ和FIQ的。 先不说中断
2013-11-09 14:29:13 2172
转载 结构体中,内存对齐解释
看过很多关于结构体对齐的资料,这个是解释最清楚的,转过来备份。很多人都觉得内存对齐这个问题很难,很不好算,总算错,其实我想说只要你画一画就没那么难了。好了,进入正题。本节知识点:1.结构体为什么要内存对齐(也叫字节对齐):其实我们都知道,结构体只是一些数据的集合,它本身什么都没有。我们所谓的结构体地址,其实就是结构体第一个元素的地址。这样,如果结构体各个元素之间不存在内
2013-11-06 14:16:27 1345
转载 大牛订阅的十佳博客与相关介绍
前段时间,我在微博上分享了自己订阅的博客Feeds,一共有200个左右,内容覆盖多个领域,包括有:Database(MySQL、Oracle、PostgreSQL),Programming,Distributed Systems,Systems 等。俗话说,过犹不及,太多的选择,往往意味着没有选择。在过去的几年,对于自己订阅的所有博客,我基本上做到每天都看,因此对每个博客的内容有了一定的了解。本文
2013-11-06 10:25:19 2602
转载 数学常数e的含义
1.e是一个重要的常数,但是我一直不知道,它的真正含义是什么。它不像π。大家都知道,π代表了圆的周长与直径之比3.14159,可是如果我问你,e代表了什么。你能回答吗?维基百科说:“e是自然对数的底数。”但是,你去看“自然对数”,得到的解释却是:“自然对数是以e为底的对数函数,e是一个无理数,约等于2.718281828。”这
2013-11-06 10:22:46 1850
翻译 怎样开发不可维护的软件
作者在文中提到了工作中碰到的各种各样不具有可维护性的项目工程,并用血的经历告诫大家,如果遵循文中所讲这几条,您的软件将走上不可维护的不归路。其中包括了“不使用版本控制”、“大量定制自己的开发环境”、“不设置测试平台”、“将依赖关系添加到特定的库和资源中……但是不要维护这些文档”等。
2013-10-22 21:26:54 1828
原创 【纠错】关于变量定义和声明的区别
下面哪个是声明,哪个是定义? (A) int i; (B) extern int i;《C语言深度剖析》给的答案是:A是定义,B是声明。我的答案是:A是声明,B也是声明。
2013-10-07 22:26:48 2049 4
翻译 教孩子们编程 ——附相关有用的资料
我一直在不懈收集最好的教孩子、青少年编程的资源,包括书籍,编程环境,应用,课件,游戏等等。这些资源对于那些想让他们的孩子喜欢上电脑,并发现编程的魔力的老师、父母是很有用的。我才不去理会那些关于是否应该让孩子们学习编程、应该什么时候开始等等哲学类讨论,我只知道在3年级时我就爱上了电脑(一台性感的ZXSpectrum。译者注:ZX Spectrum是英国辛克莱研究公司1982年发布的8bit个人电脑,见上面的附图),而且我也想与其他人分享编程的乐趣。
2013-10-05 21:28:11 2566
转载 妈咪,我找到了!15实用的Linux find命令示例
除了在一个目录结构下查找文件这种基本的操作,你还可以用find命令实现一些实用的操作,使你的命令行之旅更加简易。本文将介绍15种无论是于新手还是老鸟都非常有用的Linux find命令。首先,在你的home目录下面创建下面的空文件,来测试下面的find命令示例。 # vim create_sample_files.shtouch MybashProgram.shtouch
2013-09-27 09:14:01 2096
关于内核动态补丁技术(kpatch)
2018-11-19
ARMv8 Linux内核异常处理分析
2014-05-30
ARM上电启动及Uboot代码分析
2014-05-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人