自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 结构型模式——装饰器模式210927

Decorator(装饰器,Structural Pattern)问题:点咖啡系统如果我们要编写一个点咖啡系统只有四种咖啡的类图如下如果要给咖啡加调料,而且每一种都要收钱,最后还要算钱,该咋办呢如果还是搞很多个类,会产生“类爆炸”我们也可以给父类增加许多方法来避免类爆炸可是如果我们要改价格或者加新的调料该咋办呢?装饰器模式这是啥一层层剥开你的心简而言之,每新增一种调料就把咖啡用调料装饰,也就是放进调料对象中,增加新的调料就把之前产生的对象放进新的调料计算价格时只要一层层

2021-09-27 22:04:35 143

原创 创建型模式——抽象工厂模式210926

Abstract Factory(抽象工厂,Creational Pattern)抽象工厂模式提供一个接口,它可以创造一组相关的或相互依赖的对象‘也叫Kit工厂模式只创建一个对象,抽象工厂可以创建一组抽象工厂模式出现最初是为了让图形用户界面的窗口风格保持一致...

2021-09-27 21:07:31 146

原创 创建型模式——工厂模式210922

Factory Method(工厂方法,Creational Pattern)问题:"new"关键字的问题当我们使用new创建一个新的对象时,我们实际上初始化了一个实体类,而非使用一个接口此外当我们使用了一组相关的实体类时,我们会这样写这样的代码在需要修改和扩展时不够灵活,需要重新修改它们我们希望使用接口使程序灵活比如一个客户去了全聚德吃烤鸭,不能让他自己new一个烤鸭上来,而要让他自己有一个厨师接口,调用饭店里具体的厨师来上菜Factory Method定义一个创建对象的接口,由实现

2021-09-23 20:45:50 163

原创 数据结构 线性表 210922

