首页 > 系统相关 >linux 硬件 arm架构

linux 硬件 arm架构

时间:2024-09-03 08:56:50浏览次数:12  
标签:架构 SRAM RAM arm 指令 linux DRAM 数据 CPU

一.ARM:

1.时钟晶振

        在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。

2.系统复位:

        这个复位会使整个芯片的所有电路都进行复位。

3.处理器内存:

        1. 负责硬盘等硬件上的数据与CPU之间数据交换处理;

        2. 缓存系统中的临时数据。

        3. 断电后数据丢失。

4.flash:闪存

        它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。

线性访问: 有专门的地址总线和数据总线(可以像内存一样访问) norflash : 或非门 可线性访问 是一种随机访问设备,具有专用的地址和数据线(和SRAM类似),以字节的方式进行读写,允许对存储器当中的任何位置进行访问。 nandflash : 与非门 不可线性访问,没有专用的地址线,不能直接寻址,是通过一个间接的、类似I/O的接口来发送命令和地址来进行控制的,这就意味着NAND闪存只能够以页的方式进行访问。NOR 主要应用于代码存储介质中,而 NAND 则用于数据存储。

5.RAM: random access memory 随机存储                  --- 快 掉电数据丢失

        1、SRAM 静态RAM(StaticRAM/SRAM)

        不需要刷新电路,掉电丢失数据,而且一般不是行列地址复用的。
集成度比较低,不适合做容量大的内存,一般是用在处理器的缓存里面。像S3C2440的ARM9处理器里面就有4K的SRAM用来做CPU启动时用的;
SRAM内部采用的是双稳态电路的形式来存储数据;
制造相同容量的SRAM比DRAM的成本高的多;
因此目前SRAM基本上只用于CPU内部的一级缓存以及内置的二级缓存。仅有少量的网络服务器以及路由器上能够使用SRAM。
        2、DRAM 动态RAM(Dynamic RAM/DRAM)

        掉电丢失数据。每隔一段时间就要刷新一次数据,才能保存数据。而且是行列地址复用的,许多都有页模式。DRAM利用MOS管的栅电容上的电荷来存储信息,一旦掉电信息会全部的丢失,由于栅极会漏电,所以每隔一定的时间就需要一个刷新机构给这些栅电容补充电荷,并且每读出一次数据之后也需要补充电荷,这个就叫动态刷新,所以称其为动态随机存储器。由于它只使用一个MOS管来存信息,所以集成度可以很高,容量能够做的很大。SDRAM比它多了一个与CPU时钟同步。
        DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快;
从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的;
DRAM分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,这里介绍其中的一种DDR RAM。
一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0。但时间一长,代表1的电容会放电,代表0的电容会吸收电荷,这就是数据丢失的原因;刷新操作定期对电容进行检查,若电量大于满电量的1/2,则认为其代表1,并把电容充满电;若电量小于1/2,则认为其代表0,并把电容放电,藉此来保持数据的连续性。
        3、DDR RAM(Data-Rate RAM)也称作DDR SDRAM  DDR(n)

