摘要: 前言: 上节我们了解了,如何对字符串和数字进行编码把它们变为计算机能够识别和保存的0和1。这节我们来探究一下计算机在硬件层面如何表示二进制。 一、电报是如何传输信息的 电报传输有两种信号,一种是短促的点信号另一种是长些的划信号,使用不同的点和划得组合就可以对应不同的单个数字,再使用数字组合表示不同的 阅读全文
posted @ 2020-05-05 00:22 rxmind 阅读(573) 评论(0) 推荐(1)
摘要: 前言: 现代计算机都是用0和1组成的二进制来表示所有信息。前面所讲到的机器码也是使用二进制表示;其他诸如字符串、整数、浮点数等也都是使用二进制保存。具体细节需要我们了解一下。 一、二进制和逢二进一 二进制,逢二进一,常用的十进制通过短除法即可转换为二进制数,这样的表示方式称为原码表示法。为了区分正负 阅读全文
posted @ 2020-05-04 23:51 rxmind 阅读(947) 评论(0) 推荐(0)
摘要: 前言: 前面讲过,通过链接将不同文件内的代码合并到一起成为一个可执行文件,才能加载运行,在不同程序链接的过程中,有些代码是被多次复用的,如果每个程序装载的时候都去重复装载这部分代码,就会使这些相同的代码重复占用内存。 (一)链接分动静,共享省内存 要解决这个问题,我们希望不同程序引用相同代码时,都只 阅读全文
posted @ 2020-05-04 23:13 rxmind 阅读(331) 评论(0) 推荐(0)
摘要: (一)程序装载需要解决的问题 程序运行实际上是通过装载器将经过动态链接生成的可执行文件装载如内存,然后交给CPU去执行的,这种机制下我们需要解决两个问题: 可执行文件加载后占用的内存应该是连续的; 我们需要同时加载多个应用程序,且不能让程序自己规定在内存中加载的位置; 如遇满足这两个条件,就需要在内 阅读全文
posted @ 2020-05-04 09:17 rxmind 阅读(194) 评论(0) 推荐(0)
摘要: 前言: 我们都知道我们所写的程序是被编译为一条条的CPU指令去执行的,但是在linux系统下能够运行的程序在windows环境下却运行不起来,但是我们使用的CPU明明是一样的,这又是为什么呢? 一、程序的执行:编译、链接和装载 程序示例1: // add_lib.c int add(int a, i 阅读全文
posted @ 2020-04-29 11:57 rxmind 阅读(269) 评论(0) 推荐(0)
摘要: 一、一次函数调用分析 c代码: // function_example.c #include <stdio.h> int static add(int a, int b) { return a+b; } int main() { int x = 5; int y = 10; int u = add( 阅读全文
posted @ 2020-04-28 13:30 rxmind 阅读(570) 评论(0) 推荐(0)
摘要: 一、CPU如何执行指令 CPU上有数以亿计的晶体管组层的复杂电路,我们先不用管具体电路如何实现;逻辑上我们可以认为CPU由许多寄存器组成,而这些寄存器又由许多锁存器和触发器组成,N个锁存器或触发器就可以构成一个N位寄存器,例如64位CPU是指其寄存器是64位的。 CPU中有以下三种典型的寄存器,这里 阅读全文
posted @ 2020-04-26 16:42 rxmind 阅读(312) 评论(0) 推荐(0)
摘要: 前言: 很久很久以前,由于那时的计算机不具备识别高级语言的能力,因此人们通过往纸带上打孔的方式编程,然后再将纸带交给计算机去读取执行,此时纸带固定位置上是否打孔就表示二进制的1与0. 一、软硬件接口中的CPU 我们都知道在硬件层面CPU是超大规模集成电路,用意实现加法、乘法这样的算数运算和其他很多类 阅读全文
posted @ 2020-04-26 16:35 rxmind 阅读(709) 评论(0) 推荐(0)
摘要: 让我们从之前的这个公式说起: 程序的 CPU 执行时间 = 指令数×CPI×Clock Cycle Time 由于减少指令数和降低CPI都不容易做到,因此长期以来计算机科学家和工程师采用的主要优化思路都是提高主频。 一、功耗限制了CPU的极限速度 CPU被称为超大规模集成电路,这些集成电路由无数的晶 阅读全文
posted @ 2020-04-24 17:23 rxmind 阅读(781) 评论(0) 推荐(0)
摘要: 一、什么是性能 CPU的性能就是就是时间的倒数,简单来说:耗时越少,性能越好,主要包含下面两个指标: 响应时间:程序执行耗时 吞吐率:单位时间处理数据或执行程序的量 缩短响应时间,一定时间内可以执行更多的任务,也就提高了吞吐率;除此之外现代CPU一般都是多核,多个核心同时工作就是通过“并行”来提高吞 阅读全文
posted @ 2020-04-24 16:13 rxmind 阅读(551) 评论(0) 推荐(0)