会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
LCAB
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
4
5
6
7
8
9
10
11
12
···
15
下一页
2023年7月
5 存储器层次结构
摘要: 到目前为止,在对系统的研究中,我们依赖于一个简单的计算机系统模型,CPU执潜令,而存能器系统为CPU存放指令和数据。在简单校型中,存体语系特是不以热的字节数组,而CPU能够在一个常数时间内访问每个存储器位置,组然花然为正露排个有效的模型,但是它没有反映现代系统实际工作的方式。 实际上,存储器系统(m
阅读全文
posted @ 2023-07-16 15:15 进击的胖虎
阅读(68)
评论(0)
推荐(0)
2023年6月
4.2 理解现代处理器
摘要: 为了理解改进性能的方法,我们需要理解现代处理器的微体系结构。由于大量的晶体管可以被集成到一块芯片上,现代微处理器采用了复杂的硬件,试图使程序性能最大化。带来的一个后果就是处理器的实际操作与通过观察机器级程序所察觉到的大相径庭。在代码级上,看上去似乎是一次执行一条指令,每条指令都包括从寄存器或内存取值
阅读全文
posted @ 2023-06-05 20:29 进击的胖虎
阅读(177)
评论(0)
推荐(0)
4.1 优化程序的方法
摘要: 消除循环的低效率 代码移动是程序优化的一种方法,包括识别要执行多次(在循环中)但是不会改变计算结果的计算,因而可以将计算移动到代码前面不会被多次求值的部分。例如将循环中strlen()函数的返回值赋给一个变量,就不用每次循环都执行一次strlen()操作。 减少过程调用 过程调用会带来开销,而且妨碍
阅读全文
posted @ 2023-06-04 16:28 进击的胖虎
阅读(75)
评论(0)
推荐(0)
4 优化程序性能
摘要: 本章将探讨如何使用不同类型的程序优化技术,使程序运行得更快。 编写高效程序需要做到以下几点:第一,我们必须选择一组适当的算法和数据结构。第二,我们必须编写出编译器能够有效优化以转换成高效可执行代码的源代码。对于这第二点,理解优化编译器的能力和局限性是很重要的。编写程序方式中看上去只是一点小小的变动,
阅读全文
posted @ 2023-06-04 15:56 进击的胖虎
阅读(20)
评论(0)
推荐(0)
3.6 流水线逻辑控制
摘要: 加载/使用冒险:在一条从内存中读出一个值的指令和一条使用该值的指令之间,流水线必须暂停一个周期。 处理ret:流水线必须暂停直到ret指令到达写回阶段。 预测错误的分支:在分支逻辑发现不应该选择分支之前,分支目标处的几条指令已经进入流水线了。必须取消这些指令,并从跳转指令后面的那条指令开始取指。 异
阅读全文
posted @ 2023-06-03 12:24 进击的胖虎
阅读(229)
评论(0)
推荐(0)
3.5 Y84-64的流水线实现
摘要: 我们终于准备好要开始本章的主要任务——设计一个流水线化的Y86-64处理器。首先,对顺序的SEQ处理器做一点小的改动,将PC的计算挪到取指阶段。然后,在各个阶段之间加上流水线寄存器。到这个时候,我们的尝试还不能正确处理各种数据和控制相关。不过,做一些修改,就能实现我们的目标——一个高效的、流水线化的
阅读全文
posted @ 2023-06-02 11:19 进击的胖虎
阅读(79)
评论(0)
推荐(0)
2023年5月
3.4 流水线的通用原理
摘要: 流水线化的一个重要特性就是提高了系统的吞吐量,不过会轻微增加延迟。 计算流水线 在现代逻辑设计中,电路延迟以微微秒或皮秒,也就是10的负12次方秒为单位进行计算。假设将系统执行的计算分为三个阶段,每个阶段需要100ps,然后在每个阶段之间放上流水线寄存器,流水线寄存器的延迟为20ps,这样每条指令都
阅读全文
posted @ 2023-05-29 15:34 进击的胖虎
阅读(125)
评论(0)
推荐(0)
3.3 Y86-64的顺序实现
摘要: 将处理组织成阶段 为了实现流水线处理机制,要将指令组织成某个特殊的阶段序列,所有的指令遵循统一的序列,不同阶段放在不同硬件上进行处理。下面是对各阶段的简述。 取指(fetch):取指阶段从内存读取指令字节,地址为程序计数器(PC)的值。从指令中抽取出指令指示符字节的两个四位部分,称为icode(指令
阅读全文
posted @ 2023-05-28 15:53 进击的胖虎
阅读(245)
评论(0)
推荐(0)
3.2 逻辑设计和硬件控制语言HCL
摘要: 在硬件设计中,用电子电路来计算对位进行运算的函数,以及在各种存储器单元中存储位。大多数现代电路技术都是用信号线上的高电压或低电压来表示不同的位值。在当前的技术中,逻辑1是用1.0伏特左右的高电压表示的,而逻辑0是用0.0伏特左右的低电压表示的。要实现一个数字系统需要三个主要的组成部分:计算对位进行操
阅读全文
posted @ 2023-05-27 10:19 进击的胖虎
阅读(191)
评论(0)
推荐(0)
3.1 Y86-64指令集体系结构
摘要: 程序员可见的状态 这里的程序员即可以是用汇编代码写程序的人,也可以是产生机器级代码的编译器。程序员可见的状态如下,有15个程序寄存器(%rax,%rbx等),三个一位的条件(ZF,OF,SF) ,程序计数器PC,内存,状态码Stat(表明程序执行的总体状态,指示正常运行还是出现某种异常)。 指令编码
阅读全文
posted @ 2023-05-25 10:43 进击的胖虎
阅读(106)
评论(0)
推荐(0)
上一页
1
···
4
5
6
7
8
9
10
11
12
···
15
下一页
公告