读CSAPP之ISA、Circuit和SEQ

Computer System: A Programmer’s Perspective

我曾经不只三次翻阅第四章–处理器体系机构,然而至今未能完整读懂,其中的电子学和布尔代数小节,使我深深地为当年的逃课行为感到懊恼,–为此,我特意找了《数字电路简明教程》来补上这一课。下面这些文字,是我在半懂不懂的情况下,“断章取意”摘录的,只做自己的读书笔记。

ISA

指令集体系结构(Instrunction-Set Architecture, ISA)是指处理器所支持的指令和指令的字节级编码,其在编译器编写者和处理器设计者之间提供了一个概念抽象层。

每条指令由若干个字节组成,第一个字节包含了code部分(高四位)和function部分(低四位),不同指令的code部分可能相同,但code和function的二者组合则惟一标识一条指令,并根据其确定其他附加字节的长度和定义,处理器可以无二义性地执行目标代码程序。

[ Read More » ]

读CSAPP之Procedure、Stack Frame

Computer System: A Programmer’s Perspective

过程调用包括将数据(以参数和返回值的形式)和控制从代码的一部分传递到另一部分,同时,在进入时为过程的局部变量分配空间,并在退出时释放空间。

IA32只提供了对进入过程和退出过程的控制,而数据传递、变量的分配和释放则要通过操作程序栈来实现。x86-64则是通过寄存器而不是栈来传递数据,这样极大地减少了存储器读写操作的数量。

[ Read More » ]

读CSAPP之RAM、Locality和Cache

Computer System: A Programmer’s Perspective

RAM(Random Access Memory)中文译作随机存取存储器,所谓“随机存取”,指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。相对的,读取或写入顺序访问(Sequential Access)存储设备中的信息时,其所需要的时间与位置就会有关系[1],比如磁盘存储器。

RAM 分为 SRAM 与 DRAM 两大类,二者区别在于前者对干扰(光、电)不敏感,用于高速缓存存储器,后者用于主存和显存,以及数码相机和摄像机中的传感器。

[ Read More » ]

WiFi-Robot Car 之舵机篇

舵机,有些人会叫它伺服器,这大概是台湾的术语,其可以根据在指令转动方向,停留在0-180度,在机器人等设备中经常用到。其有一个三线的接口,黑色(或棕色)的线是接地线,红线接+5V电压,黄线(或是白色或橙色)接控制信号端。这里有一篇来自果壳网的启蒙文章《DIYer修炼:舵机知识扫盲》,我也是通过这篇文章入门的。

在 WiFi-Robot Car 中,我使用了两个舵机来控制摄像头的上下、左右运动。如果打算做得更炫一点儿,WiFi-Robot Car 可以加入机械臂,通过舵机可以控制伸长、缩回等转动,甚至可以控制它抓取东西。–但眼下我没打算加入这个功能。

[ Read More » ]

WiFi-Robot Car 之电池篇

兵马未动,粮草先行,电池是 WiFi-Robot Car的能量源泉。我选用的控制板对电源的要求是12.6v,但从从淘宝购买来的二手锂电池组是24v,因此需要对电池组进行改装。改装之前先熟悉电池组的规格,这里关注两个指标,其一是电压,其二是容量。前者关乎到是否合乎电路要求,后者则关系到持续时间。

这次改装所使用的电池组由12节18650型号的锂电池构成,每六节组成一组,以串联的形式输出24v,此时容量是4400mah。以并联的方式改装之后,电压将为12v,容量提升至8800mah。

改装之前,需要准备如下材料和工具:

  1. 万用表
  2. 电烙铁
  3. 导线两根
  4. 剪刀
[ Read More » ]