这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。
        4、SDRAM(Synchronous DRAM,同步动态随机存储器

即数据的读写需要时钟来同步。
其存储单元不是按线性排列的,是分页的。
DRAM和SDRAM由于实现工艺问题,容量较SRAM大。但是读写速度不如SRAM。
一般的嵌入式产品里面的内存都是用的SDRAM。

6.ROM: read only memory 只读存储         --- 慢 掉电数据不丢失

PROM(可编程的ROM):PROM是一次性的,早期的产品,现在已经不可能使用了;

EPROM(可擦除可编程ROM):EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器;

EEPROM:EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢;

二.CPU – ARM920T

哈佛 数据和指令分开存储 冯诺伊曼 数据和指令一起存储 D-cache和I-cache在一块

1.ALU:

算术逻辑单元(Arithmetic&Logic Unit),简称ALU
        ALU有2个单元,算术单元(Arithmetic Unit)和逻辑单元(Logic Unit),算术单元负责计算机里的所有数字操作
        作用:计算机中负责运算的组件,处理数字/逻辑的最基本单元
        算术操作:加法、减法、乘法、除法等。
        逻辑操作:AND、OR、NOT、XOR、比较等。
        数据转换:如浮点数与整数之间的转换。
        ALU通常由一系列的数字逻辑电路组成,如门电路、触发器等。这些电路协同工作,执行复杂的算术和逻辑运算。

        寄存器:

        寄存器是中央处理器内的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。

        用途
  • 可将寄存器内的数据执行算术及逻辑运算;
  • 存于寄存器内的地址可用来指向内存的某个位置,即寻址;
  • 可以用来读写数据到电脑的周边设备。
2.PC:R15         程序计数器, 默认值为0, 做自加运算, 实际指向正在运行的下下条指令 ,PC是有读写限制的 3.LR:R14         链接寄存器 保存函数的返回地址  。使用BL或BLX时,跳转指令自动把返回地址放入r14中 4.SP:R13         栈指针寄存器, 指向栈顶 增栈 减栈 满栈 空栈 满减栈

满、空栈区别:根据当前指针所在位置是否有东西。

满栈(full stack):栈指针指向最后压入栈的数据,数据入栈时,sp先减一(或加一)再入栈。

空栈(empty stack):栈指针指向下一个将要放入数据的位置,数据入栈时,先入栈sp再减一(或加一)。

 

增、减栈区别:根据堆栈的生成方向不同。

递增堆栈(ascending stack):堆栈由低地址向高地址生长。

递减堆栈(secending stack):堆栈由高地址向低地址生长。

5.CPSR:          运算结果为正、负、进借位、结果为0等标志, 中断的使能,         工作状态,工作模式         程序状态寄存器(current program status register) 用户级编程时用于存储条件码 任何处理器模式下被访问 两种运行状态:ARM状态(32位)、Thumb状态(16位),两种状态之间可任意切换 七种运行模式:usr(用户)、fiq(快速中断)、irq(外部中断)、svc(管理)、sys (系统)、abt(数据访问中止)、und(未定义指令中止) 6.SPSR:          CPSR的备份 7.Cache:          缓存

        L1 Cache
        在ARM体系结构中,L1(Level 1)缓存是位于CPU内部的第一级高速缓存,用于存储指令和数据。L1缓存被进一步分为指令缓存(I-Cache)和数据缓存(D-cache),它们分别专门用于存储指令和数据。I-Cache存储CPU执行的指令,而D-cache存储CPU读取和写入的数据。

        I-Cache和D-cache的目的是通过提供更快的数据访问速度来减少对主内存的访问。当处理器核心需要执行指令时,它会首先在I-Cache中查找,如果指令已经缓存在I-Cache中,则可以立即执行。同样,当处理器核心需要读取或写入数据时,它会首先在D-cache中查找,如果数据已经缓存在D-cache中,则可以快速访问。

8.MMU:         内存管理单元(虚拟地址到物理地址的映射)

        MMU(Memory Management Unit,内存管理单元)是一种硬件模块,用于在CPU和内存之间实现虚拟内存管理。

其主要功能是将虚拟地址转换为物理地址,同时提供访问权限的控制和缓存管理等功能。

放在整个大系统多核架构里面,每个处理器内置了MMU模块,MMU模块包含了TLB和TWU两个子模块。

9.RO是程序中的指令和常量 10: r12 用作子程序间scratch 寄存器,即 ip 寄存器; 三.SOC 处理器 片上系统。从狭义角度讲 , 它是信息 系统核心的芯片集成 , 是将系统关键部件集成在一块芯片上 ; 从广义角度 讲 , SoC 是一个微小型系统 , 如果说中央处理器 (CPU) 是大脑 , 那么 SoC 就是包括大脑、心脏、眼睛和手的系统。 AHB:高速总线 APB:低速总线 数据总线:

        传递数据信息。在 CPU 与 RAM 之间来回传送需要处理或是需要储存的数据
        双向三态形式。既可以把 CPU 的数据传送到存储器或I/O接口等其它部件,也可以将其它部件的数据传送到 CPU
        数据总线宽度:CPU 中运算器与存储器之间互连的内部总线根数,也指 CPU 一次读取的二进制位数,同时也说明字长

地址总线:

        传送地址信息。用来指定在 RAM(Random Access Memory)之中储存的数据的地址
        单向三态形式。因为地址只能从 CPU 传向外部存储器或 I/O 端口
        地址总线宽度:也叫 地址总线根数,决定了 CPU 可直接寻址的内存空间大小。例如:地址总线宽度为 16,则说明 CPU 最大可寻址的空间大小为:2 16 2 ^ {16}2 
16

控制总线:读写信号等
  • 传送控制信号和时序信号。将微处理器控制单元(Control Unit)的信号,传送到周边设备
  • 按照 传输数据的方式 划分,可以分为 串行总线 和 并行总线
  • 按照 时钟信号是否独立 划分,可以分为 同步总线 和 异步总线
1.CPU:         中央处理单元 中央处理器 (Central Processing Unit , CPU )是 一台计算机的运算核心和控制核心。   CPU 、内部存储器和输入 / 输出设备是电子计算机 三大核心部件。其功能主要是解释计算机指令以 及处理计算机软件中的数据。 处理器的既然是为了计算,那么存在的基本 功能的部件应该有: Ø ALU : Arithmetic Logical Unit Ø 寄存器: reg Ø 状态指示寄存器: PSR Ø 外部数据访问 2.MCU:         微控制器 是可编程特殊集成电路。         51单片机  3.MPU:         微处理器  指随着大规模集成电路的出现及其发展,把中央处理器、存储器、定时/计数器(timer/counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机,形成芯片级的芯片。         intel 区别:MPU只是一个处理器,需要搭配内存等非常多的其他外设才可以构成一个系统。MCU内部有处理器、内存、Flash及其他模块,仅仅需要搭配少量外设就可以构成一个系统。 4.DSP:         数字信号处理器  DSP芯片是一种快速强大的微处理器,独特之处在于它能即时处理资料。 DSP 芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,可以用来快速的实现各种数字信号处理算法。 5.FPGA:         现场可编程门阵列 -- 硬件设计语言 FPGA 就是一个可以通过编程来改变内部结构的芯片6.RISC:精简指令集 CISC:复杂指令集 RISC-V

        CISC

  计算机的指令系统比较丰富,有专用指令来完成特定的功能。因此,处理特殊任务效率较高。

  RISC

  设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来完成。因此,在RISC 机器上实现特殊功能时,效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。

标签:架构,SRAM,RAM,arm,指令,linux,DRAM,数据,CPU
From: https://blog.csdn.net/mxyzhy/article/details/141829272

相关文章

  • 科普文:软件架构Elasticsearch系列之【2024年8月30日 Shay:Elasticsearch is Open Sourc
     2021年1月,当时Elastic公司决定把Elasticsearch和Kibana的许可证从Apache2.0变更为ElasticLicense2.0(ELv2)和ServerSidePublicLicense(SSPL)双许可。尽管这两个许可证也允许源代码公开,但它们并不符合开源倡议组织(OSI)的开源定义。应对质疑:“本就是一个错误,现......
  • Jenkins - 在Rocky Linux系统下安装Jenkins和配置Agent节点
    安装Jenkins主节点下载和安装JenkinsLTS版本本机信息[root@localhost~]#cat/etc/system-releaseRockyLinuxrelease9.4(BlueOnyx)[root@localhost~]#[root@localhost~]#uname-aLinuxlocalhost.localdomain5.14.0-427.33.1.el9_4.x86_64#1SMPPREEMPT_DYNA......
  • 【Linux】Linux系统调试:如何选择strace和ltrace,全面对比
    在调试和诊断Linux程序时,strace和ltrace是两款常用的命令行工具。尽管它们都用于跟踪程序的行为,但它们的关注点和用途有所不同。本文将详细解析strace和ltrace的区别,帮助你选择适合的工具进行调试和诊断。......
  • Linux目录结构命令
    日志查询4剑客(head、tail、less、more)概述Linux日志文件大,通过cat、vi/vim进行查看,系统可能卡死、内存不足推荐使用不会占用系统太多内存的命令,查看日志:head/tail、less/more故障案例:日志查询命令使用★★★★★1)head显示文件的头几行(默认是头十行)head选项 -nn......
  • linux进程间通信——信号量(通俗易懂,看这一篇就够了)
    信号量概念特点信号量实际是一个计数器。信号量用于实现进程间的互斥与同步,而不是用于存储进程间通信数据。很多进程会访问同一资源,或者向共享内存写入一些东西,为防止争夺资源混乱。可以给一些进程上锁,让其排队等待工作原理P(sv):如果sv的值大于零,就给它减1;如果它的值为......
  • Linux日志-btmp日志
    作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。Linux进阶部分又分了很多小的部分,我们刚讲完了Linux基础软件,下面是Linux日志。Linux系统中的日志是记录系统活动和事件的重要工具,它们可以帮助管理......
  • Linux系统入门:企业服务与安全管理
    Linux系统入门:企业服务与安全管理......
  • pycharm警告 :PytestConfigWarning: Unknown config option: makers
    一、PytestConfigWarning:Unknownconfigoption:makers虽然不影响执行测试用例,但是,追求完美的我很想解决掉他! 二、找报错的单词在哪,大概率这种报错在ini文件我的makers在pytest.ini。起初是想打标签,但是标签的注解是@pytest.mark.xxx,所以就把makers改成了markers,果然没有......
  • 如何用MySQL设计一个高效的关系数据库架构
    如何用MySQL设计一个高效的关系数据库架构设计一个高效的关系数据库架构是确保数据库性能、可维护性和扩展性的关键。一个良好的数据库设计不仅能够提高查询效率,还能减少数据冗余,降低维护成本。以下将详细介绍如何用MySQL设计一个高效的关系数据库架构,包括设计原则、规范......
  • 甄选范文“论软件质量保证及其应用”,软考高级论文,系统架构设计师论文
    论文真题近年来,随着信息技术的迅猛发展和应用需求的快速更迭,传统的多层企业应用系统架构面临越来越多的挑战,已经难以适应这种变化。在这一背景下,无服务器架构(ServerlessArchitecture)逐渐流行,它强调业务逻辑由事件触发,具有短暂的生命周期,运行于无状态的轻量级容器中,并且......