1.信息处理
模拟转数字:ADC
数字转模拟:DAC
2.数字处理方法
偏软件:CPU,DSP,GPU;
偏硬件:ASIC(SOC),FPGA;
异构:CPU+GPU+ASIC+FPGA;
3.指令集:CPU架构定义的操作命令的集合;
常见指令集:CISC(X86), RISC(ARM,RISC-V,MIPS,PowerPC);
CPU其实就是数字电路,由与、或等逻辑门组成,可以进行运算。
4.CISC指令条数较多,RISC条数较少;
CISC每条指令较为复杂,RISC每条指令较为简单。
5.用OS(operating system)管理进程
OS会划分时间片,在每个时间片服务一个进程,进程状态:创建、阻塞、就绪、执行、终止。
6.提高CPU效能
提升频率,提升IPC(instruction per cycle每个周期执行多少条指令);
分支跳转预测;
多核结构;
多发射(一个周期执行多条指令),乱序执行;
SIMD(单指令,多数据);
7.目前计算机系统的地址编码按byte统一编码,32位CPU能访问的地址范围2^32,即4GB(1GB=1024MB=10241024KB=10241024*1024Byte)
8.子程序调用原理
栈(stack):有存储功能,数据先进后出
stack通常在系统memory里,如DDR,chip SRAM,不在CPU内部的寄存器里。栈溢出会导致程序奔溃。
9.进程间通信:
管道:A写B读,只有一个存储空间;
消息队列:A写B读,有一定buffer量;
共享内存:在系统地址(内存)中开辟一段空间,大家可以共享;
信号量(semaphore):用一个数值表示资源的多少;申请到把数值减1,释放回把数值加1。
用命令控制,如Linux:kill -9 进程号; ctrl +c/ctrl+z
Socket
10.HW/SW交互
查询模式:CPU发起,自主访问设备地址空间,获取设备的当前情况;
中断模式:设备通过中断线(信号),向CPU表示自己有异常状况需要处理;CPU响应中断,调用对应的中断服务程序,处理设备异常。