ram

DDR的前世今生

旧时模样 提交于 2020-02-08 06:21:55
RAM、SRAM、DRAM、SDRAM、DDR SDRAM的演变 ROM和RAM指的都是半导体存储器, ROM是Read Only Memory的缩写,即只读存储器 ,是一种只能读出事先所存数据的固态半导体存储器,其特性是一旦储存资料就无法再将其改变或删除,资料并不会因为电源关闭而消失。 RAM是Random Access Memory的缩写 ,即随机存储器 ,随机是指数据不是线性依次存储,可以以任何顺序访问,而不管前一次访问的是哪一个位置。ROM在系统停止供电的时候仍然可以保持数据,而RAM在掉电之后就会丢失数据。 RAM又分两大类,一种为 SRAM (Static RAM,静态RAM) ,是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据,也就是说加电情况下,不需要刷新,数据不会丢失。SRAM是早期读写最快的存储设备,但也有其缺点,即它的集成度较低,相同容量的内存需要很大的体积,功耗也大;同时它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓存,二级缓存。 另一种为 DRAM (Dynamic RAM,动态RAM), DRAM 只能将数据保持很短的时间,为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新一次,如果存储单元没有被刷新的话,存储的信息就会丢失;它的速度也比SRAM慢,不过它还是比任何的ROM都要快

查看HIGHTEC编译的map文件(基于TC29x芯片)

£可爱£侵袭症+ 提交于 2020-02-07 06:46:17
本文主要介绍查看map文件中内存占用的方法,开发环境是HIGHTEC,芯片型号为TC29x。 1.起始位置 对于内存占用的详细说明起始于“BEGIN EXTENDED MAP LISTING” 2排序方式 共有两种排序方式:1.按地址;2.按名字。 3详细说明 1.具体包括每个symbol占用的内存的开始和结束位置,占用大小,隶属于哪个内存块等。 2.对于ram区来说,_HEAP_END即为占用ram的大小,也是占用ram结束的位置,此位置尽量不要超出ram区结束位置。 3.对于flash来说,_DTOR_END为结束位置。 4.结束位置 END EXTENDED MAP LISTING 5.Memory Configuration 此处显示了各个内存块的位置、大小、使用情况等。 6.显示默认ram等 来源: CSDN 作者: 野狼96 链接: https://blog.csdn.net/weixin_41543617/article/details/104193478

路由个数据包转发简介

点点圈 提交于 2020-02-04 08:21:24
第一章: 网络的核心是路由器 , 路由器的作用就是将各个网络彼此连接起来。因此,路由器需要负责不同网络之间的数据包传送。网际通信的效率取决于路由器的性能,即取决于路由器是否能以最有效的方式转发数据包。 除了转发数据包之外,路由器还提供其它服务。为满足现今的网络需求, 路由器还用于: l 确保全天候( 24x7 ,即每周 7 天,每天 24 小时)的服务可用性。为了帮助确保网络的连通性,路由器使用备用路径来防范首选路径出现故障。 l 通过有线网络和无线网络提供集成的数据、视频和语音服务。路由器使用 IP 数据包的服务质量 (QoS) 优先排序来确保实时通信,例如确保语音、视频和重要数据不出现丢失或延迟。 l 通过允许或拒绝数据包的转发来应对蠕虫、病毒和其它攻击带来的影响。 路由器内部构造: 路由器中含有许多其它计算机中常见的硬件和软件组件,包括: l CPU (中央处理器) l RAM (随机访问存储器) l ROM (只读存储器) l 操作系统( Cisco IOS ) 路由器可连接多个网络,这意味着它具有多个接口,每个接口属于不同的 IP 网络。当路由器从某个接口收到 IP 数据包时,它会提取数据包的目的 IP 地址并和路由器的路由表进行匹配然后决定从哪个接口转发此数据包。 路由器主要负责将数据包传送到本地和远程目的网络,其方法是: l 确定发送数据包的最佳路径 l

计算机组成:存储器

旧巷老猫 提交于 2020-01-29 18:25:18
存储器 存储器的分类 磁芯存储器:通过磁性材料的磁场方向来存储信息,X、Y方向通电来改变磁场方向 半导体存储器是易失的,剩下的是非易失的 Flash Memory:半导体存储器,速度比磁盘快、比存储器慢,用作U盘,也可作为高性能硬盘和主存和辅助存储器之间的缓存层(SSD) https://zhidao.baidu.com/question/72838372.html 目前市面上出现了大量的便携式存储设备,这些设备大部分是以半导体芯片为存储介质。采用半导体存储介质的优点在于可以把体积变的很小,便于携带;与硬盘类存储设备不同,它没有机械结构,所以不怕碰撞,没有机械噪声;与其它存储设备相比,耗电量很小;读写速度也非常快。半导体存储设备的主要缺点就是价格较高和容量有限。现在的半导体存储设备普遍采用了一种叫做“Flash Memory”的技术。从字面上可理解为 闪速存储器 ,它的擦写速度快是相对于EPROM而言的。Flash Memory是一种非易失型存储器,因为掉电后,芯片内的数据不会丢失,所以很适合用来作电脑的外部存储设备。它采用电擦写方式、可重复擦写10万次、擦写速度快、耗电量小。 只能说它是一种特殊的半导体存储器,非易失 trade-off:复杂的存储体系是在速度和价格之间权衡的结果 通过软硬件相结合的方式,将存储体系连接为一个整体,使得从某一级程序员来看,存储是一个高速、大容量

