计算机组成原理

来源:互联网 发布:康耐视视觉软件下载 编辑:程序博客网 时间:2024/05/29 07:49


分诺依曼结构
一、计算机有五大组成部分
   运算器+控制器  (cpu)
   存储器(内存)   数据和指令就以二进制形式不加区分的放在这儿
          输入,输出设备   (键盘)

工作原理

二、内存的理解:
地址、指令和数据的关系:
都是线性结构 
数据和指令是不分的,都在一个内存当中

cpu在运行过程中,比如操作系统运行一个程序,然后将这个程序的初始地址比如main函数,编译完之后,装入到内存,形成一个进程,会有初始地址,CPU定位到这里,然后从这个地址开始,一条一条的往下执行。当然指令中一些是跳转指令,可能出现跳转。


三、指令和流水线
取指   译码  执行
好处:充分利用各部件
存在的问题:怎么确保  查资料

四、速度不匹配问题
计算机核心问题:速度不匹配问题
解决办法:
1、提升硬盘等设备的速度,和CPU匹配
2、让CPU一直工作,干活。
同步操作->异步操作
异步实例: DMA 直接内存访问
单个程序的顺序执行-> 并发(时间片的轮转)
并行可能存在的问题:对共享资源的争用,读写问题,可能 需要加锁,如果处理不好,可能出现死锁。
增加中间层 ,即缓存
两个局部性原理:
时间局部性
如果程序中某条指令一旦执行,则不久之后该条指令可能再次被执行
如果某数据被访问,则不久之后该数据可能再次被访问。
空间局部性
一旦程序访问了某个存储单元,则不久之后,其附近的存储单元也将被访问。



编程语言


静态语言和动态语言

IDEA编译器可以对静态语言做静态检查
动态语言  灵活,编译器无法检查。




语法分析,做成一棵二叉树。




代码生成:就是把一个数学运算变成了汇编语言,之后翻译成机器语言。


迭代  逐个相乘     
递归   n!=n*(n-1)!


注意:每一个函数栈帧代表了一个函数调用。函数a调用函数b,则函数a为栈帧1,函数b为栈帧2。


当n很大的时候,栈变得很长,有可能溢出。
改进的方式:尾递归。

每次发生函数调用,都有新的栈帧形成。


尾递归

注意:就是调用自身。


尾递归的优点:
1,也是需要创建栈帧,但是,可以复用同一个栈帧(原因: 只是对自身调用,并且没有其他函数运算)。上一次的计算结果作为参数,传进了当前的栈帧。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 地下城没有属强怎么办 传奇属性点错了怎么办 龙之谷技能太多怎么办 龙之谷pk卡怎么办 为什么访问别人空间没有记录怎么办 被蚊孑咬了有小红包怎么办 微信建了个打牌群找不客源怎么办 三星手机一直停在开机画面怎么办 微信猜拳被骗了怎么办 组队领金币的码怎么办 cad画图时鼠标飘怎么办 玩迷你世界很卡怎么办 玩迷你世界太卡怎么办 迷你世界太卡了怎么办 把线稿画在背景里了怎么办 蜗牛在家里跑了怎么办 小孩总是跟大人犟嘴怎么办 鹅当宠物养拉屎怎么办 金毛肚子胀很大怎么办 被小白兔咬了怎么办 仓鼠养在家里有味怎么办 被宠物仓鼠咬了怎么办 2个月小狗拉稀怎么办 家有很多小飞虫怎么办 孩子不和父母微信交流怎么办 我孩子和我顶嘴怎么办 我属龙孩子属狗怎么办 宝宝呛奶怎么办伴呼噜 离婚了欠的债务怎么办 小鸟生长发育过程壳破了怎么办 经常嗓子发炎抵抗力低下怎么办 生完孩子出虚汗怎么办 3岁宝宝抵抗力差怎么办 5岁宝宝免疫力低怎么办 狗狗后腿o型怎么办 狗狗前腿内八字怎么办 小猫腿摔瘸了怎么办会好吗 小狗的腿断了怎么办 狗后腿摔瘸了怎么办 狗狗脖子挠破了怎么办 狗狗脖子挠破化脓怎么办