计算机体系结构
文章平均质量分 79
暮色_年华
这个作者很懒,什么都没留下…
展开
-
GPU术语
流处理器是GPU最基本的处理单元,在fermi架构开始被叫做CUDA core。一个SM由多个CUDA core组成。SM还包括特殊运算单元(SFU),共享内存(shared memory),寄存器文件(Register File)和调度器(Warp Scheduler)等。可向量化循环通常是指在编程中,能够被转换为向量操作或矩阵运算的循环结构。f可以使用向量化操作的for循环。原创 2024-05-07 16:18:15 · 360 阅读 · 0 评论 -
CUDA C编程:第一个程序 向量相加&点积
包括了出错的文件名(由__FILE__宏提供)、行号(由__LINE__宏提供),以及通过cudaGetErrorString(error)获取的错误描述字符串。#define CHECK(call) 定义了一个名为CHECK的宏,它接受一个参数call,这个参数是想检查的CUDA API调用。原创 2024-05-07 13:18:06 · 416 阅读 · 0 评论 -
计算机组成原理:为什么计算机二进制运算很快?
计算机的二进制原创 2023-02-25 21:47:21 · 372 阅读 · 0 评论 -
SIMD指令集多媒体扩展
向量体系结构的这一特性简化了对不同长度向量操作的管理,同时减少了指令集的复杂度,因为不需要为每种可能的向量长度提供单独的指令。传统向量处理器设计有大规模的向量寄存器,可以存储和操作非常长的向量数据。相比之下,SIMD虽然也是基于向量运算的思想,但它更侧重于在通用处理器上实现低成本、高效能的并行处理能力,因此它操作的数据向量较短,使用的寄存器资源也相对有限。向量体系结构为了充分发挥其潜力,通常需要更高的存储器带宽,这是因为它们能够处理更长的向量,而这在很多现有计算机系统中难以满足,尤其是在考虑成本和能耗时。原创 2024-05-05 10:56:32 · 540 阅读 · 0 评论 -
向量体系结构(4):多条车道&&内存组
相比之下,CPU中的内存(通常指的是高速缓存和主内存)更多是指CPU直接交互的数据存储资源。在最基本的实现形式中,内存交错通常按照固定的模式,比如字节、字或更大的块大小,交错分布数据,使得内存访问请求可以被分散到多个物理内存模块上。:为了支持并行访问,内存组可能设计为多端口,即能够同时接受多个独立的读写请求,每个端口可以服务不同的处理器或计算单元,从而提高整体的内存访问带宽。简单的内存交错技术是一种内存管理策略,旨在通过将连续的内存地址映射到不同的内存模块(或内存bank)上,实现对内存的并行访问。原创 2024-05-03 20:39:08 · 871 阅读 · 0 评论 -
向量体系结构(3) 向量长度寄存器和向量遮罩寄存器
笔记来源《计算机体系结构 量化研究方法》第四章向量体系结构面对向量长度与处理器向量寄存器长度不匹配的情况(如VMIPS中寄存器长度为64),如何设计高效的策略来兼容和优化这类程序执行?分析如何有效处理含有条件分支(IF语句)的代码,使之能够向量化,从而扩展向量化的应用范围?解决方法就是使用向量长度寄存器(1)和 向量遮罩寄存器(2)原创 2024-05-02 16:19:04 · 926 阅读 · 0 评论 -
向量体系结构:向量执行时间
看《计算机体系结构 量化研究方法》做的笔记,接着上一篇写向量处理器工作的示例SAXPY或DAXPY循环。aX+YSAXPY代表“单精度a×X加Y”,进行单精度浮点数的运算,其中a是一个标量,X和Y是向量。运算过程是对向量X的每个元素乘以标量a,然后将结果加到对应位置的向量Y的元素上。DAXPY是“双精度a×X加Y”,双精度浮点数相比于单精度有更高的精度,占用更多的存储空间。这两个操作是衡量向量处理器性能的经典案例。使用MIPS指令集产生的汇编代码, 使用Loop循环,类似C语言中的for循环完成。原创 2024-05-02 15:32:21 · 868 阅读 · 1 评论 -
计算机体系结构:主存简单模型及寻址
主存储器分为存储体,MAR,MDR组成。MAR存放欲访问的存储单元地址存储体存放具体的二进制位数据寄存器存放要传进来或者传出去的数据存储体中一位二进制的读写存储元:如上图能完成一个二进制读写的单元储存体:由多个存储元构成红色的线并行同时控制多个存储元,绿色的线可以把储存元的信号传入或者传出...原创 2022-03-11 19:17:14 · 973 阅读 · 0 评论 -
计算机体系结构:并行度与并行体系结构的分类
共享内存的多处理器系统)中,通过创建并行执行的线程来开发数据级并行(如多线程并行处理同一数据集)或任务级并行(如多个线程执行不同的子任务)。这些任务通常在独立的计算节点上执行,相互间通信和同步相对较少,适用于处理大量独立、并行的任务或服务请求。向量处理器或图形处理器(GPU)设计为一次对一组数据(向量或数组)执行相同的单条指令,实现大规模数据级并行。利用编译器的帮助和硬件支持(如流水线、超标量架构、推测执行等技术),在单个处理器内同时执行多条指令,以减少指令执行的串行依赖,实现有限程度的数据级并行。原创 2024-04-27 17:37:49 · 197 阅读 · 0 评论 -
计算机体系结构:向量体系结构介绍
通过这种方式,程序员可以在循环中根据特定条件动态选择向量中的部分元素进行处理,无需中断向量流水线,从而保持高效的向量计算性能。第一个操作数是要载入数据的目标向量寄存器,即将从存储器中读取的双精度数据向量存储到该向量寄存器中。这种情况下,向量功能单元在执行指令时会获取标量值的一个副本,并将其与向量寄存器中的每个元素进行相应操作。尽管单次向量载入或存储可能需要较长的存储器延迟时间,但由于这些操作能够并行启动和独立执行,所以在等待某一批数据载入的同时,处理器可以继续处理已载入的数据或者启动下一批数据的载入。原创 2024-04-27 12:01:37 · 925 阅读 · 0 评论 -
深入理解计算机系统:流水线的原理
在处理器设计中,这些阶段对应于指令执行的不同步骤,如取指、译码、执行、访存和写回等。在流水线中,任务(或指令)必须按照规定的顺序依次通过各阶段,以保持系统的稳定运行。自助餐厅中仅需甜点的顾客在非流水线系统中可能更快完成,在流水线系统中,该顾客仍需遵循沙拉、主菜、甜点的顺序,即使他并不需要前两者,这会导致其个人服务时间增加,所以这种顾客花的时间会比要求更长一点。所有顾客必须按照沙拉、主菜、甜点、饮料的固定顺序依次通过各个阶段,即使个别顾客可能不需要某个阶段的食物。,即单位时间内处理的任务数(或指令数)。原创 2024-04-16 11:55:05 · 191 阅读 · 0 评论 -
超标量处理器设计:基于竞争的分支预测&&分支预测的更新
★ 继续学习体系结构的知识。接着上一讲继续写核心概念:这种方法根据每条分支指令在过去执行状况(局部历史)进行预测。为每条分支指令分配一个分支历史寄存器(BHR),记录其局部执行历史。预测机制:使用由两位饱和计数器组成的模式历史表(PHT)来捕捉每个BHR的规律。预测时,结合BHR和PHT的信息,判断分支指令未来是否跳转。优点与适用场景:对于那些行为主要取决于自身执行历史的分支指令(如循环体内部条件判断),基于局部历史的预测方法能够准确捕捉其规律,实现较好的预测效果。核心概念。原创 2024-04-14 20:38:36 · 803 阅读 · 0 评论 -
超标量处理器设计:基于全局历史的分支预测
基于局部历史的方法通常会结合分支指令的PC值(程序计数器)和GHR值来生成唯一的地址,以确保即使GHR值相同,不同的分支指令也能访问PHT中不同的饱和计数器。其中,1代表分支跳转,0代表分支未跳转。这样,即使两条分支指令的GHR值相同,由于它们的PC值不同,拼接后的地址也会不同,从而指向PHT中不同的饱和计数器。此图应展示了采用单一PHT的简化分支预测结构,直观地呈现了所有分支指令如何共用一个PHT来进行预测,以及这个PHT如何存储和更新不同分支的执行模式,以实现全局范围内分支预测的资源优化。原创 2024-04-12 15:39:44 · 703 阅读 · 0 评论 -
超标量处理器设计:两位饱和计数器&基于局部历史的分支预测
程序中有一种叫做分支指令的指令,如果在取指令阶段就可以预知本周期所取指令中是否存在分支指令,并且知道其方向(跳转/不跳转)以及目标地址,就可以从在下个周期从分支指令的目标地址开始取指,让流水线正确进行,提高处理器的执行效率。(1)静态分支预测:预测分支指令总是不执行的,处理器总是顺序地取指令。(2)动态分支预测:并不简单预测分支指令一直跳转或不跳转,而是根据分支指令在过去一段时间的执行情况来决定预测结果。原创 2024-04-12 13:13:42 · 961 阅读 · 0 评论 -
超标量处理器设计:ARM指令集
参考《超标量处理器设计》第五章。原创 2024-04-11 15:42:17 · 622 阅读 · 0 评论 -
超标量处理器设计:精简指令集MIPS指令介绍
指令长度:MIPS指令集中的所有指令(除特殊情况下的MIPS16e扩展指令外)均为固定长度的32位(即4字节),这简化了指令解码和流水线操作。指令分类:MIPS指令被划分为三种基本类型:I-Type、J-Type和R-Type。原创 2024-04-11 14:58:15 · 1014 阅读 · 0 评论 -
计算机体系结构(2)组合逻辑
下面讲decoder,multiplexer,full adder,PLA(Programmable logic Array)S是选择输入,当 S = 0 时,输出Y和输入D0相同;8-1选择器可以实现任意一个3输入的函数(FPGA就是这样构成的。解码器 n 个输入,2^n 个输出,只有一个输出为1,其余都是0。时序逻辑电路可以存储值,输出是由输入和上一个状态决定。由3个关键部分: 计算,通信,存储。可以写出最小项,然后使用PLA实现全加器的功能。不同的逻辑组合可以得到功能更复杂的块。原创 2024-04-10 11:16:39 · 228 阅读 · 0 评论 -
计算机体系结构(1) 介绍和基础
为了跟上我们组学习的进度,打好体系结构的基础,接下来我会持续的学习计算机体系结构的知识。比如,特斯拉自动驾驶的芯片,是根据汽车的工作负载设计的,可以支持机器学习推理加速,行人识别等任务。现在的体系结构,能效是一个非常非常大的制约因素。(2)energy-feeicient(低功耗),符合可持续发展的目标。GPU是一个特殊的系统,针对图形处理设计的。设计根据目标不同实现的方法也不同,设计不同的体系结构原则是相同的。以内存为中心的计算架构 和以 数据为中心的架构是不同的。可以设计更好的硬件,软件,系统,思维。原创 2024-04-08 13:25:05 · 275 阅读 · 0 评论