STM32H7 LwIP 主RAM选择 DTCM AXIRAM UDP 收发问题

倖福魔咒の 提交于 2020-01-29 04:49:48
STM32H7 LwIP 主RAM选择 DTCM AXIRAM UDP 这段时间一直在调试STM32H743,期间掉进了不少坑,最大的坑还是网络这一块,例如LwIP移植,已经有前人踩过的坑,我以为我能避免,结果自己还是踩了,耽误了不少时间。 本人以前只用过M4的芯片,有标准库,习惯了所有工程自己建,库文件自己移植,文件目录按自己的风格走,所以非常不习惯CubeMX导出来的目录结构,H7木有标准库,只能HAL库走起来。 CubeMX是个好东西,但是封装的太抽象,有时候并不是一件好事,遇到问题怼寄存器的时候,就会很有体会,另外,中断处理的过程,都封装完了,你只是重写了应用部分,新手有可能都不知道需要清除中断标志位。 回到主题,LwIP移植就不多说了,应该算是比较好搜索教程了,不知道大家有没有注意到在CubeMX中配置的时候有这么一句话“ The ETH can work only RAM is pointing at 0x24000000 ” ,今天的问题就在这里了,下边是截图。 你如果搜索H7 LwIP移植教程,大概率能搜到的是 这个帖子 ,里边有一点提示和今天要记录的问题相关,如下图,我已经用红框框起来了,当然这个帖子是非常好的。 你这样配置,它一点问题都没有,可以正常运行,UDP一定能收能发,TCP我没有测试,想必也不会有任何问题的。 那么问题来了,DTCM,闲着了,在整个芯片里

Sequential access memory(SAM) and (RAM), Flash memory

我的未来我决定 提交于 2020-01-27 06:04:54
In computing, sequential access memory ( SAM ) is a class of data storage devices that read their data in sequence. This is in contrast to random access memory (RAM) where data can be accessed in any order. Sequential access devices are usually a form of magnetic memory . While sequential access memory is read in sequence, accesses can still be made to arbitrary locations by "seeking" to the requested location. This operation, however, is often relatively inefficient (see seek time , rotational latency ). Magnetic sequential access memory is typically used for secondary storage in general

XILINX FPGA 7系之 Distribute RAM

耗尽温柔 提交于 2020-01-26 09:51:27
XILINX FPGA 7系之 CLB/LUT 可以知道 CLB 是基本的组成单元,SLICE 也是 CLB 的基本组成单元,为了更好的使用 XILINX FPGA ,有必要在深挖一下 Distribute RAM(分布式内存); XILINX 的 “ ug474_7Series_CLB.pdf ” 文档的 “Ch.2 中的 Distribute RAM ”章节有对此的详细描述 值得注意的是 XILINX CLB 的 LUT内部结构决定, Distribute RAM 只能够由 SLICEM 组成 ,SLICEL 是无法组成 Distribute RAM 的;SLICEM 构成 Distribute RAM 是通过其中的 LUT 实现的,1 个 SLICEM 是如下的结构: 可以看到 1 个 SLICEM 有 4 个 LUT,每个 LUT 都是 6 输入,所以 1 个 LUT 可以寻址空间是 2^6=64bits,那么 4 个 LUT 便可以级联组成 4x2^6=256bits,即,一个 SLICEM 最大可以包含 256bits RAM内容; 通过配置可以使用 1 个 SLICEM 实现如下 RAM: Single-Port 32 x 1-bit RAM Dual-Port 32 x 1-bit RAM Quad-Port 32 x 2-bit RAM Simple Dual

pointers size with respect to RAM, architecture

一个人想着一个人 提交于 2020-01-25 10:28:27
问题 there were many questions what determines size of a pointer. basically as a rule of thumb you can say this is processor architecture, x86 -> 4 bytes pointer x64 -> 8 bytes pointer I have seen also that some people here say it is system bus that is responsible for it, but other denied. Let's say architecture tells me what is the size of a pointer. To address 4GB of RAM you need 4,294,967,296 mappings and pointer of size 4 bytes can address 4,294,967,296 memory locations. To address 8GB of RAM

c++实验一1.2

北城余情 提交于 2020-01-25 09:57:58
2.定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类。 #include <iostream> using namespace std; enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7 }; class CPU { public: CPU(CPU_Rank newrank=P1,int newfrequency=0,float newvoltage=0.0) :rank(newrank),frequency(newfrequency),voltage(newvoltage) { cout<<"成功构造了一个CPU!"<<endl; cout<<"等级:"<<rank<<endl; cout<<"频率:"<<frequency<<endl; cout<<"电压:" <<voltage<<endl; } void run(); void stop(); ~CPU() { cout<<"成功析构了一个CPU!"<<endl; } private: CPU_Rank rank; int frequency; float voltage; }; inline void

x86 Assembly MOV instruction - Register to Register and Memory to Memory

╄→гoц情女王★ 提交于 2020-01-25 04:00:09
问题 It's known that the MOV instruction allows register to register moves while memory to memory moves are not possible. Why is this? I've read here that memory to memory moves are disallowed because it complicates the CPU and that RAM has to be in either a read mode or write mode with any given instruction. Is anyone able to expand on this? Why does RAM have to be in either read mode and write mode? How is it possible to read and write from registers but not from RAM within a single instruction?