0%

存储器层次结构全景:数据存储的大金字塔长什么样?

存储器的层次结构

在有计算机之前,我们通常把信息和数据存储在书、文件这样的物理介质里面

阅读全文 »

ELF和静态链接:为什么程序无法同时在Linux和Windows下运行?

编译、链接和装载: 拆解程序执行

之前,我们通过 gcc 生成的文件和 objdump 获取到的汇编指令都有些小小的问题,以add 函数示例,

阅读全文 »

程序装载:“640K内存”真的不够用么?

程序装载面临的挑战

通过链接器,把多个文件合并为一个最终可执行文件。在执行这些可执行文件的时候,就是通过一个装载器,解析ELF 或 PE 格式的可执行文件

阅读全文 »

指令跳转:原来if…else就是goto

用到 if…else 这样的条件判断语句、while 和 for 这样的循环语句,还有函数

阅读全文 »

函数调用:为什么会发生stack overflow?

Stack Overflow 的名字来自于一个常见的报错,就是栈溢出(stack overflow)。

从程序的函数调用开始

阅读全文 »

穿越功耗墙,我们该从哪些方面提升“性能”?

` 程序的 CPU 执行时间 = 指令数 × CPI × Clock Cycle Time `

功耗:CPU 的“人体极限”

案例:奔腾 4 的 CPU 主频从来没有达到过 10GHz,最终它的主频上限定格在 3.8GHz。这还不是最糟的,更糟糕的事情是,大家发现,奔腾 4 的主频虽然高,但是它的实际性能却配不上同样的主频。想要用在笔记本上的奔腾 4 2.4GHz 处理器,其性能只和基于奔腾 3 架构的奔腾 M 1.6GHz 处理器差不多。

阅读全文 »

初窥计算机指令

在软硬件接口中,CPU 帮我们做了什么事?

透过CPU的主频,谈谈性能究竟是什么

计算机的性能衡量

于计算机的性能,我们需要有个标准来衡量。这个标准中主要有两个指标。

一、响应时间(Response time)或者叫执行时间(Execution time)。想要提升响应时间这个性能指标,可以理解为让计算机“跑得更快”。

二、吞吐率(Throughout)或者带宽(Bandwidth),想要理解这个指标,可以理解为让计算机“搬得更多”。

阅读全文 »