(书稿底稿)(C/C++)第一章:CPU基础知识 1.1.2 CPU如何获取内容
来源:互联网 发布:socket server 阿里云 编辑:程序博客网 时间:2024/05/18 11:36
1.1.2 CPU如何获取内容
就算是孙悟空也不能凭空变出东西,也需要猴毛的辅助的,CPU更是如此,执行需要的指令和数据不能凭空而来,那么这些是从哪里来的呢?
冯诺依曼体系结构的关键所在是将程序和操作数据一同存储在储存器中,而哈佛体系结构Harvard Architecture将数据和程序分离存放在不同的存储器中。
哈佛结构处理器介绍:
这个结构执行效率比较高,很多处理器采用了这种架构,如ARM10和ARM11处理器。
CPU通过控制单元(controlunit)读取指令和数据,以及在内存之间、内存和寄存器之间交换数据,如图3
图4
控制单元通过时序(timing)和控制信号(controlsignal)直接管理其他单元,控制单元知道如何提取、识别、解析、执行指令,也知道如何提取数据。控制单元将需要的指令地址发送给内存单元提取出对应的指令,然后对指令进行解码,解析成CPU可以识别、执行的形式,开始执行。
冯诺依曼计算机的指令和数据都以二进制形式存放在同一存储器中,但CPU的控制器可以识别出指令和数据;所有的编译器编译出的目标文件也是将程序的指令(代码段)和数据分段存放,以方便指令被反复调用,程序加载到内存后也是分离存放。具体见后续章节。
可以把内存看成最小单位为字节的串行内存块。计算机将这个串行内存块分为多段,一些用来存储代码,一些用来存储数据,这些段的起始地址称为基址(base address),段中的数据相对段首的距离成为偏移量(offset)。通过基址+偏移量便可以读取出数据。专门存储基址的寄存器一般称为基址寄存器,基址寄存器的值和偏移量相加就可以很方便定位到特定的数据。
- (书稿底稿)(C/C++)第一章:CPU基础知识 1.1.2 CPU如何获取内容
- (书稿底稿)(C/C++)第一章:CPU基础知识 1.1CPU和程序的执行
- 书稿底稿)(C/C++)第一章:CPU基础知识 1.2.2管道技术中的挑战
- (书稿底稿)(C/C++)第一章:CPU基础知识 1.2 管道技术
- (书稿底稿)(C/C++)第一章:CPU基础知识 1.2.5各种内存介绍
- (书稿底稿)(C/C++)第一章:CPU基础知识 1.2.3CORE内核 1.2.4多核概念
- 用C/C++获取CPU温度总结(一)
- C#实时获取CPU利用率
- CPU/Arm920T/cpu.c解读
- CPU 电源状态( C-States )
- cpu压力测试(c + shell)
- linux 计算CPU使用率(C代码)
- 如何用C#实时获取CPU利用率
- 如何用C#实时获取CPU利用率
- 如何用C#实时获取CPU利用率
- 获取CPU使用率的C代码
- C/C++ windows 获取CPU核数
- C语言获取Windows总CPU使用率.
- android 自动化测试之MonkeyRunner学习(一)
- ConcurrentHashMap实现机制
- oracle建数据库,建用户,导入dmp文件
- Android 开源框架ViewPageIndicator 和 ViewPager 仿网易新闻客户端Tab标签
- 《Linux》天影linux系列笔记一——linux常用命令详解:tail
- (书稿底稿)(C/C++)第一章:CPU基础知识 1.1.2 CPU如何获取内容
- C# 关键字ref out 的区别
- Silverlight实现和上一篇相同的登陆页面
- 我国手机使用率达 83.4% 首次超越 PC
- 《Linux》天影linux系列笔记一——linux常用命令详解:od
- The PCI Layer and Network Interface Cards
- (书稿底稿)(C/C++)第一章:CPU基础知识 1.2 管道技术
- OC 通过点击button清除缓存
- Cocos2dx 三种缓存类介绍