
计算机体系结构
文章平均质量分 88
csshuke
这个作者很懒,什么都没留下…
展开
-
深入理解FIFO(包含有FIFO深度的解释)
FIFO: 一、先入先出队列(First Input First Output,FIFO)这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。 1.什么是FIFO? FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。 2.什么转载 2021-02-02 14:28:18 · 5408 阅读 · 0 评论 -
嵌入式Linux系统BSP的设计与实现
1. 引言 嵌入式系统由硬件环境、嵌入式操作系统和应用程序组成,硬件环境是操作系统和应用程序运行的硬件平台,它随应用的不同而有不同的要求。硬件平台的多样性是嵌入式系统的主要特点,如何使嵌入式操作系统在不同的硬件平台上有效地运行,是嵌入式系统开发中需要解决的关键问题。解决的方法是在硬件平台和操作系统之间提供硬件相关层来屏蔽这些硬件的差异,给操作系统提供统一的运行环境,这种硬件相关层就是嵌入转载 2015-07-22 15:12:24 · 569 阅读 · 0 评论 -
时钟周期/指令周期/机器周期/总线周期
单片机工作时,是一条一条地从RoM中取指令,然后一步一步地执行。单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。―个机器周期包括12个时钟周期。如果一个单片机选择了12MHZ晶振,它的时钟周期是1/12us,也是一个晶振周期。它的一个机器周期是12×(1/12)us,也就是1us。 机器周期不仅对于指令执行有着重要的意义,而且机器周期也是单片机定时器和计数器的时间基准。例如一转载 2015-09-02 16:12:10 · 1040 阅读 · 0 评论 -
Thumb mode 与 ARM mode比较
一般来说, 对于同一份C程式, 分別编译为ARM mode及Thumb mode, 有下列差异:Thumb mode的code size为ARM mode的70%Thumb mode需要使用的指令比ARM mode多40%以上在32位的存储器架构下, ARM mode的code比Thumb mode的code快40%在16位的存储器架构下, Thumb mode的code比ARM mode转载 2015-09-04 11:32:40 · 2422 阅读 · 0 评论 -
流水线、超流水线、超标量技术对比
流水线 流水线技术是一种将每条指令分解为多步,并让各步操作重叠,从而实现几条指令并行处理的技术。程序中的指令仍是一条条顺序执行,但可以预先取若干条指令,并在当前指令尚未执行完时,提前启动后续指令的另一些操作步骤。这样显然可加速一段程序的运行过程。 市场上推出的各种不同的1 6位/ 3 2位微处理器基本上都采用了流水线技术。如8 0 4 8 6和P e n t i u m转载 2015-09-04 11:28:21 · 1509 阅读 · 0 评论 -
RISC与CISC比较
RISC的设计重点在于降低由硬件执行指令的复杂度,因为软件比硬件容易提供更大的灵活性和更高的智能,因此RISC设计对编译器有更高的要求;CISC的设计则更侧重于硬件执行指令的功能,使CISC的指令变得很复杂。总之RISC对编译器的要求高,CISC强调硬件的复杂性,CPU的实现更复杂。RISC设计思想准则:1. 指令集----RISC处理器减少指令集的种类,通常一个周期一条指令,也就是说指令转载 2015-09-04 11:33:52 · 853 阅读 · 0 评论 -
冯诺依曼体系结构、哈佛体系结构与改进型哈佛结构之间的区别
1、冯·诺依曼结构 冯·诺依曼结构又称作普林斯顿体系结构(Princetionarchitecture)。 1945年,冯·诺依曼首先提出了“存储程序”的概念和二进制原理,后来,人们把利用这种概念和原理设计的电子计算机系统统称为“冯·诺依曼型结构”计算机。冯·诺依曼结构的处理器使用同一个存储器,经由同一个总线传输。 冯·诺依曼结构处理器具有以下几个特点: 必须有一个存储器;转载 2015-09-04 11:34:49 · 7696 阅读 · 0 评论 -
MIPS Spim
MIPS指令学习MIPS指令知识的学习:书本:《计算机组成原理》网络:http://gicl.cs.drexel.edu/people/sevy/architecture/MIPSRef(SPIM).htmlhttp://courses.missouristate.edu/KenVollmar/MARS/Help/SyscallHelp.html环境配置转载 2015-09-17 16:10:40 · 2283 阅读 · 0 评论 -
MIPS 通用寄存器
MIPS有32个通用寄存器($0-$31),各寄存器的功能及汇编程序中使用约定如下:下表描述32个通用寄存器的别名和用途REGISTERNAMEUSAGE$0$zero常量0(constant value 0)$1$at保留给汇编器(Reserved for转载 2015-09-17 18:41:55 · 675 阅读 · 0 评论 -
MIPS 汇编指令学习
mips的32个寄存器MIPS comes with 32 general purpose registers named $0. . . $31Registers also have symbolic names reflecting their conventional8 use:$0 $zero constant 0$1 $at used by assembler$2转载 2015-09-17 17:47:13 · 1247 阅读 · 0 评论 -
什么是Boot Loader
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://yunli.blog.51cto.com/831344/181630在嵌入式系统当中你可能经常听到 boot loader(引导加载器)这一词,boot loader是指什么呢?在我们日常经常接触的东西中是不是有与boot loader的作用或是概念相似的呢?有一点我一转载 2015-10-10 11:17:27 · 2084 阅读 · 0 评论 -
与中断相关的问题
要弄清楚以下函数的意义:OSTimeTick()在OS_CORE.C中,为时钟管理函数。OSTickISR( )在OS_CPU_A.S中以汇编的形式编写。任何计算机系统都应该有一系统时钟,UCOS系统的系统时钟是通过硬件定时器产生中断来实现的,这个中断会产生一个时钟中断服务程序,时钟中断服务程序也叫做节拍服务。各个任务运行都需要一个周期性的信号指示,即每一个任务允许运行的时转载 2015-10-13 10:29:46 · 386 阅读 · 0 评论 -
CPU流水线的探秘之旅
本文由 伯乐在线 - Zeng Lu 翻译。未经许可,禁止转载!英文出处:gamedev.net。欢迎加入翻译组。作为程序员,CPU在我们的工作中扮演了核心角色,因此了解处理器内部的工作方式对程序员来说不无裨益。CPU是如何工作的呢?一条指令执行需要多长时间?当我们讨论某个新款处理器拥有12级流水线还是18级流水线,甚至是更深的31级流水线时,这到些都意味着什么呢?转载 2016-04-27 21:39:05 · 389 阅读 · 0 评论 -
CPU流水线的探秘之旅
英文原文:A Journey Through the CPU Pipeline 编译:@deuso_ICT 作为程序员,CPU 在我们的工作中扮演了核心角色,因此了解处理器内部的工作方式对程序员来说不无裨益。 CPU 是如何工作的呢?一条指令执行需要多长时间?当我们讨论某个新款处理器拥有 12 级流水线还是 18 级流水线,甚至是更深的 31 级流水线时,这到些都意味着什转载 2016-11-01 16:45:28 · 403 阅读 · 0 评论 -
linux中断的上半部和下半部
原文地址:linux中断的上半部和下半部 作者:td1442911376http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=24690947&id=3491821 一、什么是下半部 中断是一个很霸道的东西,处理器一旦接收到中断,就会打断正在执行的代码,调用中断处理函数。如果在中断处理函数中没有禁止中断,...转载 2018-09-24 21:57:45 · 247 阅读 · 0 评论 -
计算机中减法的实现原理
这本来就是大一的时候就开始学习的,但是之后一直没再接触。一接触但有概念而没有一个清晰的过程,所以再次缕清了后记录一下博客。本文重点阐明了计算机中减法运算的实现以及反码、补码的意义。对于加法来说,计算机很容易实现,举例:8 + 6 = 14;在计算机中,也就是0000 10000000 0110.------------------------0000 11100000 1110表示...转载 2019-05-05 17:20:53 · 1722 阅读 · 0 评论 -
嵌入式系统HAL原理与BSP的实现方法
随着计算机软硬件技术的快速发展,出现了越来越多的便携设备和智能设备。这些设备中通常包含控制用的CPU和相应的操作系统;这类特殊的计算机系统叫做嵌入式实时系统。嵌入式实时系统以其简洁高效等特点在计算机、通信等领域中广泛使用。由于嵌入式实时系统应用环境的特殊性,因此在设计实现过程中存在着许多特殊问题。其中,操作系统及其他系统软件模块与硬件之间的接口形式是嵌入式实时系 统的主要特征和系统设计过程中的转载 2015-07-22 15:09:52 · 5819 阅读 · 0 评论 -
stm32存储结构& 存储器映射
问题: 1 什么是存储器映射?是怎么一个运作过程? 2 stm32总体架构 3 CM3内核结构 1 STM32系统结构 要想深刻理解STM32的存储器,需要首先知道STM32的系统结构。如Figure 1,是STM32系统结构框图。根据STM32 Reference ma转载 2015-06-27 17:08:47 · 948 阅读 · 2 评论 -
机制OR策略
Unix/Linux的接口设计有一句通用的格言“提供机制而不是策略”。区别对待机制(mechanism)和策略(policy)是Unix设计中的一大亮点。大部分的编程问题都可以被切割成两个部分:“需要提供什么功能”(机制)和“怎样实现这些功能”(策略)。如果由程序中的独立部分分别负责机制和策略的实现,那么开发软件就更容易,也更容易适应不同的需求。 开源展现在我们面前的是数转载 2014-09-20 09:38:03 · 627 阅读 · 0 评论 -
耦合
简单地说,软件工程中对象之间的耦合度就是对象之间的依赖性。指导使用和维护对象的主要问题是对象之间的多重依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间的耦合最小。有软硬件之间的耦合,还有软件各模块之间的耦合。耦合性是程序结构中各个模块之间相互关联的度量。它取决于各个模块之间的接口的复杂程度、调用模块的方式以及哪些信息通过接口。耦合可以分为以下几种,它转载 2014-09-22 09:19:57 · 1106 阅读 · 0 评论 -
静态分配内存和动态分配内存
首先,在使用动态分配内存技术前,必须明白自己在做什么,这样做与其它的方法有什么不同,特别是会产生哪些负面影响,天下没有免费的午餐。动态分配内存与静态分配内存的区别:1) 静态内存分配是在编译时完成的,不需要占用CPU资源;动态分配内存是在运行时完成的,动态内存的分配与释放需要占用CPU资源;2) 静态内存分配是在栈上分配的,动态内存是堆上分配的;3) 动态内存分配需要指针或引用数据转载 2014-09-02 15:54:41 · 814 阅读 · 0 评论 -
堆和栈的区别
堆(heap)和栈(stack)的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。转载 2014-09-02 15:50:12 · 440 阅读 · 0 评论 -
程序运行时堆区和栈区的分配
本文为转载,由孙晓明老师所编写,放在我的博客里面主要是为了自己学习方便。栈(stack):是自动分配变量,以及函数调用所使用的一些空间(所谓的局部变量),地址由高向低减少; 堆(heap):由malloc,new等分配的空间的地址,地址由低向高增长。 看看下面一段代码: #include using namespace std; voi转载 2014-09-02 15:59:53 · 595 阅读 · 0 评论 -
嵌入式Linux之我行——ARM MMU工作原理剖析
一、MMU的产生 许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成转载 2014-11-04 18:04:59 · 463 阅读 · 0 评论 -
深入了解DSP与ARM的区别与联系
这些天正准备找工作的事,对于一些理论上的,或者说表面上的知识需要梳理下,所以有空整理了这篇简陋的比较,权当从另一个侧面理解下这两款主流处理器的特点了吧! DSP:DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器转载 2015-01-28 14:17:06 · 9201 阅读 · 0 评论 -
了解DSP的体系结构
这篇其实基本上是引用 窦海霓, 朱铭锆发表在《今日电子》上的论文《DSP基本体系结构和特点》中的一些内容,主要是为了配合前一篇ARM体系结构而写,为了形成对比,加深印象。网络上很多引用这篇小论文的,但请尊重原著,注明出处。 一、DSP自身的一些优越性:DSP处理器的体系结构一直紧紧围绕着DSP算法和各种应用的不断发展而改进和优化,随着各种并行处理技术(VLIW,SIMD,超转载 2015-01-28 14:18:24 · 7063 阅读 · 0 评论 -
ARM微处理器的体系结构
这里概述的都是一些传统意义上ARM处理器的一些方面,提醒自己看了之后会想起相关知识,或是对ARM有一个总体上的概念,其实都是些简述性的总结,很多都来自网上资料或教学课件,贴在这里,方便以后随时随地的复习!ARM微处理器包括ARM7、ARM9、ARM9E、ARM10E、SecurCore、以及Intel的StrongARM、XScale和其它厂商基于ARM体系结构的处理器,除了具有ARM体系转载 2015-01-28 14:19:02 · 5536 阅读 · 0 评论 -
2440启动文件分析
头文件分为标准头文件和自定义头文件,尖括号内对应标准头文件,标准头文件是按DOC系统的环境变量include所指定的目录顺序搜索;双引号对应的为自定义头文件,搜索时,先在当前目录中搜索,其次,按环境变量include所指定的目录顺序搜索。1、汇编文件:slib.s主要功能:实现中断、禁止FIQ/IRQ、MMU Cache控制、TLB函数、处理器ID函数等。SysInit.s转载 2015-01-28 14:20:05 · 591 阅读 · 0 评论 -
嵌入式Linux之我行——ARM MMU工作原理剖析
一、MMU的产生 许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成转载 2015-03-19 14:58:02 · 385 阅读 · 0 评论 -
关于CPU Cache——程序猿需要知道的那些事
先来看一张本文所有概念的一个思维导图 为什么要有CPU Cache 随着工艺的提升最近几十年CPU的频率不断提升,而受制于制造工艺和成本限制,目前计算机的内存主要是DRAM并且在访问速度上没有质的突破。因此,CPU的处理速度和内存的访问速度差距越来越大,甚至可以达到上万倍。这种情况下传统的CPU通过FSB直连内存的方式显然就会因为内存访问的等待,导致计算资源大量闲置,降转载 2015-03-25 16:54:53 · 561 阅读 · 0 评论 -
普林斯顿结构 VS 哈佛结构
1. 冯·诺依曼结构 冯·诺依曼结构,又称为普林斯顿体系结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。取指令和取操作数都在同一总线上,通过分时复用的方式进行;缺点是在高速运行时,不能达到同时取指令和取操作数,从而形成了传输过程的瓶颈。由于程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序转载 2015-05-20 15:00:13 · 960 阅读 · 0 评论 -
机器如何区分和判定指令和数据
指令和数据都是应用上的概念。汇编语言,通过编译器编译,最后送给CPU的都是二进制数,那么CPU在一堆纷繁复杂的二进制,0110000110001中如何区分指令和数据呢? 我们需要明白以下几点: (1)每台机器的指令,其格式和代码所代表的含义都是硬性规定的,故称之为面向机器的语言,也称为机器语言。二进制,作为一种机器码,计算机可以直接识别,不需要进行任何翻译转载 2015-05-19 11:28:22 · 821 阅读 · 0 评论 -
超详细的2440中断机制分析
一直在看2440的中断处理部分,不懂的实在太多了,百度到这篇文章,实在有听君一席话,胜养十年猪的感觉啊,下面上文章:中断向量 b HandlerIRQ ;handler for IRQ interrupt很自然,因为所有的单片机都是那样,中断向量一般放在开头,用过单片机的人都会很熟悉,那就不多说了。异常服务程序这里不用中断(inter转载 2014-09-07 15:56:58 · 527 阅读 · 0 评论