计算机组成原理 Principles of Computer Composition
Overview
This course is really hard-core and difficult. We mainly learned about:
-
von Neumann Computer Architecture
-
Arithmetic Unit: Single-Bus, Dual-Bus, Triple-Bus
-
Memory Hierarchy
-
CPU
一、von Neumann Computer Architecture
Modern computers are designed according to the von Neumann architecture.
See in Introduction to Computer.
二、Arithmetic Unit
The main function of computer is computation. And that's what the arithmetic unit is for.
Arithmetic Unit consists of ALU(Arithmetic Logic Unit), registers, buffers, etc.
There are three types of organizations for the unit:
1) Single-Bus Organization
Only one operand can be on the bus at the same time.
The calculation speed is slow, but the control circuit is simple.
2) Double-Bus Organization
Two operands can enter the ALU at the same time.
3) Triple-Bus Organization
Two inpu of the ALU are respectively connected to a bus, and the output of the ALU is connected to the third bus.
三、Memory Hierarchy
1. Hierarchy
The memory hierarchy of modern computers has 4 layers:
- External Storage Devide: Harddisk
- Main Memory: Store Running Processes
- Cache
- Registers in CPU
2. Cache
We use cache to solve the problem of speed mismatch between CPU and Main Memory.
The computing speed of the CPU is too fast, and the main memory cannot keep up with it.
To solve this problem, we can place a high-speed memory between them to store buffered data in advance.
The process of CPU reading a word from main memory:
st=>start: start reading
op1=>operation: transfer word from cache to CPU
op2=>operation: transfer word from main memory to CPU
op3=>operation: sends entire data block containing word to cache
cond=>condition: is in cache
e=>end: finished
st->cond
cond(yes)->op1->e
cond(no)->op2->op3->e
四、CPU
CPU is the core component of the computer.
It consists of composed of arithmetic unit and controller
1. Datapath of CPU Model
2. Controller
We learned about the microprogram controller.
We split a machine instruction into several micro instructions.
Each micro instruction contains multiple micro-operations, such as flipping the enable signal of ALU.
The task of the microprogram controller is to read different microinstructions according to the machine instructions and perform corresponding operations.
五、Curriculum Design
We were asked to use Proteus to implement a simple CPU.
We need to design the clock signal generator, microprogram controller, arithmetic unit, etc.
This simple CPU can implement 8 kinds of instructions, such as arithmetic operations and storage, access, conditional transfer, etc.
Datapath of the CPU:
原文地址:https://www.cnblogs.com/danielwong2021/p/15271296.html
- PHP开发过程的那些坑(一) ——对象拷贝
- PHP开发过程的那些坑(二) ——PHP empty函数
- Thinking in SQL系列之数据挖掘Apriori关联分析再现啤酒尿布神话
- PHP开发过程的那些坑(三) ——PHParray_shift函数
- CSS3弹性盒布局
- iBatis.Net(4):DataMapper API
- PHP开发过程的那些坑(四) ——PDO bindParam函数
- iBatis.Net(3):创建SqlMapper实例
- PHP开发过程的那些坑(五) ——PHP的empty()
- iBatis.Net(2):基本概念与配置
- ASP.NET Web API中的依赖注入什么是依赖注入ASP.NET Web API依赖解析器使用Unity解析依赖配置依赖解析
- 解决Entity Framework查询匿名对象后的跨域访问的一种方式
- WebSocket在ASP.NET MVC4中的简单实现
- 在ASP.NET MVC中使用Unity进行依赖注入的三种方式第一种方法第二种方法第三种方法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php 中的信号处理操作实例详解
- php多进程中的阻塞与非阻塞操作实例分析
- 解决android viewmodel 数据刷新异常的问题
- Python装饰器简单用法实例小结
- 解决Python一行输出不显示的问题
- 浅谈python中str字符串和unicode对象字符串的拼接问题
- android利用剪切板传递数据
- gearman中worker常驻后台,导致MySQL server has gone away的解决方法
- php 使用html5 XHR2实现上传文件与进度显示功能示例
- php高性能日志系统 seaslog 的安装与使用方法分析
- PHP实现文件上传后台处理脚本
- 让whoops帮我们告别ThinkPHP6的异常页面
- PHP实现文件上传操作和封装
- gearman中任务的优先级和返回状态实例分析
- php实现文件上传基本验证