事物的价值 获取链接 Facebook X Pinterest 电子邮件 其他应用 五月 25, 2017 大部分的人性是这样评判事物价值的: 1,看它耗费了自己多少能量:时间,金钱,精力。如果没有付出,那它是钻石,也无所谓;如果付出了巨大成本,那它是垃圾,也能找出它的闪光点和价值以安慰自己没有白白付出。 2,看它有多少人抢,都是什么人在抢。如果没人理睬,即便是钻石,也不屑一顾;如果大家都在抢,即便是垃圾,也要美美的鉴赏一番。 3,看事情发展严重到什么程度,如果你给他们防患于未然,未必有人感谢你;倘若你任其发展等到他病入膏肓再出手相救,他必感激涕零。 获取链接 Facebook X Pinterest 电子邮件 其他应用 评论
mips 精确异常和延时槽 四月 16, 2014 一、非精确异常 在多发射乱序执行的流水线 CPU 上,从指令进入流水线到异常事件的发生,期间要经过若干流水级,此时 PC 的值已指向其后的某条指令,在实现非精确异常的 CPU 上就把此时的 PC 值作为引起异常指令的所在(为了表达的方便,记为 eptr)。 简单地说 就是 eptr 的指向,并非真正的引起异常的指令之所在,而是其后面的某条指令所在。 二、精确异常 简单地说就是 eptr 的指向就是真正引起异常的指令之所在 而实现精确异常的 CPU,则在最后指令提交时 (commit) 按指令流的顺序提交,异常的产生也在该指令提交时,这样就能精确计算出引起异常的指令相对于当前 PC 的偏移,从而保证精确异常。 也就是说当异常产生时,之前的预备工作(即取指,译码,当然PC随之增长)便被废弃。CPU从异常中返回时,再重新做读取和译码的工作。 总之,不管是何类异常,eptr 之前的所有指令都会被执行完成 (commit之后),eptr 之后的指令不会被执行。 三、mips 延迟槽 引入延时槽主要目的就是提高流水线的效率,分为以下两种: 1、分支延时槽 分支延迟槽 (Branch delay slot),简单地说就是位于分支指令后面的一条指令,不管分支发生与否其总是被执行,而且通过下面的图可以看出位于分支延迟槽中的指令先于目标指令提交 (commit即执行)。 ....... ....... jal 48 <---- 48 代表跳转的目标地址 jal会置ra寄存器的值 nop / li a1, 4 <---- 这地方就是一个延迟槽 ....... <----- ra 寄存器的值变为这个地方的地址 ....... 进一步理解: 流水线中,分支指令执行时因为确定下一条指令的目标地址(紧随其后 or 跳转目标处?)一般要到第 2 步以后,在目标确定前流水线的取指级是不能工作的,即整个流水线就“浪费”(阻塞)了一个时间片,为了利用这个时间片,在体系结构的层面上规定跳转指令后面的一个时间片为分支延迟槽(branch delay slot)。位于分支延迟槽中的指令总是被执行,与分支发生与否没有关系。这样就有效利用了一个时间片,消除了流水线的一个“气泡”。 如下图所示,当我们把延时槽的指令去掉以后,你会发现我们浪费了一个时钟周期。(还需要注意一点就是通过ALU一... 阅读全文
802.11协议用到的简写 四月 16, 2014 ACK (acknowledgment) 应答 AID (association identifier) 关联识别码 AP (accss point) 访问点 ATIM (announceent traffic indication message) 广播传输指示消息 BSA (basic service area) 基本服务区 BSS (basic service set) 基本服务集 BSSID (basic service set identification) 基本服务集识别码 CCA (clera channel assessment) 干净信道评价 CCK (complemenetary code keying) 补码键控 CF (contention free) 无竞争 CFP (contention-free period) 无竞争期 CID (connection identifier) 连接标识符 CP (contention period) 竞争期 CRC (cyclic redundancy code) 循环冗余码 CS (carrier serse) 载波侦听 CTS (clear to send) 允许发送 CW (contention window) 竞争窗口 DA (destination address) 目的地址 DBPSK (differential binary phase shift keying) 差分二进制相移键控 DCE (data communication equipment) 数据通信设备 DCF (distributed coordination function) 分布式协调功能 DCLA (direct current level adjustment) 直接电平调整 DIFS (distributed (coordination function)interframe space) 分布式(协调功能)帧间间隔 DLL (data link layer) 数据链路层 DP (desensitization) 减敏现象 DQPSK (differential quadrature phase shift keying) 差分正交相移键控 DS (ditribution system) 分发系统 DS... 阅读全文
armlink 用法详解 四月 16, 2014 在介绍armlink 的使用方法之前,先介绍要涉及到的一些术语。 映像文件(image):是指一个可执行文件,在执行的时候被加载到处理器中。 一个映像文件有多个线程。它是ELF(Executable and linking format)格式的。 段(Section):描述映像文件的代码或数据块。 RO:是Read-only 的简写形式。 RW:是Read-write.的简写形式。 ZI:是Zero-initialized 的简写形式。 输入段(input section):它包含着代码,初始化数据或描述了在应用程序运行 之前必须要初始化为0 的一段内存。 输出段(output section):它包含了一系列具有相同的RO,RW 或ZI 属性的 输入段。 域(Regions):在一个映像文件中,一个域包含了1 至3 个输出段。多个域组 织在一起,就构成了最终的映像文件。 Read Only Position Independent(ROPI):它是指一个段,在这个段中代码和只 读数据的地址在运行时候可以改变。 Read Write Position Independent(RWPI):它是指一个段,在该段中的可读/写 的数据地址在运行期间可以改变。 加载时地址:是指映像文件位于存储器(在该映像文件没有运行时)中的地 址。 运行时地址:是指映像文件在运行时的地址。 下面介绍一下armlink 命令的语法 完整的连接器命令语法如下: armlink [-help] [-vsn] [-partial] [-output file] [-elf] [-reloc][-ro-base address] [-ropi] [-rw-base address] [-rwpi] [-split] [-scatter file][-debug|-nodebug][-remove?RO/RW/ZI/DBG]|-noremove] [-entry location ] [-keep section-id] [-first section-id] [-last section-id] [-libpath pathlist] [-scanlib|-noscanlib] [-loc... 阅读全文
评论
发表评论