计算机组成原理-CPU
¶简介
计算机组成原理系列其四,主要是针对中国大陆考研所要求的内容对计算机组成原理的知识体系进行总结和梳理,本篇内容是计算机的CPU相关内容介绍,主要包含以下几点:
CPU的功能和基本结构
指令的执行过程
CPU内的数据通路
控制器的功能和原理
指令流水线
多处理器
¶大纲
CPU的基本结构
运算器
控制器
指令的执行过程
指令周期
指令周期的数据流
指令的执行方案
CPU内的数据通路
基本结构
例题分析
控制器
微程序控制器
基本概念
编码方式
地址形成方式
格式
指令流水线
定义
基本实现
冒险和处理
结构冒险
数据冒险
控制冒险
流水线的性能指标
高级流水线技术
多处理器概念
SISD、SIMD、MIMD
硬件多线程
多核处理器
¶CPU的基本结构
CPU主要由运算器和控制器两大部分组成
Tips:CPU内部的寄存器大致分为两类:
用户可见的寄存器:通用寄存器组、PSW、PC等
用户不可见寄存器:MAR、MDR、IR等
¶运算器
运算器是计算机对数据进行加工处理的中心,其主要有:
算术逻辑单元(ALU):进行算术 ...
计算机组成原理-指令系统
¶简介
计算机组成原理系列其三,主要是针对中国大陆考研所要求的内容对计算机组成原理的知识体系进行总结和梳理,本篇内容是计算机的指令系统介绍,主要包含以下几点:
指令格式的基本内容
指令格式
寻址方式
汇编基础
CISC和RISC的基本概念
¶大纲
指令系统
指令系统简述
指令的基本格式
定长与变长指令字结构
定长操作码指令格式
拓展操作码指令格式
寻址方式(重点)
指令寻址
数据寻址
汇编基础
基础知识
常用指令
CISC和RISC
典型例题
¶指令系统简述
指令是指示计算机执行某些操作的命令。一台计算机的所有指令的集合构成该机器的指令集。指令集体系结构(ISA)规定了:指令格式、数据类型和格式、操作数的存放方式、存储空间的大小和编址方式、寻址方式etc.
¶指令的基本格式
Tips:几种字长的区别
机器字长:CPU一次能处理数据的位数,通常与CPU的寄存器位数有关。
存储字长:存储器中一个存储单元(存储地址)所存储的二进制代码的位数,即存储器中的MDR的位数。
指令字长:计算机指令字的位数。
数据字长:计算机数据存储所占用的位数。
其中:
机器字长 ...
计算机组成原理-存储系统
¶简介
计算机组成原理系列其二,主要是针对中国大陆考研所要求的内容对计算机组成原理的知识体系进行总结和梳理,本篇内容是计算机内部和外部的存储介绍,主要包含以下几点:
存储器的分类与层次化的存储器基本结构
主存与外(辅)存
主存的拓展和外存的结构
Cache
虚拟内存
¶大纲
存储系统
存储器概述
多种角度进行分类
存储器的性能指标
多层次的存储系统
主存储器(主存)
SRAM和DRAM简介
DRAM的工作原理
DRAM的刷新
DRAM的地址引脚复用
ROM
特点
类型
多模块存储器
单体多字存储器和双端口RAM
多体并行存储器
高位交叉编址(顺序方式)
低位交叉编址(交叉方式)
两者的性能分析
主存储器和CPU的连接
连接原理
主存的容量扩展
位扩展法
字扩展法
字位同时扩展法
外部存储器
磁盘存储器(机械硬盘)
磁盘的组成
磁盘的性能指标
磁盘阵列和固态硬盘
高速缓冲存储器(Cache)(重难点)
Cache的工作原理
Cache的命中率
Cache和主存的映射方式
直接映射
全相联映射
组相联映射
...
计算机组成原理-数据的表示和计算
¶简介
计算机组成原理系列其一,主要是针对中国大陆考研所要求的内容对计算机组成原理的知识体系进行总结和梳理,本篇内容主要包含以下几点:
数制的表示
计算机的内部编码
定点数和浮点数
C语言中的数据表示
数据的计算
¶大纲
重点内容会使用黑色加粗表示
数据的表示和计算
前置知识
数值转换
计算机运算速度
CPU执行时间
数制
进位计数法
r位进位计数法
不同进制数相互转换方法
定点数的表示
真值和机器数
机器数的定点表示
原码、补码、反码、移码
定点数的移位
算术位移
逻辑位移
循环位移
定点数的加减法
溢出的判别方法
浮点数
一般浮点数的表示
IEEE 754标准
C语言中的数据类型及强制类型转换
整数类型的转换
包含浮点数的转换
数据的存储和排列
大端法
小端法
拓展
乘2取整法
¶前情提要
数值转换
计算机进行数据处理时,一次存取、加工和传送的数据长度称为字,对于不同的品牌CPU 1Word(一个字)通常由一个或多个(一般是字节的整数位)字节构成
在描述存储容量和文件大小时,K、M、G、T常用2次幂表示
1 ...
搭建TG贴纸下载Robot
¶前情提要
最近回家用TG贴纸下载机器人的时候发现太大的贴纸包无法下载,无奈只好自己搭建一个,正好在网上看到一个不错的,于是正好写这篇教程记录一下
¶源码下载和必备环境
Robot源代码来源Github
Imagemagick下载
所需环境:
Node.js v8.0.0及以上
ImageMagick with webp support (Check with identify -list format | grep -i 'webp' on Linux systems)
¶开始搭建Robot
因为 Imagemagick 没有 webp 支持,可以使用identify -list format查看支持的图片格式
Imagemagick源码编译webp
1234567891011121314#先安装webpyum install libwebp -y#卸载系统自带的ImageMagickyum remove ImageMagick -y#下载ImageMagick源码包,编译wget -c https://download.imagemagick.org/archive ...
C和C++中引用
¶C的指针和C++中引用和函数参数类型
如果你说的是函数的形参,那么
123456789101112131415161718192021222324252627282930313233343536373839404142void foo(int ptr);是传值调用,比如你这么调用int a;int pValue = &a;foo(pValue);//这样的情况下,pValue的值是不能被函数foo改变的,也就是pValue肯定是指向a的但是如果你这么声明:void foo(int& ptr);则是传递引用,那么如果你函数里面:void foo(int& ptr){ ptr = NULL;}//这样调用过之后,pValue就变成了NULL。而第一种情况pValue是不能被改变的。引用是C++带来的很重要一个特性,他在很多情况下避免了使用指针。而且,在C++里面,引用是不可以捏造的,比如C你可以很容易弄一个NULL的指针,而引用这不存在NULL引用。上面的foo函数如果要用C来实现,则必须用指针的指针://void foo(int pp ...
VsCode配置C语言环境
VsCode只是一个纯文本编辑器,不是IDE(集成开发环境),不含编译器和许多其它功能,所以编译器要自己装好
第一步:在vscode官网下载软件,链接:Visual Studio Code – Code Editing. Redefined
第二步:我们需要下载一个编译器,C语言使用gcc,链接:MinGW-w64 – for 32 and 64 bit Windows download | SourceForge.net,选最新版本中的 x86_64-posix-seh 即可,网站下载可能较慢,下面给出百度网盘链接
(百度网盘链接:链接: https://pan.baidu.com/s/17FYT_Y-s-I2yajFc2MICqw 提取码: ewis )
第三步:将E:\mingw64\bin 添加到系统变量中(盘符根据自己编译器安装的位置)
以Win11为例:打开设置->系统->关于->高级系统设置->环境变量->系统变量->点击Path->编辑 -> 浏览 -> 把对应文件加入即可
第四步:
按Win+R,运行cmd(不 ...
next主题的一些设置
¶Hexo默认 主题的config优先级高于Hexo的config
基于Hexo 6.2 和hexo-theme-next-8.12.1 不同版本设置可能不一样
¶以下为next主题config设置:
¶一.网站图标设置
侧边栏链接图标设置:此版本使用的是 https://fontawesome.com/icons 图标库
在social下可以添加链接和图标 e.g Bilibili: 链接地址 || 图标库名称
tips:有些是fa fa-XXXX 有些是fab fa-XXXX
网站站点的图标在本地Hexo\public\images中,在主题favicon中设置
¶生成文章默认生成属性
categories有点类似tags,写在文章属性之中,所以需要在文章生成时添加categories属性。
编辑hexo/scaffolds/post.md,在最下面添加一行categories
123456---title: {{ title }}date: {{ date }}tags:ca ...
正则表达式
¶简介
定义
正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配
为什么使用正则
测试字符串内的模式
例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证
替换文本
可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它
基于模式匹配从字符串中提取子字符串
可以查找文档内或输入域内特定的文本
¶语法
¶普通字符
普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号
字符 描述
[ABC]
匹配 [...] 中的所有字符,例如 [aeiou] 匹配字符串 "google runoob taobao" 中所有的 e o u a 字母
[^ABC]
匹配除 [...] 中的所有字符
[A-Z]/[a-z]
[A-Z] 表示一个区间 ...
游戏叙事技巧
¶1. 冲突
冲突是游戏故事的燃料,也是游戏玩法的燃料,冲突就是故事的核心。 “故事就是冲突(的集合)”
就故事而言,冲突就是:某人想要或需要某物,但其他人或者其他无造成了障碍
冲突是 想要/但 的模式
想要是角色的行动动力,“但” 是玩家所面临的障碍背后的事务,游戏的关卡和任务就是冲突所产生的障碍的实体表现
冲突是必须的,但是冲突的规模并不一定要大,更重要的是与某个角色产生了感情上的联系(共情)
¶2. 三幕结构
开始/铺陈
(故事发生的世界介绍)冲突发生之前的人物、地点、事件
为了理解故事的任何变化,我们需要对变化之前和之后的情况都有清晰的认识(前后对比)
我们要理解主角为什么要面对冲突,开始有一个特别重要的因素是诱发事件,这是介绍主角面对主要冲突的活动、事件或行动。通过这个事件让主角意识到冲突的存在
第一幕和第二幕分割点:主角开始完全致力于解决冲突开始
中间/对抗
故事的"精髓"
第二幕从主角决定致力于解决冲突开始
第二幕包括:
兑现第一幕设置的内容
铺陈第三幕最终解决冲突的解决方法
第二幕和第三幕的分割点:主角已经克服许多困难,但仍面临 ...