
作为一个程序猿,不仅需要会 coding,还要对底层硬件有一些了解。平时我自己对硬件的东西关注不多,发现这是自己的短板,去除具体的实现原理,就连一些常见的硬件( CPU,GPU,存储器)常识都知之甚少,更别提一些其他的电路板,电子元件了。
所以希望各位 V 友可以推荐一些好的书籍,网站,blog,公号,视频等,适合学习了解计算机硬件的,科普常识也行。虽然这些东西可能需要时间去积累,但我希望可以将它作为一种兴趣爱好去了解学习更多。
注:本人学过数模电,数字逻辑,计组,体系结构。。。大家可以多推荐一些偏科普的。谢谢~
1 whypool 2019-03-08 09:43:19 +08:00 百度 |
2 sdhzdmzzl 2019-03-08 09:53:40 +08:00 深入理解计算机系统。 |
3 tcdh 2019-03-08 09:54:38 +08:00 常识的话 CSAPP 就够了,CMU 出品,有书和视频教材。 |
4 crackerJack 2019-03-08 09:56:32 +08:00 via Android x 宝视频多的是,资料也多,几块钱买一堆 |
5 ww2000e 2019-03-08 10:03:31 +08:00 买个 arm 开发板? 或者给 intel 的 cpu 手册通读一遍。。 |
6 cdlixucd 2019-03-08 10:15:29 +08:00 via Android 隔壁做开发的 快三十了 集显独显都搞不清 |
7 wyce2007 2019-03-08 10:37:01 +08:00 via iPhone 编码:隐匿在计算机软硬件背后的语言 从门电路原理开始讲起 |
8 codechaser 2019-03-08 10:43:31 +08:00 via Android @wyce2007 这本书 |
9 ftexplore 2019-03-08 10:45:44 +08:00 感觉没太大必要,如果是做纯软件的话,还是把精力放在数据结构算法上吧 |
10 ReturnNull1 2019-03-08 10:48:55 +08:00 这样的话成本太大 主要是花的时间多 从底层开始的话 真的很费时间 所以 还是不要搞底层吧 除非你是专门想去做硬件 |
11 wangshichang 2019-03-08 10:50:11 +08:00 不知道这个视频符不符合楼主的意思,今天刚看别人在 TG 分享的视频 https://www.bilibili.com/video/av21376839 |
15 Flasky 2019-03-08 12:08:21 +08:00 via Android 可以去学一点单片机,寄存器的操作肯定能让你印象深刻 |
16 Mohanson 2019-03-08 12:17:42 +08:00 via Android |
17 Mohanson 2019-03-08 12:18:55 +08:00 via Android 最近我准备写 arm7tdmi cpu emulator,很好玩 |
18 lrxiao 2019-03-08 12:21:27 +08:00 计算机架构 软硬件接口+量化研究方法 没讲 GPU |
19 ppcoin 2019-03-08 12:27:27 +08:00 via Android 不如把手头的东西往死里搞。 |
20 Cat73 2019-03-08 12:35:02 +08:00 《计算机组成 结构化方法》 我就看的这本 |
21 Cbdy 2019-03-08 13:04:41 +08:00 CSAPP 挺科普的,可以去看看。我感觉做软件的话,更多的需要关注 OS |
CSAPP |
23 Mirana 2019-03-08 13:13:35 +08:00 |
24 yangzhezjgs 2019-03-08 13:44:26 +08:00 |
25 chiu 2019-03-08 14:11:30 +08:00 via Android |
26 zhd173 2019-03-08 14:21:00 +08:00 《 Code 编码:隐匿在计算机软硬件背后的语言》这本也灰常不错哦,比 CSAPP 简单些 |
27 dxgfalcongbit 2019-03-08 14:26:27 +08:00 微机原理 |
29 henglinli 2019-03-08 15:16:57 +08:00 |
30 halfer53 2019-03-08 16:19:59 +08:00 没必要,计算机有不同的领域,每个领域都能挖的很深。但每个人经历有限,不可能每个领域都钻研的很深,专注于你自己的领域做深就是最好的了 |
31 pythondean 2019-03-08 16:23:24 +08:00 @Cat73 小姐姐 73 年的吗 |
32 ZiLong 2019-03-08 16:47:23 +08:00 @pythondean 有没有可能是 73 岁 |
33 Cat73 2019-03-08 18:06:59 +08:00 @pythondean @ZiLong 并不是,90 后 |
34 fox0001 2019-03-08 18:18:10 +08:00 via Android 不知道这个有没有帮助:中科大计算机课程资源 https://mp.weixin.qq.com/s/Il56_X1pXuse_H-Njgyqfw |
35 yplam 2019-03-08 19:49:44 +08:00 via Android 简单的就弄个 stm32,至少可以知道寄存器,io 跟代码里变量的关系,中断,堆栈,任务切换原理 硬核玩家就弄个低端 FPGA,自己去实现各种数字电路,译码器,寄存器,可以执行有限自定义指令集的 mcu |
36 rus4db 2019-03-08 20:20:38 +08:00 楼主看来你也是科班出身啊…… 既然这样,我推荐《微处理器设计从设计规划到工艺制造》 https://book.douban.com/subject/3301308/ 是英特尔的工程师写的。 既不过分简单,也不会过分纠结于某些细节,深入浅出,有 EECS 专业背景的人读起来应该很轻松。 可以把它当成是数字电路+体系结构的复习书。 |
37 koebehshian 2019-03-08 23:40:21 +08:00 via Android 如果模电数电真学会了,应该很容易理解计算机原理 |
38 NEOXIN 2019-03-09 00:11:56 +08:00 via Android EEVBLOG 逼站有熟肉 |
39 feather12315 2019-03-09 00:23:41 +08:00 via Android 计算机系统结构:量化方法,做芯片的必读 |
40 tempdban 2019-03-09 02:12:06 +08:00 via Android 好说,搞一遍性能优化 |
41 dartabe 2019-03-09 02:45:17 +08:00 看下 arm 的基础结构就行了 做软件的把内存 中断看下就行了 |
42 Justin13 2019-03-09 07:43:06 +08:00 via Android 上 sicp。。。。 |
43 mseasons 2019-03-09 08:05:30 +08:00 你学过的这点东西,为啥还要偏科普的东西呀 |
44 cherrycatz 2019-03-09 08:17:18 +08:00 bilbili |
45 guanaco 2019-03-09 08:19:38 +08:00 via iPhone 找个计算机 BIOS 的汇编源码读一下,如果能看懂的话 |
46 Sunly 2019-03-09 08:26:06 +08:00 我是从《编码:隐匿在计算机软硬件背后的语言》这本书开始看的,浅显易懂,很推荐 |
47 kimi0 2019-03-09 08:40:41 +08:00 如果是出于提升工作技能的目的,没必要 我自己就是从硬件设计 /VERILOG 转过来做后端开发的,硬件的知识在工作中能用到的机会,为 0 估计做操作系统 /driver 的组会有机会和硬件打交道吧,但一般也就限于 datasheet 这一层了,不会让你去搞明白上升沿 /时钟都是些什么玩意 |
48 BingZ 2019-03-09 08:55:34 +08:00 同样推荐 CSAPP,偏软。简单介绍必要的硬件概念,主要结合现代大型 OS 实现所需的相关内容进行讲解。这些对于上层应用级软件来说,足够了。真要深究,即然楼主有数模电基础,那就从 CPU 的实现入手。可以试试在 FPGA 上构建一个自己的 CPU。 |
49 honeycomb 2019-03-09 08:58:01 +08:00 via Android YouTube 有 eth zurich 的 computer architecture,由 onur mutlu 讲课 |
50 xrshi 2019-03-09 12:47:17 +08:00 via Android minecraft 红石电路。四位和八位 cpu 都有教程。 https://minecraft.gamepedia.com/Tutorials/Redstone_computers |
51 txy3000 2019-03-09 16:48:48 +08:00 via Android 以前用 Verilog 写过一个五级流水线的 CPU 带条件预测 forward 你也可以尝试一下 xilinx 仿真的 一下就理解 MIPS 体系的 CPU 的原理了 |
52 xieyudi 2019-03-10 11:38:15 +08:00 via Android 一步步来嘛。一方面是体系结构,另一方面是数字电路设计。 体系结构资料就是 Patterson 的那几本书,上面都给出了。CSAPP 还是有些偏软了。数字设计就是从学校里的电路,电子,到大规模集成电路,低功耗设计,etc. 从 FPGA 上实现 CPU 是个很好的路子。先实现一个教科书式的单个指令多个周期的那种。再上流水线,多发,乱序。还有缓存,TLB/MMU 这些也得慢慢上。我以前没事整天分析 Cortex-A55 /A75 的 RTL,本质上上还是那些东西。 能通过这个走完架构-设计验证-实现(综合,布局布线,时序分析那些)。等走完这个,差不多能转行了。。。 我以前算是该软件的。最近也在找专门做 CPU 设计方面的工作。 |
53 RingoTC 2019-03-10 15:26:06 +08:00 CSAPP 更适合软件工程师看。 |