04 2020 档案

摘要:前言: 我们都知道我们所写的程序是被编译为一条条的CPU指令去执行的,但是在linux系统下能够运行的程序在windows环境下却运行不起来,但是我们使用的CPU明明是一样的,这又是为什么呢? 一、程序的执行:编译、链接和装载 程序示例1: // add_lib.c int add(int a, i 阅读全文
posted @ 2020-04-29 11:57 rxmind 阅读(270) 评论(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 阅读(314) 评论(0) 推荐(0)
摘要:前言: 很久很久以前,由于那时的计算机不具备识别高级语言的能力,因此人们通过往纸带上打孔的方式编程,然后再将纸带交给计算机去读取执行,此时纸带固定位置上是否打孔就表示二进制的1与0. 一、软硬件接口中的CPU 我们都知道在硬件层面CPU是超大规模集成电路,用意实现加法、乘法这样的算数运算和其他很多类 阅读全文
posted @ 2020-04-26 16:35 rxmind 阅读(712) 评论(0) 推荐(0)
摘要:让我们从之前的这个公式说起: 程序的 CPU 执行时间 = 指令数×CPI×Clock Cycle Time 由于减少指令数和降低CPI都不容易做到,因此长期以来计算机科学家和工程师采用的主要优化思路都是提高主频。 一、功耗限制了CPU的极限速度 CPU被称为超大规模集成电路,这些集成电路由无数的晶 阅读全文
posted @ 2020-04-24 17:23 rxmind 阅读(782) 评论(0) 推荐(0)
摘要:一、什么是性能 CPU的性能就是就是时间的倒数,简单来说:耗时越少,性能越好,主要包含下面两个指标: 响应时间:程序执行耗时 吞吐率:单位时间处理数据或执行程序的量 缩短响应时间,一定时间内可以执行更多的任务,也就提高了吞吐率;除此之外现代CPU一般都是多核,多个核心同时工作就是通过“并行”来提高吞 阅读全文
posted @ 2020-04-24 16:13 rxmind 阅读(552) 评论(0) 推荐(0)
摘要:一、总纲 二、一些技巧 1)主动向自己提问,通过找寻这些问题的过程来学习提高: 我写的代码是怎么变成运行的程序并得出结果的 在这个过程中,计算机层面都经过了哪些步骤,哪些步骤可以优化 2)写示例程序来验证理论 3)通过对照计算机发展历史来加深理解,科学技术不是一蹴而就的,而是不断发展演进的,这就像我 阅读全文
posted @ 2020-04-24 15:10 rxmind 阅读(251) 评论(0) 推荐(0)
摘要:一、基本组成硬件:CPU、内存、主板 CPU:中央处理器,执行计算任务的核心,其本质是一个超精细的印刷电路板。 内存:所有程序的运行都需要加载到内存中才可以被CPU读取执行,程序执行的结果也需要写回到内存。 主板:CPU和内存不能直接连接,而是都插在主板上,通过主板连接;主板上有芯片组和总线解决CP 阅读全文
posted @ 2020-04-24 14:06 rxmind 阅读(680) 评论(0) 推荐(0)
摘要:一、“练拳不练功,到老一场空” 框架和语言的学习,大多只能带来短期回报,而底层知识的学习则学过时间越久回报越大。尽早的学习计算机底层的一些知识能让你在技术学习应用的道路上越走越快,计算机组成就是这样一门课,类似的还有“计算机网络”、“编译原理”,“数据结构与算法”等。 二、计算机组成原理能干嘛 肉眼 阅读全文
posted @ 2020-04-24 11:58 rxmind 阅读(958) 评论(0) 推荐(0)