Sfeng's Blog

Virtually Indexed Physically Tagged

Background   Cache的组织形式有多种,如VIVT,VIPT,PIPT等,每个都有各自的优缺点。本文主要研究下现代CPU中比较常用的VIPT。   VIPT的优点如下: 减少地址转换开销‌:VIPT缓存使用虚拟地址作为索引,物理地址作为标签。这意味着在进行缓存查找时,不需要进行虚拟地址到物理地址的转换,从而减少了地址转换的开销,提高了缓存查找的效率‌ 减少cach...

Static Stack Usage Analysis

Background   在嵌入式系统中,资源的有限性是不争的事实,特别是可用的内存(SRAM, DRAM,TCM etc.)大多数情况下都不是那么富裕,这就需要对内存的使用精打细算了。本文介绍一种方法来帮助开发者分析stack的大小。这是因为stack其实对开发者来说是个隐含条件,并没有标准简单的方法拿到合适的值。大多数会在stack溢出的时候才会通过加大stack的方法解决问题,而de...

Definition of MACRO

Issues When Using MACRO   宏定义的使用在C里面很普遍,它通常用于给代码中的常量,简单的函数或者某些表达式一个简短或容易理解阅读的名字,以减少重复代码,提高开发效率。这里需要注意的是,宏定义在编译过程中是一个文本替换和展开的过程,语法错误会被编译器捕捉,但类型检查,逻辑错误却无法保证,所以宏定义也要小心。   比如我们来看个最简单的例子: #define SQUAR...

Unaligned Fault - Defect Raised by Compiler Optimization

Background   上个周末有个客户量产项目出了些问题,被拉进群里做support,也真是够牛马的,周六干到深夜两点,周日熬到10点,周一本来想轮休下,又有新问题,又搞到10点,这还是外企风格不!!!不过量产顺利推进也是开心的,顺带总结经验教训。 Unaligned Access Fault   要理解这个错误是什么,首先要知道在计算机系统里什么叫unaligned access,以...

© sfeng. Some rights reserved.

Using the Chirpy theme for Jekyll.