线性表是一种最简单的线性结构线性结构的基本特征为:线性结构是一个数据元素的有序(次序)集集合中必存在唯一的一个“第一元素”集合中必存在唯一的一个 “最后元素”除最后元素在外,均有 唯一的后继除第一元素之外,均有 唯一的前驱类型定义初始化操作InitList( &L )销毁操作DestroyList( &L )引用型操作ListEmpty( L ),判断是否为空ListLength( L ),返回长度PriorElem( L, cur.

2021-09-23 20:45:32 93

原创 行为型模式——策略模式210919

Strategy(策略,Behavioral Pattern)问题:鸭子游戏我要创建一堆鸭子类,它们能叫,能游泳,但是有着不同的性状首先我们想整一种红头鸭和绿头鸭基本想法是这样,就继承呗,想让鸭子飞也简单,直接在父类里面加一个方法可如果我要有橡皮鸭子咋办泥可能需要重写父类的方法这样就违反了之前的里氏替换原则把可能变化的代码独立出来,不要和不变化的代码混在一起针对接口编程,而不是针对实现编程Strategy Pattern它是啥针对一组算法,将每一个算法封装到具有共同接口的独立

2021-09-22 15:45:23 95

原创 数据结构 绪论210915

绪论基本概念和术语数据元素(data element)是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理有时,一个数据元素可由若干个数据项(data item)组成。数据项是数据的不可分割的最小单位。例如,一本书的书目信息为一个数据元素,而书目信息中的每一项(如书名、作者名等)为一个数据项数据结构(data structure)是相互之间存在一种或多种特定关系的数据元素的集合。数据结构的形式定义为:数据结构是一个二元组Data Structure = (D,S),其中:D是数

2021-09-15 15:57:03 101

原创 王爽《汇编语言》第三章

目录内存中字的存储DS 和[address]字的传送8086的栈机制CPU如何知道栈顶的位置?小结内存中字的存储在内存中存储时,由于内存单元是字节单元(一-个单元存放一个字节),则-一个字要用两个地址连续的内存单元来存放,这个字的低位字节存放在低地址单元中,高位字节存放在高地址单元中。字单元,即存放一个字型数据(16位)旳内存单元,由两个地址连续的内存单元组成。高地址内存单元中存放字型数据的高位字节,低地址内存单元中存放字型数据的低位字节。存储数据20000(4E20H)DS 和[addres

2021-09-14 15:20:46 91

原创 行为型模式——观察者模式210914

Observer(观察者,Behavioral Pattern)问题:看孩子孩子哭了,爸爸要立刻检查孩子并安慰他我们可以让爸爸单独作为一个线程看着孩子

2021-09-14 13:52:10 112

原创 设计模式简介

设计模式简介分类按目的分创建型模式关注对象创建AbstractFactory(抽象工厂)Builder(建造者)FactoryMethod(工厂方法)Singleton(单例)Prototype(原型)结构型模式关注类与对象的组成Adapter(适配器)Bridge(桥接)Composite(组合)Decorator(装饰器)Facade(门面)Flyweight(享元)Proxy(代理)行为型模式关注类与对象的交互ChainofResponsib

2021-09-13 22:03:16 50

原创 第二章 需求确定

目录需求确定从业务过程到解决方案构想过程层次建模业务过程建模解决方案构想需求引导系统需求需求引导的传统方法需求引导的现代方法需求协商与确认超出范围的需求需求依赖矩阵需求风险和优先级需求管理需求业务模型需求文档文档模板需求确定从业务过程到解决方案构想过程层次建模BPMN(业务过程建模表示法):对由活动定义的业务过程建模过程可能包含子过程,过程中的原子活动叫任务过程层次图定义了业务过程模型的静态结构。它显示过程的层次结构,将顶层业务过程分解为子过程。一般说来,将子过程向下分解为原子任务并不是惯例

2021-09-12 14:37:06 740

原创 第一章 软件过程

目录软件过程1. 软件开发的本质软件开发的不变事实软件开发的意外事件开发还是集成2.系统规划3.三级管理系统4.软件开发生命周期软件开发方法生命周期的阶段跨越生命周期的活动5.开发模型与方法软件过程1. 软件开发的本质软件工程的本质问题体现在软件本身所固有的困难中,我们只能承认这些困难——没有获得突破性进展或“银弹”的方法。软件工程的本质问题是由软件固有的复杂性、一致性、可变性和不可见性所导致的。软件的“本质困难”定义了软件开发的不变事实。不变事实声明软件是一种创造性开发行为的产品——由工匠而不是

2021-09-11 17:18:33 384

原创 软需课堂笔记

软需推荐阅读 人月神话软件开发是焦油坑,能力越大,责任越大,风险越大,同理困难越大,说明你能力越大现在是最好的时代,技术在发展,也是最不好的时代,焦油坑仍然存在,且越来越严重我们遇到的所有的问题,只能解决自身的问题,不能解决别人的问题,我们要想自身怎么改善从而让事情得到改善,需求分析就是解决自己的问题,让自己开心一点成功的项目和项目的成功不是一个含义项目三要素:时间、成本、质量,三角形,面积是项目的范围,面积不变,若要一种要素变高,其他要素也要变成功的项目是项目可以使用项目的成功是在规定

2021-09-11 12:40:51 106

原创 王爽《汇编语言》第二章 寄存器(CPU工作原理)210908

目录关于CPU通用寄存器字与字节几条汇编指令16位结构CPU8086给出物理地址的方法段的概念段寄存器CS与IP修改CS、IP的指令代码段小结关于CPU在CPU 中:运算器进行信息处理;寄存器进行信息存储;控制器控制各种器件进行工作;内部总线连接各种器件,在它们之间进行数据的传送不同的 CPU,寄存器的个数、结构是不相同的。8086CPU 有14个寄存器,每个寄存器有一个名称。这些寄存器是:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW通用寄存器8086

2021-09-08 08:21:27 219

原创 面向对象设计的原则210907

目录软件设计七宗罪面向对象设计的原则SRP:Single Responsibility Principle 单一职责原则DefinitionDescriptionExampleKernelOCP:Open-Closed Principle 开放-封闭原则DefinitionDescriptionImplementationExampleKernelLSP:Liskov Substitution Principle 里氏替换原则Definition未完待续软件设计七宗罪Rigidity(僵化)–make

2021-09-07 11:09:48 108

原创 用例图、类图与时序图的皮毛210907

本文很皮毛很皮毛只是课后笔记,以后会深入一些目录**本文很皮毛很皮毛只是课后笔记,以后会深入一些**用例图(UseCaseDiagram)WhatHowActorUse CasesUsecase summary diagramsExample«include»&«extend» Relationships«include»«extend»类图(Class Diagram)WhatHowClass and InheritanceInterface and ImplementationAggregat

2021-09-07 07:56:56 194

原创 王爽《汇编语言》第一章,基础知识210906

小结(1)汇编指令是机器指令的助记符,同机器指令一一对应。(2)每一种 CPU都有自己的汇编指令集。(3) CPU可以直接使用的信息在存储器中存放。(4)在存储器中指令和数据没有任何区别,都是二进制信息。(5)存储单元从零开始顺序编号。(6)一个存储单元可以存储8个bit(用作单位写成“b”),即8位二进制数。(7) 1B=8b 1KB=1024B 1MB=1024 KB 1GB=1024 MB。(8)每一个CPU 芯片都有许多管脚,这些管脚和总线相连。也可以

2021-09-06 09:52:05 116

原创 7.1性能分析210822

目录如何定义性能响应时间和吞吐率实例程序执行时间:量化硬软件结合的系统有效速度指令数和CPIMIPS (每秒百万条指令):衡量计算机的硬件速度性能计算实例性能评价总结参考资料如何定义性能通过几个量响应时间和吞吐率程序执行时间TCPI: 每条指令的周期数Tc:时钟周期MIPS (每秒百万条指令)T (CPU执行时间响应时间和吞吐率响应时间:一个任务从开始到结束完成的时间对个人用户非常重要吞吐率(带宽):一定时间内完成的任务量对数据中心管理者非常重要实

2021-08-22 07:25:50 165

原创 6.7生成可执行文件210821

目录怎样编译&运行一个程序内存里面存储的内容MIPS内存映射Step1 编译Step2 汇编Step3 链接Step4 加载参考资料怎样编译&运行一个程序内存里面存储的内容指令(也称为text)数据全局/静态: 在程序运行之前分配动态: 在程序运行期间分配内存大小MIPS地址宽度位32位,可寻址的空间最多为232= 4G字节,因此内存最大为4G字节地址从0x00000000 到0xFFFFFFFF字地址从0x00000000 到0xFFFFFFFC内存空

2021-08-21 10:28:44 170

原创 6.6MIPS寻址方式210821

目录寻址方式寄存器寻址立即数寻址基址寻址相对PC寻址伪直接寻址参考资料寻址方式寻址方式就是怎样确定目标操作数的地址MIPS中有五种寻址方式寄存器寻址操作数在寄存器中例如: add $s0, $t2, $t3例如: sub $t8, $s1, $0立即数寻址16-bit 立即数用作操作数例如: addi $s4, $t5, -73例如: ori $t3, $t7, 0xFF基址寻址操作数地址为: 基址+符号扩展的立即数例如: lw $s4, 72($0)

2021-08-21 08:02:11 774

原创 6.5使用MIPS汇编语言编程210819

目录if语句whilefor数组过程(函数)调用栈参考资料if语句要注意的是,MIPS汇编代码中判断的是!=,而不是==whilefor数组过程(函数)调用约定实例栈使用为了防止有些寄存器值会被改变,过程调用前要先把值存入栈参考资料中国大学mooc 计算机组成原理.东北大学...

2021-08-19 09:34:16 110

原创 6.4MIPS机器语言210818

目录机器语言机器语言:R -类型实例机器语言:I-类型实例机器语言:J -类型程序存储分支指令条件分支beq条件分支指令bne无条件分支指令j无条件分支指令jr解释机器代码参考资料机器语言32-bit 指令–简单设计有助于规整化: 32-bit 数据和32-bit指令3 种指令格式:R-类型:寄存器操作数I-类型:立即数J-类型:跳转(稍后讨论)机器语言:R -类型有3个寄存器操作数:rs,rt,rd其他字段:op: 操作码或opcode (对于R-类型指令此字段为0)

2021-08-18 09:29:16 706

原创 6.3MIPS汇编语言210817

目录汇编语言MIPS指令:加减法MIPS设计原则1:简单设计有利于规整化多指令MIPS设计原则2:加快常见的功能操作数MIPS设计原则3:越小越快MIPS寄存器组字寻址存储器字节寻址存储器:MIPS的寻址方式设计原则4:好的设计需要折中参考资料汇编语言指令:计算机语言中的命令机器语言: 计算机能读懂的指令格式(1’s and 0’s)汇编语言: 人可以读懂的指令MIPS指令:加减法c代码:a = b + c;–> MIPS: add a,b,cc代码:a = b - c;–

2021-08-17 12:17:34 473

原创 6.2存储器大小端问题210817

目录大端&小端存储器实例大端和小段的存储器ASCII码使用lb和sb指令访问字符数组参考资料大端&小端存储器乔纳森·斯威夫特(英国政治家及小说家)在格列佛游记中说:小头派成员主张吃鸡蛋打破小头,大头派成员,主张吃鸡蛋打破大头,主要讽刺在英国延续二百年之久的新教与天主教信仰之争大端和小段存储器中,字的地址都是从0开始,只是每个字中的字节地址装入数据的顺序不同大端机器中,地址为0的字节从高字节开始,而小端机器中,地址为0的字节从低字节开始实例大端和小段的存储器IBM公司的

2021-08-17 09:11:06 122

原创 6.1体系结构210817

目录体系结构mips体系结构体系结构的设计准则理解计算机体系结构微结构参考资料体系结构跳跃了几级的抽象体系结构:是程序员所见到的计算机由指令和操作空间来定义不同类型体系结构:IA-32,MIPS,SPARC,PowerPC等体系结构不确定底层硬件实现同一体系结构的计算机,往往有不同的硬件实现同属IA-32体系结构的Intel处理器和AMD处理器,底层硬件不同在价格、性能和功耗等方面有不同的折中有些处理器擅长高性能计算,有些处理器功耗特别低mips体系结构

2021-08-17 07:48:12 85

原创 5.7逻辑阵列210817

目录PLAs(可编程逻辑阵列Programmable logic arrays)特性点描述法ROM是PLA一种特殊情况FPGAs(现场可编程门阵列Field programmable gate arrays)特性组成通用FPGA布局设计流程参考资料PLAs(可编程逻辑阵列Programmable logic arrays)特性与阵列+或阵列仅仅是组合逻辑固定内部连接点描述法ROM是PLA一种特殊情况下图PLA要用八位译码器实现FPGAs(现场可编程门阵列Field prog

2021-08-17 07:30:44 161

原创 5.6存储器210816

目录存储器阵列地址译码驱动系统存储端口RAM与ROMRAM的类型DRAMDRAM的刷新SRAMROM使用存储器阵列的逻辑参考资料存储器阵列有效存储大量数据的存储器阵列3种常见类型DRAM (Dynamic random access memory )SRAM (Static random access memory )ROM (Read only memory )在每一个N-bit地址指定的独特地址空间,读出/写入M-bit 数据值二维存储器位元阵列每一个位元存储一位数据N位地

2021-08-16 11:50:21 265

原创 5.5浮点数表示及运算210815

目录浮点数表示定点数缺点实数与浮点数比较浮点数一般形式实例最直接的表示隐含前导位表示偏置阶码表示(IEEE 754标准)浮点数表示范围浮点数运算加减法浮点数舍入处理乘除法参考资料浮点数表示定点数缺点编程困难表示数的范围小数据存储单元的利用率往往很低实数与浮点数比较浮点数一般形式浮点数表示:f = 土M×BE在计算机中B=2隐含表示需要在计算机中存储:S =浮点数符号M=尾数E=阶码精度实例使用32位浮点表示法表示数字22810我们用三个版本表示最后一个版本

2021-08-15 09:13:35 593

原创 5.4单精度定点除法器210814

目录恢复余数法算法实例加减交替法算法实例参考资料单精度定点除法有恢复余数法和加减交替法两种方法,在计算机中常用的是加减交替法,因为它的操作步骤少,而且也不复杂恢复余数法算法关键是比较余数与除数绝对值的大小,以决定商上0还是1这样算法就出来了实例每一步都用余数x2再减去除数得出新的余数,如果新的余数为正则商上一个1,否则商上一个0,然后再把上一步的余数再乘2再减去除数,就是所谓的恢复余数这种方法的缺点是:当某一次-Y的差值为负时,要多一次+Y恢复余数的操作,降低了执行速度,

2021-08-14 09:12:34 219

原创 5.3单精度定点乘法器210813

目录原码一位乘法器手工计算原理两个问题及解决方法原码一位乘法器原理计算过程逻辑实现原码一位乘法器手工计算原理这里我们要计算0.1101x1.1011会列这种式子上面的叫被乘数,下面的是乘数计算时将乘数每一位取出与被乘数相乘,把位置错开后相加(实际上乘数只有1和0,所以相加的每一个数要么是乘数要么是0)两个问题及解决方法首先是这个乘数的位数不是固定的,可能会有好多,所以我们不能用n个加法器直接加起来,而要用一个寄存器累加结果,这样每次只有两个数相加第二个问题就是计算出来的结果位数也会变多

2021-08-13 10:22:25 304

原创 5.2常见数字模块210812

目录减法器比较器相等比较器数量比较器(量值比较器)算数逻辑单元(ALU)ALU设计功能解析与或、加减操作小于置位操作(SLT)移位器电路图示使用移位器做乘除法计数器移位寄存器参考资料减法器减法器实现比较简单,改变减数符号并相加改变二进制补码的符号就是反转所有位再加一可以通过反相器实现反转所有位进位传播加法器的Cin为1,从而把补码加1比较器比较器的作用是判断两个二进制数是否相等,或者比较大小有两种常见比较器,相等比较器和数量比较器相等比较器相等比较器用同或门比较每一位是否相等

2021-08-12 10:03:39 604

原创 5.1加法器210811

目录加法器半加器全加器进位传播加法器行波进位加法器先行进位加法器前缀加法器比较参考资料加法器半加器首先从构建一个一位的半加器,有两个输入和一个输出,如果A,B均为1,相加就会产生2,而2不能用一位二进制位表示,也就会产生进位,这个进位用Cout输出全加器在多位加法器中,Cout会被相加或者进位到下一个高位,然而半加器没有接收上一位进位的输入端,因此会有全加器(full adder)解决这个问题进位传播加法器一个N位加法器将两个N位输入(A、B)和一位进位C相加,产生一个N位结果S

2021-08-11 11:00:06 529

原创 3.4并行210809

目录几个概念并行空间并行时间并行实例:烤饼干没有并行空间并行-找人帮忙时间并行-烤第二盘时制作第一盘关于流水线参考资料几个概念任务(token) :定义为一组输入,该组输入经过处理后能产生一组输出延迟(Delay) :一个任务从开始到结束所需要的时间吞吐量(throughout) :系统单位时间内产生任务的数量。并行可以提高吞吐量并行空间并行多个相同的硬件在同一时间处理多个任务时间并行任务被分配成不同的阶段也被称作流水线例如, 一个装配流水线实例:烤饼干Ben 决定

2021-08-09 11:44:26 131

原创 3.3时序逻辑电路的时序问题210809

目录时序问题输入时序约束输出时序动态约束建立时间约束保持时间约束例题参考资料时序问题时序逻辑电路中,触发器在时钟上升沿到达时将D复制到输出Q,这个过程称为在时钟沿对D进行采样。D在进行采样的时候必须保持稳定类似于拍照片,物体在相机的孔径时间必须保持稳定,如果不稳定,会发生亚稳态现象输入时序约束建立时间:tsetup=数据在时钟沿之前必须保持稳定的时间(稳定,即不改变)保持时间:thold=数据在时钟沿之后必须保持稳定的时间孔径时间:t=数据在时钟沿附近必须保持稳定的时间(ta= tse

2021-08-09 09:59:57 1435

原创 3.2同步时序逻辑设计210808

目录两种常见的同步时序电路有限状态机(FSM , finite state machine)一、什么是有限状态机二、为什么要用有限状态机三、怎样设计参考资料两种常见的同步时序电路有限状态机流水线有限状态机(FSM , finite state machine)一、什么是有限状态机根据有限状态机功能规范的描述,FSM通常分为两类。在Moore型有限状态机中,输出仅仅取决于机器的当前状态。在 Mealy型有限状态机中,输出取决于当前状态和当前输人。二、为什么要用有限

2021-08-08 09:29:06 148

原创 3.1锁存器和触发器210807

SR(Set/Reset)锁存器

2021-08-08 07:35:13 254

原创 2.4从逻辑到逻辑电路210807

绘制电路原理图规则几种组合逻辑模块7段数码管显示译码器多路选择器(多路复用器)Mux根据选择信号S的值在两个输入信号中选择一个输出2:1复用器可用与或逻辑实现或用三态缓冲器实现,三态缓冲器(three-state buffer)又称三态门,除了输入输出端还有一个控制端,控制端输入为1则正常输出,否则呈现高阻抗状态多路复用器可以通过查找表的方式实现逻辑功能译码器(Decoder)译码器是把特定含义的输入二进制代码译成对应的输出高、低有效电平信号。N个输入,2N

2021-08-07 10:55:57 130

原创 2.3用卡诺图化简逻辑函数210807

原理分析卡诺图(Karnaugh Map),简称K图,它是一种根据最小项之间相邻的关系画出的一种方格图,每个小方格代表逻辑函数的一个最小项。相邻项:指两个最小项仅有一个变量互为相反变量ABC+A‾BC=BCABC+ \overline{A}BC=BCABC+ABC=BC,相邻项可以合并从而化简逻辑函数卡诺图能把最小项之间的相邻关系可视化,采用相邻项不断合并的方法就能对逻辑函数进行化简。画法含n个变量的逻辑函数有2n个最小项,我们要在表格中把有相邻关系的最小项放在相邻的位置,首先要有2n个格

2021-08-07 09:01:56 5278

原创 2.2布尔代数210807

公理单变量定理多变量定理德摩根定理&&推气泡德·摩根定理T12是数字设计中非常有力的工具。该定理说明,所有项乘积的补等于每个项各自取补后相加。同样,所有项相加的补等于每个项各自取补后相来。根据德·摩根定理,一个与非门等效于一个带逆变器输入的或门。同样,一个或非门等效于一个带反向输入的与门。每个函数的这两种表达式称为对偶式。它们是逻辑等效的,可以相互替换。逆变器也称为气泡(bubble)从输出端向后推气泡或者从输入端向前推气泡,将与门换成或门,反之亦然。从输出端推气

2021-08-07 07:17:51 185

原创 2.1组合逻辑基础210806

数字逻辑电路的组成一个或多个离散变量的输入端和输出端功能规范:描述输入输出关系时序规范:描述当输入改变时输出的延迟结点:一段导线,通过电压传递离散值变量输入结点:A,B,C输出结点:Y,Z内部结点:n1电路组件:E1,E2,E3数字电路的分类组合逻辑电路输出仅仅取决于输入的值没有记忆部件时序逻辑电路输出值取决于当前输入值也取决于之前输入的值有记忆部件组合电路的构成规则每个电路组件本身是组合电路每一个电路结点要么是一个电路的输入,要么仅连接到一

2021-08-06 17:42:42 211

原创 1.6功耗问题210806

功耗单位时间内消耗的能量数字系统的功耗包括动态功耗和静态功耗动态功耗给逻辑门电容充电消耗的能量将电容C充电到VDD所需的能量是CVDD2电路工作频率为f: 晶体开关的频率(从1到0 or从0到1)1秒钟内电容充电f / 2次(放电不需要能量,即从1到0)动态功耗:Pdynamic=1/2 C VDD2 f静态功耗逻辑门没有开关变化时,消耗的能量由静态电源电流引起,IDD(也叫漏电流)静态功耗:Pstatic = IDDVDD计算实例参考资料中国大学mooc 计

2021-08-06 16:58:22 79

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除