作为一个程序猿,不仅需要会 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 4
深入理解计算机系统。
|
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 2
编码:隐匿在计算机软硬件背后的语言
从门电路原理开始讲起 |
8
codechaser 2019-03-08 10:43:31 +08:00 via Android
@wyce2007 这本书👍
|
9
ftexplore 2019-03-08 10:45:44 +08:00
感觉没太大必要,如果是做纯软件的话,还是把精力放在数据结构算法上吧
|
10
lavenderkissyou 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 1
|
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
|
22
Mistwave 2019-03-08 13:07:49 +08:00 via iPhone
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 更适合软件工程师看。
|