Netty3 源码分析 - ChannelHandler
每个通道关联一个Pipeline,在流水线中拦截处理各种事件的对象就是ChannelHandler,它处理ChannelEvent而后进行传递。
接口ChannelHandler没有提供任何方法,有两个子接口分别用来规范处理上行和下行的通道事件。
ChannelHandler是随ChannelHandl...
分类:
Web程序 时间:
2014-09-10 10:54:00
阅读次数:
221
讲到缓存,平时流水线上的码农一定觉得这是一个高大上的东西。看过网上各种讲缓存原理的文章,总感觉那些文章讲的就是玩具,能用吗?这次我将带你一起看过UIL这个国内外大牛都追捧的图片缓存类库的缓存处理机制。看了UIL中的缓存实现,才发现其实这个东西不难,没有太多的进程调度,没有各种内存读取控制机制、没有各...
分类:
移动开发 时间:
2014-09-10 07:17:00
阅读次数:
407
引用与参考资料
1).新浪微博的BigPipe后端实现技术分享
2).使用BigPipe提升浏览速度—— 流水线技术在新浪微博的实践
3).从新浪微博改版谈网页重构——bigpipe中的页面构建优化
4).Facebook创新之BigPipe:优化页面加载时间 http://www.infoq.com/cn/news/2010/08/bigpipe-fa...
分类:
编程语言 时间:
2014-09-10 00:31:19
阅读次数:
232
乘累加、乘累减指令有4条,包括:madd、maddu、msub、msubu,实现思路:计划在流水线执行阶段采用两个时钟周期完成运算,第一个时钟周期进行乘法运算,第二个时钟周期将乘法结果与HI、LO寄存器进行加/减法。...
分类:
其他好文 时间:
2014-09-02 14:14:44
阅读次数:
339
因为OpenMIPS设计乘累加、乘累减、除法指令在流水线执行阶段占用多个时钟周期,因此需要暂停流水线,以等待这些多周期指令执行完毕,一种直观的实现方法是:要暂停流水线,只需保持取指令地址PC的值不变,同时保持流水线各个阶段的寄存器(也就是IF/ID、ID/EX、EX/MEM、MEM/WB模块的输出)不变。
OpenMIPS采用的是一种改进的方法:假如位于流水线第n阶段的指令需要多个时钟周期,进而请求流水线暂停,那么需保持取指令地址PC的值不变,同时保持流水线第n阶段、第n阶段之前的各个阶段的寄存器不变,而第...
分类:
其他好文 时间:
2014-08-27 00:26:36
阅读次数:
333
在项目开发中很多人会有这样的需求,就是想要操作做过了不能后退,之前在网上找过点,都说没有什么好的办法,我有的说有js,但效果不好,不说连点两下可以让他失效,有不同浏览器中也无法兼容,如
function gogo(){
javascript:window.history.forward(1);
}
gogo();
这段js代码加在html中可以在IE与google中有效,但到火狐中就失...
分类:
Web程序 时间:
2014-08-25 21:10:14
阅读次数:
219
虽然简单算术操作指令的数目比较多,有15条,但实现方式都是相似的,与前几章逻辑、移位操作指令的实现方式也很类似,不需要增加新的模块、新的接口,只需要修改流水线译码阶段的ID模块、执行阶段的EX模块即可。实现思路如下。
(1)修改流水线译码阶段的ID模块,添加对上述简单算术操作指令的译码,给出运算类型alusel_o、运算子类型aluop_o、要写入的目的寄存器地址wd_o等信息,同时根据需要读取地址为rs、rt的通用寄存器的值。
(2)修改流水线执行阶段的EX模块,依据传入的信息,进行运算,得到运算结果,确...
分类:
其他好文 时间:
2014-08-20 00:01:15
阅读次数:
526
观摩了下传说中的的FFT(快速傅里叶)大致就是用递归,和非递归两种方法实现。赶脚fft算法比较适合在fpga里面跑个流水线。感觉应该比CPU&&dsp&&gpu强多了……用MATLAB验证计算结果。
分类:
其他好文 时间:
2014-08-19 12:39:45
阅读次数:
128
一.前言1.编译器优化介绍:由于内存訪问速度远不及CPU处理速度,为提高机器总体性能,在硬件上引入硬件快速缓存Cache,加速对内存的訪问。另外在现代CPU中指令的运行并不一定严格依照顺序运行,没有相关性的指令能够乱序运行,以充分利用CPU的指令流水线,提高运行速度。以上是硬件级别的优化。再看软件一...
分类:
编程语言 时间:
2014-08-16 14:59:20
阅读次数:
232
本章将实现MIPS32指令集架构定义的所有算术操作指令,共有21条,按照OpenMIPS实现这些指令的方式,可以分为三类,分别介绍如下。
(1)简单算术操作指令
共有15条,包括加法、减法、比较、乘法等指令,这些指令在流水线的执行阶段都只需要一个时钟周期,而且实现思路很直观,与第4章添加逻辑操作指令类似,只需修改译码阶段的ID模块、执行阶段的EX模块,即可实现。
(2)乘累加、乘累减指令
共有4条:乘累加madd、无符号乘累加maddu、乘累减msub、无符号乘累减msubu。其中madd、maddu要求操...
分类:
其他好文 时间:
2014-08-15 14:43:58
阅读次数:
585