将陆续上传本人写的新书<自己动手写CPU>,今天是第28篇.我尽量每周四篇 China-pub的预售地址例如以下(有文件夹.内容简单介绍.前言): http://product.china-pub.com/3804025 亚马逊的预售地址例如以下,欢迎大家围观呵. http://www.amazon.cn/dp/b00mqkrlg8/ref=cm_sw_r_si_dp_5kq8tb1gyhja4 7.5 流水线暂停机制的设计与实现 7.5.1 流水线暂停机制设计 由于OpenMIPS设计乘累加…
将陆续上传本人写的新书<自己动手写CPU>.今天是第30篇.我尽量每周四篇 亚马逊的销售地址例如以下.欢迎大家围观呵! http://www.amazon.cn/dp/b00mqkrlg8/ref=cm_sw_r_si_dp_5kq8tb1gyhja4 China-pub的销售地址例如以下: http://product.china-pub.com/3804025 北发的销售地址例如以下: http://book.beifabook.com/Product/BookDetail.aspx?Pl…
将陆续上传本人写的新书<自己动手写CPU>(尚未出版).今天是第13篇.我尽量每周四篇 4.4 MIPS编译环境的建立 OpenMIPS处理器在设计的时候就计划与MIPS32指令集架构兼容,所以能够使用MIPS32架构下已有的GNU开发工具链.本节将说明怎样安装使用GNU开发工具链以及怎样制作Makefile文件.从而以更加方便.快捷.自己主动的方式对測试程序进行编译.并得到指令存储器ROM的初始化文件inst_rom.data. 4.4.1 VisualBox的安装与设置 GNU工具链要安装…
将陆续上传新书<自己动手写CPU>,今天是第47篇. 9.7 ll.sc指令实现思路 9.7.1 实现思路 这2条指令都涉及到訪问链接状态位LLbit,能够将LLbit当做寄存器处理,ll指令须要写该寄存器,sc指令须要读该寄存器.同一时候,与对通用寄存器的訪问一样,对LLbit寄存器的写操作也放在回写阶段进行. ll指令在訪存阶段要读取数据存储器中指定地址的数据.还要设置对LLbit寄存器的写操作,写入的值为1,这个写操作会通过MEM/WB模块传递到回写阶段,终于实现对LLbit寄存器的写.…
将陆续上传本人写的新书<自己动手写CPU>(尚未出版),今天是第15篇,我尽量每周四篇 上一章建立了原始的OpenMIPS五级流水线结构,可是仅仅实现了一条ori指令,从本章開始,将逐步完好. 本章首先讨论了流水线数据相关问题.然后改动OpenMIPS以解决该问题.并在5.3节验证了解决效果.接着对逻辑.移位操作与空指令的指令格式.使用方法.作用进行了一一说明.在5.5节通过扩展OpenMIPS实现了这些指令,最后编写測试程序,对实现效果进行了检验. 5.1 流水线数据相关问题 我们在第4章实…
将陆续上传本人写的新书<自己动手写CPU>(尚未出版),今天是第17篇.我尽量每周四篇 5.4 逻辑.移位操作与空指令说明 MIPS32指令集架构中定义的逻辑操作指令有8条:and.andi.or.ori.xor.xori.nor.lui.当中ori指令已经实现了,本章要实现其余7条指令. MIPS32指令集架构中定义的移位操作指令有6条:sll.sllv.sra.srav.srl.srlv. MIPS32指令集架构中定义的空指令有2条:nop.ssnop. 当中ssnop是一种特殊类型的空操…
将陆续上传本人写的新书<自己动手写CPU>(尚未出版),今天是第21篇,我尽量每周四篇 6.2 移动操作指令实现思路 6.2.1 实现思路 这6条移动操作指令能够分为两类:一类是不涉及特殊寄存器HI.LO的指令,包含movn.movz:还有一类是涉及特殊寄存器HI.LO的指令.包含mfhi.mflo.mthi.mtlo.前一类非常好实现.基本思路与第5章实现逻辑.移位操作指令时类似,仅仅须要改动ID.EX模块就可以.后一类涉及到特殊寄存器HI.LO,须要为OpenMIPS加入HI.LO寄存器.…
将陆续上传本人写的新书<自己动手写CPU>,今天是第36篇,我尽量每周四篇 开展晒书评送书活动,在亚马逊.京东.当当三大图书站点上,发表<自己动手写CPU>书评的前十名读者,均可获赠<步步惊芯--软核处理器内部设计分析>一书,大家踊跃參与吧!活动时间:2014-9-11至2014-10-20 8.4.3 改动运行阶段的EX 模块 參考图8-6可知,EX模块须要添加一些接口,添加的接口描写叙述如表8-4所看到的. EX模块的代码主要改动例如以下,完整代码请參考本书附带光盘…
自己动手写CPU 跳转至: 导航. 搜索 文件夹 1 处理器与MIPS 2 可编程逻辑器件与Verilog HDL 3 教学版OpenMIPS处理器蓝图 4 第一条指令ori 5 逻辑.移位与nop 6 移动 7 算术 8 转移 9 Load/Store 10 协处理器 11 异常 12 实践版OpenMIPS 13 小型SOPC 14 验证 15 移植uC/OS-II 16 附录A 教学版OpenMIPS各个模块的接口说明 17 附录B OpenMIPS实现的全部指令及相应机器码 18 參考文…
<自己动手写CPU>写书评获赠图书的读者有: 京东:8***2.16号哨兵.magicyu.kk6803.jddickyd.杰出的胡兵 亚马逊:徐贺.马先童.jaychen.farmfarm007 当当:几何老师 上述童鞋将获赠<步步惊芯--软核处理器内部设计分析> 还有那位童鞋发了评论,可是这里没有列出的,麻烦和我联系哦,能够站内信箱,也能够给我发邮件,邮件地址在书中给出了 2014-1-5 <自己动手写CPU>写书评获赠书活动终于名单出炉了,出版社已经寄出赠书,各位…
将陆续上传新书<自己动手写CPU>.今天是第38篇,我尽量每周四篇,可是近期已经非常久没有实现这个目标了.一直都有事,不好意思哈. 开展晒书评送书活动,在q=%E4%BA%9A%E9%A9%AC%E9%80%8A&ie=utf-8&src=se_lighten_f" style="color:rgb(51,102,153); text-decoration:none; font-family:Arial; font-size:14px; line-heigh…
将陆续上传本人写的新书<自己动手写CPU>(尚未出版).今天是第16篇.我尽量每周四篇 5.2 OpenMIPS对数据相关问题的解决措施 OpenMIPS处理器採用数据前推的方法来解决流水线数据相关问题. 通过补充完好图4-4原始的数据流图,加入部分信号使得能够完毕数据前推的工作,如图5-7所看到的.主要是将运行阶段的结果.訪存阶段的结果前推到译码阶段.參与译码阶段选择运算源操作数的过程. 图5-8给出了为实现数据前推而对OpenMIPS系统结构所做的改动.有两个方面. (1)将处于流水线运行…
将陆续上传本人写的新书<自己动手写CPU>.今天是第25篇.我尽量每周四篇 亚马逊的预售地址例如以下,欢迎大家围观呵! http://www.amazon.cn/dp/b00mqkrlg8/ref=cm_sw_r_si_dp_5kq8tb1gyhja4 China-pub的预售地址例如以下: http://product.china-pub.com/3804025 7.2 简单算术操作指令实现思路 尽管简单算术操作指令的数目比較多.有15条.但实现方式都是相似的,与前几章逻辑.移位操作指令的实…
将陆续上传新书<自己动手写CPU>,今天是第40篇,我尽量每周四篇,可是近期已经非常久没有实现这个目标了,一直都有事,不好意思哈. 开展晒书评送书活动,在q=%E4%BA%9A%E9%A9%AC%E9%80%8A&ie=utf-8&src=se_lighten_f" style="color:rgb(51,102,153); text-decoration:none; display:inline; position:static">亚马逊.…
将陆续上传新书<自己动手写CPU>,今天是第46篇. 在MIPS32指令集中有两条特殊的存储载入指令:链接载入指令LL.条件存储指令SC,本次将介绍这两条指令.在兴许将实现这两条指令. 9.6 链接载入指令ll.条件存储指令sc说明 在本章前面的部分,笔者花费非常多笔墨介绍了OpenMIPS中除ll.sc之外的载入.存储指令的实现过程,本节至9.9节将专门介绍链接载入指令ll.条件存储指令sc的实现过程.ll.sc指令是MIPS32指令集架构中比較特殊的载入存储指令.用来实现信号量机制. 在多…
将陆续上传本人写的新书<自己动手写CPU>.今天是第29篇.我尽量每周四篇 亚马逊的销售地址例如以下,欢迎大家围观呵! http://www.amazon.cn/dp/b00mqkrlg8/ref=cm_sw_r_si_dp_5kq8tb1gyhja4 China-pub的销售地址例如以下(有文件夹.内容简单介绍.前言): http://product.china-pub.com/3804025 7.6 乘累加.乘累减指令说明 乘累加.乘累减指令有4条,包含:madd.maddu.msub.m…
上一篇写的是基本的设计方案,由于考研复习很忙,不知道下一次什么时候才能打开博客,今天就再写一篇.写一写CPU中涉及到RAM的部件,如寄存器堆.数据存储器等. 大家应该在大一刚接触到计算机的时候就知道ROM.RAM了吧.但也记不得那些繁杂的名称,只知道ROM是只读存储器,RAM是可读写存储器.其实知道这些也就够了.CPU内寄存器堆.数据存储器等部件都是可读出可写入的部件,所以全部属于RAM,其实在ISE中是可以直接进行调用IP核来完成这些操作的,但今天暂且不谈IP核,或许后期会对IP核模块进行详细…
大三上学期开展了数字系统设计的课程,下学期便要求自己写一个单周期CPU和一个多周期CPU,既然要学,就记录一下学习的过程. CPU--中央处理器,顾名思义,是计算机中最重要的一部分,功能就是周而复始地执行指令.其实开始做这部分之前,想到CPU就觉得很麻烦,毕竟时计算机内部最重要的东西,但其实刨开来细看,也就慢慢地接受了,当然我现在也不能说是了如指掌,说简单,毕竟自己还处于学习阶段,甚至可能还没有入门.慢慢来吧,先从简单的开始,一步一个脚印,总能写成的.今天先写在具体写代码之前的思路和设计方案.…
我们会继续上传新书<自己写CPU>(未公布),今天是12片,四篇 书名又之前的<自己动手写处理器>改为<自己动手写CPU> 4.3 验证OpenMIPS实现效果 4.3.1指令存储器ROM的实现 本节将验证我们的OpenMIPS是否实现正确,包括:流水线是否正确.ori指令是否实现正确.在验证之前,须要首先实现指令存储器,以便OpenMIPS从中读取指令. 指令存储器模块是仅仅读的.其接口如图4-7所看到的,还是採用左边是输入接口,右边是输出接口的方式绘制.这样便于理解…
我们会继续上传新书<q=%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E5%86%99CPU&ie=utf-8&src=se_lighten_quotes_f" style="color:rgb(0,0,240); text-decoration:none; position:static; display:inline">自己动手写CPU>,今天是第39篇,我尽量每周四篇.可是近期已经非常久没有实现这个目标了,一…
我们会继续上传新书<自己动手写CPU>.今天是第42篇.我尽量每周四篇,可是近期已经非常久没有实现这个目标了,一直都有事.不好意思哈. 开展晒书评送书活动,在q=%E4%BA%9A%E9%A9%AC%E9%80%8A&ie=utf-8&src=se_lighten_f" target="_blank" style="position:static; display:inline; color:rgb(51,102,153); text-d…
一.前面的话 在上一篇博文自己动手写工具----XSmartNote [Beta 3.0]中,用到了若干个自定义控件,其中包含用于显示Note内容的简单的Label扩展控件,用于展示标签内容的label扩展控件,还有包含自定义事件的含checkbox的控件.自定义控件的好处就是其灵活程度很高,不但可以扩展控件的外观,还可以扩展控件的事件,甚至从底层拦截Windows消息进行处理,这也是我喜欢自己写控件的原因.至于自定义控件的几种形式在这里就不说了,有兴趣的小伙伴可以百度一下,下面来看看这些控件的…
一.前面的话 在动笔之前,一直很纠结到底要不要继续完成这个工具,因为上次给它码代码还是一年多之前的事情,参考自己动手写工具----XSmartNote [Beta 2.0],这篇博文里,很多园友提出了宝贵的意见.最后决定吸收园友的建议把这个工具重构一下.首先给它换了个名 称,XSmartNote.因为各种自身的原因,并没有完成这个工具的基本功能,只是实现了基本的框架.最近有点时间就搞了一下,权当做打下基础.本来想用B/S结构来重新搞一下,毕竟园子里有很多大牛都是专注于ASP.NET MVC,但仔…
一.前面的话 在上一篇自己动手写工具----XSmartNote中,我简单介绍了这个小玩意儿的大致界面和要实现的功能,看了一下园子里的评论,评价褒贬不一,有人说“现在那么多云笔记的工具”,“极简版evernote”,我想说的是,别人的工具再好用,终究不是自己写的,其实写这个的目的,一方面是锻炼自己的技术能力,在coding的时候,或多或少会遇到一些问题,在解决这些问题的过程中,技术能力就会有所提升:另一方面,写这个东西还有自己个人原因,可以随时记录一些繁杂的知识点,通过给这些知识点打上标签,可以…
一.前面的话 上一篇中基本实现了简单的签到任务,但是不够灵活.在上一篇自己动手写工具----签到器的结尾中,我设想了几个新增功能来提高工具的灵活程度,下面把新增功能点列出来看看: (1)新增其他的进程任务: (2)任务按照进程进行分类:用IE就是执行IE的任务,与其他(如资源管理器等)无关: (3)每执行完一个任务关闭任务窗口: (4)对签到性质的任务进行”已签到“过滤: (5)实现执行的任务列表自定义: (6)另外实现任务的可视化: 还是先来看看效果图: 二.签到器的改进 在上一个版本中,(自…
自序 编译原理与技术的一整套理论在整个计算机科学领域占有相当重要的地位,学习它对程序设计人员有很大的帮助.我们考究历史会发现那些人人称颂的程序设 计大师都是编译领域的高手,像写出BASIC语言的BILL GATES,SUN的JAVA之父等等,在编译上都有很深的造诣.曾经在世界首富宝座上稳坐多年的比尔.盖茨也就是从给微机编写Basic语言编译器起家 的,也正是这个BASIC编译器为比尔·盖茨和保罗·艾伦的微软帝国奠定了基础.正是这个编写Basic语言编译器的经历,开启盖茨的辉煌职业生涯. 编译器是…
将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第11篇,我尽量每周四篇 第4章 第一条指令ori的实现 前面几章介绍了非常多预备知识,也描绘了即将要实现的OpenMIPS处理器的蓝图,各位读者是不是早已摩拳擦掌,迫切希望一展身手了,好吧,本章我们将实现OpenMIPS处理器的第一条指令ori,为什么选择这条指令作为我们实现的第一条指令呢?答案就两个字--简单.指令ori用来实现逻辑"或"运算,选择一条简单的指令有助于我们排除干扰.将注意力集中在流水线结构的实…
将陆续上传本人写的新书<自己动手写处理器>(尚未出版).今天是第四篇.我尽量每周四篇 1.4 MIPS32指令集架构简单介绍 本书设计的处理器遵循MIPS32 Release 1架构,所以本节介绍的MIPS32指令集架构指的就是MIPS32 Release 1. 1.4.1 数据类型 指令的主要任务就是对操作数进行运算.操作数有不同的类型和长度,MIPS32提供的基本数据类型例如以下. 位(b):长度是1bit. 字节(Byte):长度是8bit. 半字(Half Word):长度是16bit…
将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第三篇.我尽量每周四篇 MIPS指令集架构自上世纪80年代出现后.一直在进行着更新换代,从最初的MIPS I到MIPS V,发展到可支持扩展模块的MIPS32.MIPS64系列,再到集成代码压缩技术的microMIPS32.microMIPS64.每一个MIPS ISA都是其前一个的超集,没有不论什么遗漏,仅仅有添加新的功能.       1.MIPS Ⅰ 提供载入/存储.计算.跳转.分支.协处理及其他特殊指令.该指令集架构用于最初…
前言  最近在用Polymer封装纯数字的输入框,开发过程中发现不少坑,也有很多值得研究的地方.本系列打算分4篇来叙述这段可歌可泣的踩坑经历: <动手写个数字输入框1:input[type=number]的遗憾> <动手写个数字输入框2:起手式--拦截非法字符> <动手写个数字输入框3:痛点--输入法是个魔鬼> <动手写个数字输入框4:魔鬼在细节--打磨光标位置> HTML5带来的福利-input[type=number] <input id=&quo…