- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 DynamoRIO在Android上进行测试
DynamoRIODynamoRIO是一个动态测试工具平台,同时也被称之为二进制插桩平台,它支持程序在执行时任何部分代码的转换,DynamoRIO导出用于构建动态工具的接口,以实现各种用途:程序分析和理解,检测,优化,转变等。DynamoRIO不限于插入标注(callouts)和弹簧床机制(trampolines,一个“弹簧床”就是一个函数存根,它能在被调用的时候,触发编译器执行,将这个函数编译成机器码,“弹簧床”的指针就会被替换为真实函数的指针。)通过IA-32/AMD64/ARM/AArch64指令操
2020-06-08 11:16:57 992 2
原创 内存缓存(in-memory cache)
内存缓存(in-memory cache)有些程序,需要保存一些数据在以备下次使用,然而在下次使用时再次获取,开销会比较大,如:数据源是数据库,就需要去数据库搜索,然后获取数据返回;数据源是储存在硬盘的文件,需要从硬盘一个个byte地将数据读取进内存;数据源是从外部API获取,则需要在调用API后等待回应才能获得数据,再次获取数据的开销比较大,不想每次都重新获取一次数据,可以将这些数据暂时存放在内存的缓存(in-memory cache)里,下次想用的时候就不用从外部再次搜索,直接拿来用就好了。性能很重
2020-05-27 14:45:16 812
转载 simulation与emulation的区别
simulation与emulation的区别解释一:模拟(Simulation)即选取一个物理的或抽象的系统的某些行为特征,用另一系统来表示它们的过程。模拟技术的高级阶段称为仿真模拟(Emulation)、系统仿真,即用一数据处理系统来全部或部分地模拟某一数据处理系统,以致于模仿的系统能想被模仿的系统一样接受同样的数据、执行同样的程序、获得同样的结果。解释二:模拟(Emulation)是试图模仿一个设备的内部设计;仿真(Simulation)是试图模仿一个设备的功能。解释三:Emulati
2020-05-26 14:43:20 3431
原创 虚拟内存现存问题和改进讨论
虚拟内存现存问题和改进讨论页错误在一个进程访问一个虚拟页时,这个虚拟页对应的页表项不在页表中,或者这个页表项在某种方式上禁止访问,比如这页不存在或者访问模式跟这页的访问权限冲突,就会触发页错误。页错误由CPU触发,page_fault_handler处理。因为大多数操作系统是惰性分配原则,页表按需填充映射,第一次访问没分配页内存会造成页错误,与VMA区域相对应的一些页表节点将保持未初始化状态,直到第一次访问发生。VMA在VMA树上的大多数VMAs被进程段很好的定义好,想堆、栈、内存映射文件,动态库,
2020-05-19 18:35:18 255
原创 虚拟内存改进和高性能处理器预取研究
虚拟内存重要性现在大量的内存计算,像数据库,key-value 储存,数据分析框架,数据覆盖区(data footprint),不规则访问方式,页访问是基于树结构一级一级访问,导致高时延开销(串行访问内存结构)现代处理器加速页表访问,有:1、hardware walker;2、multi-level TLBs; 3、translation caches。但最近的研究发现最多有50%的性能损失在虚实地址翻译,现在有两类策略改善地址翻译开销:逐步提高现存的虚拟内存子系统,颠覆性的改变。第一类中有在tlb里
2020-05-18 12:51:35 565 1
原创 Intel x86 cache 层次
Intel x86 cache 层次overviewoverviewL1Dcache、L1Icache、L2cache,LLC(last level cache)多个处理器核集成到同一个CPU芯片上,增加访存带宽.
2020-05-15 09:39:31 838
原创 gem5 模拟器安装
gem5 概述gem5模拟器是一个用于计算机系统架构研究的模块化平台,包括系统级架构和处理器微结构。gem5 安装安装环境ubuntu 18.04gcc 7.4.0安装软件sudo apt-get install mercurial scons swig gcc m4 python python-dev libgoogle-perftools-dev libprotobuf-dev...
2020-04-21 20:46:36 536
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人