
s4: 计算机组成
涛歌依旧
毕业后就职于华为和腾讯
展开
-
昨晚,又做了一次电灯泡
大家好,我是涛哥。昨晚出去玩了一下,街边树上的灯好漂亮,营造了一丝浪漫的氛围,五颜六色,变幻多姿。这种电灯泡,就是流水灯。然而,对于电子专业出身的我来说,看到的不仅是美景,还想到了这些电灯泡是怎么做的,毕竟以前做过这种电灯泡。昨晚回家后,打算再做一次这种电灯泡。于是找出尘封已久的单片机,20分钟编写并调完程序,烧录后,跑起来,看动图:一. 单片机那些往事当初,为了钱,从嵌入式转到了互联网,面试准备得还可以,没啥问题。不过转行的头几个月,还是挺痛苦呢,很多东西要学.原创 2022-03-13 22:56:57 · 1087 阅读 · 1 评论 -
编码的本质及计算机的工作原理
大家好,我是涛哥。作为非计算机专业的学生,我偶尔思考:编码的本质是什么?计算机的工作原理是什么?越想越迷糊,感觉计算机就像迷雾一样,平常只会用,但不清楚原理。后来,从基本电路开始,搭建了复杂电路,并通过调节开关,控制电路。然后,利用存储中的高低电平控制电路,体会了机器语言编程的感觉,算是基本入门。机器语言很繁琐,后来体会了汇编语言的好处,也控制了电路,最后又体会了高级语言的好处,也能控制电路。最近,又有一些新思考,所以简要地讲述一下。一. 掌握原理的重要性小时候,很喜欢骑自行车,试了原创 2022-01-09 23:32:02 · 1386 阅读 · 2 评论 -
自制了一台计算机,可编程哦
大家好,我是涛哥。接触计算机多年,经常会有一种云里雾里的感觉。今天,一起动手来自制一台计算机,加深体会和理解。必须说明的是,计算机有复杂的,也有简单的,但结构和原理基本相通,本文制作的是最简单的计算机。我也会对自制的简单计算机进行编程,体会编程的感觉,知道编程是怎么回事,理解计算机工作的原理。一. 自制计算机的外形在很长一段时间内,总是搞不清楚一些基本的概念和原理:比如什么是硬件? 硬件内部是怎样运行的?什么是软件?软件在哪里?软件究竟是怎样在硬件上跑起来的?硬件究竟是怎样执行软件的原创 2022-01-09 23:33:39 · 5660 阅读 · 5 评论 -
多进程、多线程、多协程对单核、多核CPU的消耗
搞后台开发,不仅需要关注服务的功能,还需要关注服务的性能。在本文中,我们简要地来看看多进程、多线程、多协程对单核、多核CPU的消耗。在多核情况下,采用多进程、多线程、多协程,能更好地利用CPU, 它们不仅能并发执行,而且能并行执行。原创 2020-01-31 20:14:56 · 5252 阅读 · 2 评论 -
深入理解linux free命令及内存含义
对于软件开发(尤其是后台开发)工程师而言,不仅需要关注服务器的CPU,还需要经常关注服务器的内存。 在之前的文章中,我们探讨了CPU的参数,并且弄清了CPU核相关的一些概念。在本文中,我们来聊内存。原创 2020-01-31 20:09:51 · 6067 阅读 · 4 评论 -
深入理解计算机CPU的参数: CPU主频、多个CPU、多核CPU、逻辑核(超线程)、 大小端
对软件开发(尤其是后台服务开发)工程师来说,这几个概念几乎是必须要缕清的:CPU主频、多个CPU、多核CPU、逻辑核(超线程)、大小端。本文我们会逐一来聊聊。 在之前的文章中,我们见过古老的4004CPU,也分析过古老的8086CPU,并对它进行了汇编语言编程。它们都是单核的(每个CPU只有1个运算器&控制器)。 那么,现代CPU长啥样子呢?原创 2020-01-08 21:46:51 · 14274 阅读 · 4 评论 -
单片机流水灯的proteus仿真及C语言简介
在前面的文章中,我们已经对CPU和汇编语言有了基本的认识。以8086CPU为例,它只是一个微处理器,并不能存储程序(没ROM没RAM)。那么,有没有一款芯片能把CPU和ROM/RAM全部集成在一起呢?当然有,这些东西集成在一起后,就是一台完整意义的计算机了,单片机就是这样的。关于单片机的历史,我们就不过多讲述了,单片机本质上就是计算机。原创 2020-01-08 21:40:04 · 7173 阅读 · 11 评论 -
计算机CPU工作原理及汇编语言简介
我们可以继续用proteus来画更复杂的电路图,并自定义CPU指令集,实现更强大的功能。 然而,无论我们怎么设计电路来制作CPU,它永远只是冰山一角的一个小小冰点, 离Intel或AMD的商用CPU有太远太远的距离。我们不可能也没必要画出那么复杂的CPU(几十亿个晶体管器件)。 因此,我们需要从底层复杂的电路图设计中解脱出来,站在更高的层次和更高的抽象度上来看待CPU.原创 2019-12-25 21:46:22 · 5147 阅读 · 7 评论 -
计算机存储器简介
计算机完成数据处理后,需要把数据保存到存储器中。计算机又需要从存储器中拿出数据,进行处理。存储器的重要性,不言而喻。 而且,“冯诺依曼结构”的基本原理是程序存储。存储器的必要性,同样显而易见。原创 2019-12-13 20:50:22 · 4034 阅读 · 2 评论 -
“冯诺依曼结构”计算机的proteus仿真及编程的初体验
沈从文笔下的边城,风景优美,故事凄婉。世间若有双全法, 不负亲人不负卿。沈从文很早就写了《边城》,所以我觉得他是中国第一个“程序员”。 编程的意思是:构思故事,然后用语言编写出故事的发展过程。原创 2019-12-06 20:18:01 · 4054 阅读 · 6 评论 -
计算机加法的电路原理及proteus仿真
我们知道,计算机的功能,都是通过计算来完成的,而这个计算是怎样完成的呢?答案是:电路。 在前面的文章中,我们深入探讨了编码的本质以及计算机的工作原理,重点讲了二进制的表示和加法,并且留了一个“神秘电路”待实现。在本文中,我们主要来聊聊计算机加法的电路原理和proteus仿真,顺便会搞定之前文章提到的“神秘电路”原创 2019-12-03 12:40:47 · 8719 阅读 · 7 评论 -
编码的本质及计算机的工作原理
如今,我们几乎所有的人,每天都在使用计算机(手机也是计算机)。对于大多数人而言, 没有必要深入了解计算机的工作原理。而对于从事计算机相关行业的人,或者对计算机有兴趣、有好奇心的人,是可以去了解一下的。 另外,了解计算机的工作原理,也能为装叉吹牛增加一些信心和谈资。说不定帮人修电脑或者安装系统时,侃侃而谈,还能成就一段美好姻缘(身边有这样的例子)。原创 2019-11-29 20:41:48 · 4748 阅读 · 4 评论 -
古今计算机发展简史
小时候,见过电子计算器,能很快完成计算,当时心想,计算器真是厉害,能提前存下所有数字的加减乘除结果。现在想来,很傻很天真。后来,吵着闹着要买小霸王学习机,最后如愿变成游戏机,经典游戏“超级玛丽”和“坦克大战”至今历历在目。原创 2019-11-22 22:08:44 · 7818 阅读 · 9 评论 -
硬盘的读写原理------写得不错
转载地址:http://blog.youkuaiyun.com/hguisu/article/details/7408047 硬盘的种类主要是SCSI 、IDE 、以及现在流行的SATA等;任何一种硬盘的生产都要一定的标准;随着相应的标准的升级,硬盘生产技术也在升级;比如 SCSI标准已经经历了SCSI-1 、SCSI-2、SCSI-3;其中目前咱们经常在服务器网站看转载 2017-10-01 10:14:35 · 13717 阅读 · 0 评论 -
Raspbian:世界上“最小的”操作系统是怎样炼成的?
转载地址:http://www.pingwest.com/building-the-raspbian-os/ 当你花35美元买到一部树莓派(Raspberry Pi)计算机的时候,机器里面是没有预装操作系统(OS)的。这个时候你要自己下载一个OS到SD卡,插到树莓派上重启完成OS的安装。这一切看起来很简便,但你考虑过这个跟树莓派兼容的OS是哪里来的吗?转载 2017-11-25 19:16:00 · 9788 阅读 · 1 评论 -
我的STC89C52单片机
我的工作和单片机没有任何关系, 只是自己感兴趣, 偶尔玩玩而已, 无聊的时候, 自娱自乐。 来拍个照: 实物抽象化的图为: 这个STC89C52名字是什么意思呢? STC89C52简介: 片内CPU的内核是8051 片内含8K字节的的可反复擦原创 2017-11-26 00:08:42 · 20870 阅读 · 0 评论 -
树莓派装上samba, 方便文件传输
树莓派装上samba, 方便传文件。 1. 安装samba sudo apt-get install samba 2. 修改samba配置, sudo vim /etc/samba/smb.conf 在smb.conf文件的最后加上如下内容, 自己手动敲一下吧: 3. 在/home/pi目录下创建一个目录原创 2017-11-26 12:50:22 · 12780 阅读 · 1 评论 -
图灵停机问题(The Halting Problem)------巧妙的证明
转自: https://blog.youkuaiyun.com/niushuai666/article/details/7260957 不存在这样一个程序(算法),它能够计算任何程序(算法)在给定输入上是否会结束(停机)。那么,如何来证明这个停机问题呢?反证!假设我们某一天真做出了这么一个极度聪明的万能算法(就叫God_algo吧),你只要给它一段程序(二进制描述),再给它这段程序的输入,...转载 2018-05-06 20:33:13 · 8626 阅读 · 6 评论 -
汇编语言和机器语言是一一对应的吗? 汇编语言是cpu生产厂商规定的还是编译器厂商规定的?
汇编语言和机器语言是一一对应的吗? 一些人认为,是的。 一些人认为, 不是的。 其实, 两种认为都对。 为什么说两种看法都对? 我们首先来看看这个问题:汇编语言是cpu生产厂商规定的还是编译器厂商规定的? cpu是硬件, 无非就是一些电路元件和开关的组合。 编程的本质, 就是在不同时刻拨弄那些开关,形成不同的逻辑值。 显然,我们不能用手去拨弄那些开关...原创 2018-05-04 20:36:51 · 20556 阅读 · 8 评论 -
CPU的内部架构和工作原理(好文)
转自:http://blog.chinaunix.net/uid-23069658-id-3563960.html 一直以来,总以为CPU内部真是如当年学习《计算机组成原理》时书上所介绍的那样,是各种逻辑门器件的组合。当看到纳米技术时就想,真的可以把那些器件做的那么小么?直到看了Intel CPU制作流程及AMD芯片的制作流程的介绍不禁感慨,原来科技...转载 2018-04-26 23:09:00 · 62091 阅读 · 45 评论 -
memory hierarchy------晒图
无意中发现了这张图, 感觉不错, 晒一下:原创 2018-05-19 08:54:52 · 5161 阅读 · 4 评论 -
用linux perf命令来分析程序的cpu cache miss现象
先来看一段简单的程序:#include <stdio.h>#include <unistd.h>int main(int argc, char **argv){ int a[1000][1000]; if(1 == argc) { for(int i = 0; i < 1000; ++i) { for(int j = 0; j ...原创 2018-07-05 22:24:05 · 20219 阅读 · 3 评论 -
多个CPU、多核CPU以及超线程(Hyper-Threading)
转载地址:https://www.cnblogs.com/jokerjason/p/8926905.html 引言 在这篇文章中, 我会主要介绍CPU相关的一些重要概念和技术。如果你想更好地了解操作系统,那就从本文开始吧。 中央处理器(Central processing unit) 在我们了解其它概念之前,我们应该首先了解一下什么是CPU,...转载 2018-08-12 17:53:10 · 16217 阅读 · 1 评论 -
计算机的发展历史和计算机的层级
来看看计算机的发展历史: 手动计算机(远古时代---17世纪初) 手指计数: 石子计数: 结绳计数: 契刻计数: 算筹计算: 算盘计算: 纳皮尔筹: 滑尺计算:机械计算机(17世纪初---19世纪末) ...原创 2019-04-14 21:38:09 · 3125 阅读 · 2 评论 -
cpu的指令集究竟存放在哪里?
cpu的指令集究竟存放在哪里? 看了网上的一些解释,多数是lobster drag egg(虾扯蛋) 指令集,就是指令的集合,以某电子产品为例, 该产品的指令集存放在说明书中: cpu的指令集也类似, cpu的指令集就是cpu各个指令的集合, 存放在cpu的说明书中。 而不是存放在cpu中,也不是存放在寄存器中,更不是存放在内存中。 ...原创 2019-05-02 13:42:54 · 8095 阅读 · 16 评论 -
用proteus来做一个简单的cpu并用机器语言/汇编语言编程
五一假期,陪家人在附近转了转, 人多, 蛮吵杂的。 看了下赖晓铮老师的《基于Proteus的计算机系统实验教程---逻辑、组成原理、体系结构、微机接口》,用proteus玩了一下简单的cpu并用机器语言/汇编语言编程,体会一下cpu硬件级别的运行,这些是机器域的事情,纯属爱好, 对自己工作并没有直接的帮助,毕竟日常工作主要是在问题域的。 来大致看看: ...原创 2019-05-03 12:10:10 · 8757 阅读 · 21 评论 -
计算机发展史
转载地址:https://www.jianshu.com/p/6fb655c286bc 一、史前时代【1623——1895】1623年:德国科学家契克卡德(W.Schickard)制造了人类有史以来第一台机械计算机,这台机器能够进行六位数的加减乘除运算。1642年:法国科学家帕斯卡(B.Pascal)发明了著名的帕斯卡机械计算机,首次确立了计算机器的概念。...转载 2019-05-01 10:01:15 · 23501 阅读 · 9 评论 -
带你了解树莓派
转载地址:http://www.jianshu.com/p/9e5544879cfb在本文中,你学到了树莓派是什么,它为什么存在,如何购买树莓派以及你需要哪些外设来让树莓派启动并运行。你知道了树莓派可用的操作系统并且知道如何获取Raspbian的副本。你还学会了如何让你的树莓派启动并运行,这样就可以学习Python了。本文总结了一些排除树莓派启动故障的技巧。1.1 树莓派是什么转载 2017-11-25 19:36:08 · 12545 阅读 · 0 评论 -
浅谈交叉编译
最近, 在树莓派(arm + linux)上编译出了一个可执行文件, 运行OK, 然后把这个二进制文件放到intel + linux的机器上运行, 发现格式错误。 我第一反应是查看文件的32/64位兼容性, 发现, 不是这个原因。 然后, 才缓过神来, arm指令集和intel指令集不一致, 肯定不能做到二进制兼容啊。 怎么解决呢? 交叉编译, 要么在arm原创 2017-12-12 21:49:19 · 7116 阅读 · 2 评论 -
用C语言给8086编程来做一个计算器(proteus仿真)
代码细节不用罗列, 其实很简单。 直接看部分电路图, 感受一下: 25 * 5 = 125 计算器真是简单,计算机就是这么做成的。 除了8086外, 常见的单片机, 都可以做出类似的计算器。原创 2017-10-29 11:24:29 · 13791 阅读 · 7 评论 -
用C语言(keil c)给8051单片机编程来做一个LCD计算器(proteus仿真)
源代码很简单, 直接给部分电路图效果(125*25=3125):原创 2017-10-29 13:10:15 · 12079 阅读 · 5 评论 -
《计算机是怎样跑起来的》 矢泽久雄------附Z80微型计算机电路图
想了解计算机或者学习计算机的同学, 可以看看, 写得很浅显易懂。 可能是篇幅所限, 有的地方没有触及到本质和根本原因。 总体来说, 还算不错。原创 2017-10-29 10:19:07 · 13022 阅读 · 3 评论 -
《程序是怎样跑起来的》 矢泽久雄
书写得不错, 浅显易懂, 想学习程序设计的同学, 可以了解下, 以便对计算机程序有个整体的了解。 这类书对于入门级和想了解程序整体结构的同学, 是有些好处的, 比那些大头书更好懂。 闲时读读, 一份惬意。原创 2017-10-29 10:25:18 · 14922 阅读 · 1 评论 -
关于仙童八叛逆
转自:http://blog.sina.com.cn/s/blog_457012450100vnbl.html 许多电脑史学家都认为,要想了解美国硅谷的发展史,就必须了解早期的仙童半导体公司。这家公司,曾经是世界上最大、最富创新精神和最令人振奋的半导体生产企业,为硅谷的成长奠定了坚实的基础。更重要的是,这家公司还为硅谷孕育了成千上万的技术人才和管理人才,它不愧是电子、电脑转载 2017-10-27 22:54:34 · 14064 阅读 · 1 评论 -
构造一个加法机------制作一个cpu并对cpu进行编程
转载地址: http://www.cnblogs.com/zhongxinWang/p/3698824.html 构造一个加法机二进制加法 任何一个二进制数都是由一个以上的比特组成,是一个比特串。为了突出组成它的每个比特,一个二进制数可以表示成(如果它包含了6比特的话): 在这里,a0...a5都是单个的比特,是这个二进制数的每一位。所以转载 2017-10-27 22:30:11 · 10567 阅读 · 0 评论 -
为什么叫随机存取存储器(Random Access Memory)?
首先, RAM翻译为随机存取存储器, 是个垃圾翻译, 能说点人话吗? 依据我的经验, 如果不明白一个东西是什么, 那就去找英文资料来看, 英文适合描述准确的东西, 而中文, 适合描述不清不楚的东西, 比如暧昧。 来看看wiki怎么说: In computer science, random access (more precisely and mor...原创 2017-10-01 10:49:46 · 20047 阅读 · 5 评论 -
后宫佳丽到底有几千?------聊聊页面置换算法之FIFO LRU LFU
先说枯燥的。 很多程序员甚至没有听说过虚拟内存这个概念, 情有可原, 因为虚拟内存机制虚拟得太好, 所以, 很多非计算机专业的人, 根本就没有感知到, 包括我。 虚拟内存号称能虚拟出比实际内存更多的内存, 这是扯淡吗? 如果不是, 它又是怎样做到的呢? 先不说这些。 在古代, 皇帝可谓一手遮天, 想要什么就有什么, 想和谁约会, 就跟谁约会。原创 2017-09-30 21:23:50 · 7165 阅读 · 1 评论 -
“32位程序/64位程序” VS “32位机器/64位机器” 那点事
先来说计算机字长的概念, 我们经常说, 这个计算机的字长是4字节, 什么意思, 意思是说, 是以4字节来存地址的, 所以sizeof(char *)等于4, 总共32个bit, 很显然, 可以有2^32次方个地址, 所以我们经常说, 这个计算的内存(虚拟内存)有4G嘛。 显然, 64位机器的虚拟地址就更大了。 在32位机器上, 编译的是32位的程序(默认), 可以在32位原创 2017-09-30 21:08:05 · 7995 阅读 · 0 评论 -
计算机存储器简介
你肯定喝过水, 要么是用碗装的, 要么是用瓶瓶罐罐装的, 这些都是容器, 你也可以叫它们为存储器。 小时候, 很多朋友接触过复读机, 里面是磁带不停转动, 磁带上面是有数据的, 就跟碗里有水一样。 计算机中的存储器, 也是一样。 你肯定去过公共厕所吧, 我上次肚子不舒服, 很想去拉屎, 去了一个公共厕所, 刚好有8个坑位, 每个坑位要么有人, 要么没有人, 也就是0原创 2017-09-24 09:13:09 · 8206 阅读 · 2 评论 -
磁芯存储器简介------顺便说说core dump的core是什么含义
在前面的文章中, 我们说了存储器, 无非就是厕所的坑, 标志一个二值状态。 如果你愿意, 那么你可以用厕所的坑的组合来设计一个存储器, 照样可以存储你从岛国下载回来的电影, 只是, 需要太多这样的厕所坑, 不划算, 你我都没有那么多钱。 既然用厕所的一个坑来做一个二进制bit位很浪费钱, 那我们来说说磁芯存储器, 看一张图: 这就是磁芯存储器, 里面有6原创 2017-09-24 12:29:03 · 11264 阅读 · 2 评论