计算机组成原理:6、高速缓冲存储器

概述

为何使用Cache

  • CPU速度太快了
  • 解决CPU空等问题,但是需要保证的是大多数的数据和指令都在cache中。
程序访问局部性原理
  • 时间局部性:当前正在使用的指令和数据,在不久的将来还会被使用。那么这些数据和指令需要放到cache。
  • 空间局部性:当前正在使用的指令或者数据的相邻的指令或者数据在不久的将来会被使用,那么把当前使用的和相邻的数据和指令放到cache。

计算机组成原理:5、主存储器

一、概述

1、基本构成

主存构成

  • 结合上图总结一下之前的数据读取的操作
    • CPU在第一个时钟周期时通过地址总线发出要取数据的地址,这个地址是指的存储单元的地址。
    • MAR收到后,经过译码器得到指定的存储单元。
    • CPU在第二个时钟周期时通过控制总线讲读指令发送到主存储器
    • 控制电路根据信令来操作读写电路
    • 将之前得到主存储器地址中的数据写入MDR
    • 通过数据总线讲MDR中的数据送入到IR或者ACC

Unity ECS:C# Job System文档总结

背景、初衷、目标

  • 出现的背景、初衷就是:天下苦无多线程久已
  • 当然这个说法要进一步的约束,首先unity中可以编写多线程代码,但是最大的问题是多线程中无法使用unity API,当然也无法修改component中的数据了。
  • 目前来看似乎这个技术就是为了能够让开发者使用multithread来操作unity API和component 数据。

优势和劣势

  • 多线程就是优势
  • 可操作的数据类型限制比较大,目前只能是blittable data type
  • 这个多线程是和unity引擎共享work thread,所以变相的侵占了引擎层的性能。

计算机组成原理:4、存储器概述

分类

  • 按照介质

  • 按照存取方式

    • 存取时间与物理地址无关(随机访问)
      • 随机存储器(RAM): 在程序执行过程中可以读写
      • 制度存储器(ROM):在程序执行过程中只能读
    • 存取时间与物理地址有关(串行访问)
      • 顺序存取存储器:磁带
      • 直接存取存储器:磁盘
  • 按照作用

    • 主存储器
      • RAM
        • 静态RAM(cache)
        • 动态RAM(内存芯片)
      • ROM(只读,但是不同的)(BIOS ROM)
        • MROM:Mask Read-Only Memory,中文全称“掩模式只读存储器”。掩模式只读存储器的内容是由半导体制造厂按用户提出的要求在芯片的生产过程中直接写入的,写入之后任何人都无法改变其内容。
        • PROM:可编程ROM
        • EPROM:可擦除可编程ROM,是一种断电后仍能保留数据的计算机储存芯片。一旦编程完成后,EPROM只能用强紫外线照射来擦除。
        • EEPROM:EEPROM(带电可擦写可编程读写存储器)是用户可更改的只读存储器
          (ROM),其可通过高于普通电压的作用来擦除和重编程(重写)。不像EPROM芯片,EEPROM不需从计算机中取出即可修改。
    • Flash Memory → SSD
    • 高速缓存存储器(Cache)
    • 辅助存储器

计算机组成原理:3、总线

概要

  • 总线(bus):是连接各个部件的信息传输线,是各个部件共享的传输介质。
  • 一条总线是总是主模块向从模块发出地址和命令,但是在分离式通信时是没有从模块的。

计算机组成原理:2、基本组成

冯·诺依曼计算机基本概念

本文中的内存结构只是课程中用到的一个特定的机器的设计,并非所有的计算机都是这样的。

  • 现在的计算机都是程序存储计算机,也就是冯诺依曼计算机。

  • 特点:

    • 计算机有五大部件组成:输入、输出、控制器(CU)、运算器(ALU)、存储器(主存、辅存)
    • 指令和数据以同等地位存于存储器中,按地址寻访。
    • 指令和数据按照二进制保存
    • 指令由操作码和地址码组成(e.g 0001 00001000,0001代表读取,00001000代表要读取 数据在内存(寄存器)中的位置)。
    • 存储程序,存储在存储器中。
    • 以运算器为中心。
  • 现代计算机:

    • ALU + CU = CPU
    • CPU + 主存(RAM\ROM\Cache(inter上cache有L1\L2\L3)) = 主机
    • 输入 + 输出 + 辅存 = IO设备
    • 主机 + IO = 计算机系统硬件
  • CU控制数据的读取+写入,操作的是存储器,还可以控制指令的执行顺序操作的是运算器。

  • 如果以运算器为中心进行硬件设计会是的运算器成为系统的瓶颈(overhead)。所以改进成以存储器为中心,这样可以是的IO设备直接和存储器关联。

计算机组成原理:1、组成原理到底研究的什么

这是对哈尔滨工业大学网络课程《计算机组成原理》的笔记

  • 计算机系统层次从程序的角度看分为下面5层:
    • 高级语言层:Java、C、C++、C#等,需要编程成机器语言
    • 汇编层:也需要编译成机器语言,符号语言和机器语言的指令基本是一一对应的。
    • 操作系统:提供机器语言与编程语言的
    • 机器语言:就是计算机所提供的语言了,根据地址从存储器读取->送往控制器译码->计算器。操作有顺序要求,并非全部是并发。
    • 微指令系统:机器指令的细化,在某个时间点上可以执行的操作放到一个微指令当中,执行上有先后顺序的放到不同的微指令中。

Unity人工智能游戏开发笔记

前言

  • 本着学习一下游戏AI开发的目的看了书,总体来说本书涉及的技术比较浅显,但是胜在面面俱到,很适合没有做过AI开发的同学。
  • 但是本书关于模糊逻辑部分非常坑,令人发指。

开发ECS style项目的思考

概述

  • 这篇文章是近期在学习Entitas时对于ECS的进一步思考
  • 其中会包含在使用ECS时需要注意的一些重要原则
  • 这些原则在使用Entitas时如何实现
  • 这篇文章不会讲Entitas的具体代码和功能,这需要每个使用者自己去看源码和demo。

游戏设计模式读书笔记:游戏循环

游戏循环

  • 游戏循环是一个游戏系统中最为关键的环节,可以说只要开发游戏就会用到这个模式,只不过它很多时候已经被集成到了引擎当中。在使用Unity引擎的过程中,可以体会到一个游戏中所有的表现都依赖于循环。
  • 不同于传统软件循环中只等待输入的情况,一个游戏循环在游玩中不断运行。每一次循环,它无阻塞地处理玩家输入,更新游戏状态,渲染游戏。它追踪时间的消耗并控制游戏的速度。
  • 有时候在某个平台开发游戏循环时,需要使用平台特有的事件循环。
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×