02, Principles of Computer Knowledge

1, computer composition principle knowledge map

  FIG computer will be divided into four parts: the basic components of the computer, the computer instructions and arithmetic processor design, has a memory and I / O devices

Basic components of a computer

  The components of the computer system configuration corresponding to the von Neumann, i.e. operator, controller, memory, input devices and output devices that the five basic components. In addition to two core indicators also need to know the computer: performance and power consumption

Computer instructions and calculation

  This section relates to the instruction, line by line of code is written how to run up inside the computer, i.e., how the program by a compiler and assembler into a machine instruction such compilation process (i.e. compiler principles), but also we know how the operating system link, loading, execution of these programs (ie operating system). Roads and this instruction execution of the control process , the controller is one of the five major components of a computer controlled.

  Starting from the binary calculating section and encoding data representing our understanding in the computer, as well as how the short circuit from the digital level, to achieve an addition, multiplication of these basic computing functions. ALU operation to achieve these functions, i.e. an arithmetic logic unit, is one of the five components of the computer operator . And there are a floating-point number is very important knowledge point, floating-point control will enable us to have a deep understanding from front to back to coding, data storage and computing.

CPU design

The CPU clock can be used to construct the memory and register latches and flip-flops, and therefore, the CPU clock preamble should learn the knowledge of the CPU. Do understand why the CPU clock, as well as register and memory is followed by what kind of hardware, you can look at this data through a computer is how to construct out.

数据通路,其实就是连接整个运算器和控制器,并最终组成了CPU。而出于对性能和功耗的考虑,还有进一步理解和掌握面向流水线设计的CPU、数据和控制冒险,以及分支预测的相关技术。

CPU作为控制器要和输入输出设备通信,那么我们就需要知道异常和中断发生的机制。还有指令的并行执行,看看如何直接在CPU层面,通过SIMD来支持并行计算。

存储器原理

通过存储器的层次结构作为基础的框架引导,需要掌握从上到下的CPU高速缓存、内存、SSD硬盘和机械硬盘的工作原理,他们之间的性能差异,以及实际应用中利用这些设备会遇到的挑战。存储器其实很多时候又扮演了输入输出设备的角色,所以需要进一步了解CPU和这些存储器之间是如何进行通信的,以及我们最重视的性能问题是怎么一回事,理解什么是IO_WAIT,如何通过DMA来提升程序性能。

对于存储器,不仅需要它们能正常工作,还需要确保里面的数据不能丢失。于是需要掌握是如何通过RAID、Erasure Code、ECC以及分布式HDFS,这些不同的技术,来确保数据的完整性和访问性能。

2、学习资料

入门书籍:《计算机是怎样跑起来的》,《程序是怎样跑起来的》;此外,寄存器、ALU这些电路怎么回事,可以看Coursera 上的北京大学免费公开课《Computer Organization》

深入学习:《计算机组成与设计:硬件 / 软件接口》和经典的《深入理解计算机系统》,辅助的有《计算机组成:结构化方法》,《计算机体系结构:量化研究方法》。

3、课外资料

《编码:隐匿在计算机软硬件背后的语言》和《程序员的自我修养:链接、装载和库》是理解计算机硬件和操作系统层面代码执行的优秀阅读材料。

 

Guess you like

Origin www.cnblogs.com/gopark/p/10974384.html