精华内容
参与话题
问答
  • RAM的理解

    万次阅读 多人点赞 2017-12-24 11:56:23
    一、RAM的定义 RAM :随机存取存储器(random access memory,RAM)又称作“随机存储器”。 是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在...

    一、RAM的定义

    RAM :随机存取存储器(random access memory,RAM)又称作“随机存储器”。

    是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。

    在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器[或者内存储器和外存储器,主存储器简称内存。内存在电脑中起着举足轻重的作用。内存一般采用半导体存储单元。

    因为RAM是内存其中最重要的存储器,所以通常我们直接称之为内存。

    二、RAM的特点

    存储速度:

    RAM芯片的存储速度比ROM芯片的速度快,但比Cache的速度慢

    优缺点:

    静态RAM是靠双稳态触发器来记忆信息的;动态RAM是靠MOS电路中的栅极电容来记忆信息的。由于电容上的电荷会泄漏,需要定时给与补充,所以动态RAM需要设置刷新电路。但动态RAM比静态RAM集成度高、功耗低,从而成本也低,适于作大容量存储器。所以主内存通常采用动态RAM,而高速缓冲存储器(Cache)则使用静态RAM。另外,内存还应用于显卡声卡及CMOS等设备中,用于充当设备缓存或保存固定的程序及数据。


    三、RAM的分类
     1) 静态RAM(Static RAM / SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。  
     2) 动态RAM(Dynamic RAM / DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。  
     DRAM分为很多种,常见的主要有FPRAM / FastPage、EDORAM、SDRAMDDR RAM、RDRAM、SGRAM以及WRAM等。
    SDRAM(Synchronous Dynamic Random Access Memory):为同步动态随机存取内存。1996年底,SDRAM开始在系统中出现,不同于早期的技术,SDRAM是为了与中央处理器的计时同步化所设计,这使得内存控制器能够掌握准备所要求的数据所需的准确时钟周期,因此中央处理器从此不需要延后下一次的数据存取。举例而言,PC66 SDRAM以66MHz的速度运作;PC100 SDRAM以100MHz的速度运作;PC133 SDRAM以133MHz的速度运作,以此类推。所以SDRAM也可以称之为Single Data Rate(单倍数据传输率)RAM
    DDR SDRAM(Double Data Rate SDRAM):为双信道同步动态随机存取内存,是新一代的SDRAM技术。DDR内存芯片的数据预取宽度(Prefetch)为2 bit(SDRAM的两倍)。举例而言,使用DDR SDRAM时,一个100MHZ或 133MHz内存总线clock rate能够达到200MHz或266MHz的实际数据传输速率。
    DDR2 SDRAM(Double Data Rate Two SDRAM):为双信道两次同步动态随机存取内存。DDR2内存Prefetch又再度提升至4 bit(DDR的两倍),即每次会存取4 bits为一组的数据,以两倍的频率输出至Data Bus以核心速度200MHz为例,数据传输速度DDR可达400MT/s,DDR2则可达800MT/s,数据存取效率倍增。
    DDR3 SDRAM(Double Data Rate Three SDRAM):为双信道三次同步动态随机存取内存。DDR3内存Prefetch提升至8 bit,即每次会存取8 bits为一组的数据。运算频率介于 800MHz -1600MHz之间。此外,DDR3 的规格要求将电压控制在1.5V,较 DDR2的1.8V更为省电。DDR3并新增 thermal sensor 的功能,为了要确保所存贮的数据不遗失,因此必须要定期 self-refresh ,不过为了节省电力,DDR3采用 ASR(Automatic self-refresh) 的设计,以确保在数据不遗失情况下,尽量减少更新频率来降低温度。

    物理Bank


    芯片位宽


    逻辑Bank与芯片位宽

    SDRAM的内部是一个存储阵列,因为如果是管道式存储(就如排队买票),就很难做到随机访问了  
    阵列就如同表格一样,将数据“填”进去,你可以把它想象成一张表格。和表格的检索原理一样,先指定一个行(Row),再指定一个列(Column),我们就可以准确地找到所需要的单元格,这就是内存芯片寻址的基本原理  
    对于内存,这个单元格可称为存储单元,那么这个表格(存储阵列)叫什么呢?它就是逻辑Bank(Logical Bank,下文简称L-Bank)


    由于技术成本等原因,不可能只做一个全容量的L-Bank,而且最重要的是,由于SDRAM的工作原理限制,单一的L-Bank将会造成非常严重的寻址冲突,大幅降低内存效率。  
    所以人们在SDRAM内部分割成多个L-Bank,较早以前是两个,目前基本都是4个,这也是SDRAM规范中的最高L-Bank数量。到了RDRAM则最多达到了32个,在最新DDR-Ⅱ的标准中,L-Bank的数量也提高到了8个  
     这样,在进行寻址时就要先确定是哪个L-Bank,然后在这个选定的L-Bank中选择相应的行与列进行寻址
    可见对内存的访问,一次只能是一个L-Bank工作,而每次与北桥交换的数据就是L-Bank存储阵列中一个“存储单元”的容量。那么这个存储单元的容量就是芯片的位宽(也是L-Bank的位宽

    内存芯片的容量

    存储单元数量 = 行数 × 列数(得到一个L-Bank的存储单元数量)× L-Bank的数量


    SDRAM芯片的操作

    1.寻址

    1、首先,我们知道内存控制器要先确定一个P-Bank的芯片集合,然后才对这集合中的芯片进行寻址操作。因此要有一个片选的信号,它一次选择一个P-Bank的芯片集(根据位宽的不同,数量也不同)。被选中的芯片将同时接收或读取数据,所以要有一个片选信号。
    2、接下来是对所有被选中的芯片进行统一的L-Bank的寻址目前SDRAM中L-Bank的数量最高为4个,所以需要两个L-Bank地址信号2的2次方=4)。
    3、最后就是对被选中的芯片进行统一的行/列(存储单元)寻址。地址线数量要根据芯片的组织结构分别设计了。但在相同容量下,行数不变,只有列数会根据位宽的而变化,位宽越大,列数越少,因为所需的存储单元减少了。
    4、找到了存储单元后,被选中的芯片就要进行统一的数据传输,那么肯定要有与位宽相同数量的数据I/O通道才行,所以肯定要有相应数量的数据线引脚。SDRAM的基本信号线如下图所示:


    在介绍其他过程之前先认识一下SDRAM的内部结构:

    芯片初始化


    行有效时序图

    初始化完成后,要想对一个L-Bank中的阵列进行寻址,首先就要确定行(Row),使之处于活动状态(Active),然后再确定列。虽然之前要进行片选L-Bank的定址,但它们与行有效可以同时进行。
    从图中可以看出,在CS#L-Bank定址的同时,RAS(Row Address Strobe,行地址选通脉冲)也处于有效状态。此时An地址线则发送具体的行地址。如图中是A0-A11,共有12个地址线,由于是二进制表示法,所以共有4096个行(2的12次方=4096),A0-A11的不同数值就确定了具体的行地址
    由于行有效的同时也是相应L-Bank有效,所以行有效也可称为L-Bank有效

    列读写

    行地址确定之后,就要对列地址进行寻址了。但是,地址线仍然是行地址所用的A0-A11(本例)。没错,在SDRAM中,行地址与列地址线是共用的
     不过,读/写的命令是怎么发出的呢?其实没有一个信号是发送读或写的明确命令的,而是通过芯片的可写状态的控制来达到读/写的目的。显然WE#信号就是一个关键。WE#无效时,当然就是读取命令

    列寻址信号与读写命令是同时发出的。虽然地址线与行寻址共用,但CAS(Column Address Strobe,列地址选通脉冲)信号则可以区分开行与列寻址的不同,配合A0-A9,A11(本例)来确定具体的列地址。

    数据输出(读)

    在选定列地址后,就已经确定了具体的存储单元,剩下的事情就是数据通过数据I/O通道(DQ)输出到内存总线上了。
      但是CAS发出之后,仍要经过一定的时间才能有数据输出,从CAS与读取命令发出到第一笔数据输出的这段时间,被定义为CL(CAS Latency,CAS潜伏期)
      由于CL只在读取时出现,所以CL又被称为读取潜伏期(RL,Read Latency)
      CL的单位与tRCD一样,为时钟周期数,具体耗时由时钟频率决定。

    数据输入(写)

    数据写入的操作也是在tRCD之后进行,但此时没有了CL(记住,CL只出现在读取操作中),行寻址与列寻址的时序图和上文一样,只是在列寻址时,WE#为有效状态

    突发长度

    突发(Burst)是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输所涉及到存储单元(列)的数量就是突发长度(Burst Lengths,简称BL)
     
    在目前,由于内存控制器一次读/写P-Bank位宽的数据,也就是8个字节,但是在现实中小于8个字节的数据很少见,所以一般都要经过多个周期进行数据的传输。
    上文讲到的读/写操作,都是一次对一个存储单元进行寻址,如果要连续读/写就还要对当前存储单元的下一个单元进行寻址,也就是要不断的发送列地址读/写命令(行地址不变,所以不用再对行寻址)。
    虽然由于读/写延迟相同可以让数据的传输在I/O端是连续的,但它占用了大量的内存控制资源,在数据进行连续传输时无法输入新的命令,效率很低(早期的FPE/EDO内存就是以这种方式进行连续的数据传输)。
    为此,人们开发了突发传输技术,只要指定起始列地址突发长度,内存就会依次地自动对后面相应数量的存储单元进行读/写操作而不再需要控制器连续地提供列地址。
    这样,除了第一笔数据的传输需要若干个周期(主要是之前的延迟,一般的是tRCD+CL)外,其后每个数据只需一个周期的即可获得。
    在很多北桥芯片的介绍中都有类似于X-1-1-1的字样,就是指这个意思,其中的X代表就代表第一笔数据所用的周期数

    数据掩码

    在讲述读/写操作时,我们谈到了突发长度。如果BL=4,那么也就是说一次就传送4×64bit的数据。但是,如果其中的第二笔数据是不需要的,怎么办?还都传输吗?
     为了屏蔽不需要的数据,人们采用了数据掩码(Data I/O Mask,简称DQM)技术。通过DQM,内存可以控制I/O端口取消哪些输出或输入的数据。这里需要强调的是,在读取时,被屏蔽的数据仍然会从存储体传出,只是在“掩码逻辑单元”处被屏蔽
    DQM由北桥控制,为了精确屏蔽一个P-Bank位宽中的每个字节,每个DIMM有8个DQM信号线,每个信号针对一个字节。这样,对于4bit位宽芯片,两个芯片共用一个DQM信号线,对于8bit位宽芯片,一个芯片占用一个DQM信号,而对于16bit位宽芯片,则需要两个DQM引脚。
    SDRAM官方规定,读取时DQM发出两个时钟周期后生效,而在写入时,DQM与写入命令一样是立即成效。 


    展开全文
  • RAM与ROM的区别与理解

    万次阅读 多人点赞 2018-06-10 10:07:07
    随机存取存储器(Random Access Memory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介...

           随机存取存储器(Random Access Memory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。当电源关闭时RAM不能保留数据。如果需要保存数据,就必须把它们写入一个长期的存储设备中(例如硬盘)。RAM和ROM相比,两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM不会自动消失,可以长时间断电保存。

           只读存储器(Read Only Memory,ROM)。ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。ROM所存数据稳定,断电后所存数据也不会改变;

           一般来说会比较难以理解RAM与ROM和平时所说的运行内存和硬盘容量有什么关系,其实从一般意义上来说是一样的,但从计算机和手机的角度来说又有一些区别。

           从电脑来说一般比较好理解,RAM就是我们平时所说的运行内存,它的确是随时可读写的。因为CPU处理的数据都是以运行内存为中介的。断电后信息是不保存的。那么对于ROM来说,是不是就是硬盘呢?不是说ROM只可以读吗?硬盘却是可以修改的。的确,必须明确一点,RAM与ROM都是内存,而硬盘是外存,所以ROM不等于硬盘。计算机中的ROM主要是用来存储一些系统信息,或者启动程序BIOS程序,这些都是非常重要的,只可以读一般不能修改,断电也不会消失。

          那么对于手机来说呢?其实很多困惑都来自于手机厂商的宣传信息的误导。因为一般手机厂商都会说有多少G的RAM,多少G的ROM;在手机里面,RAM就是跟电脑一样的运行内存一样;而ROM就不一样了,你想想看,如果只用来存储一些系统信息和开机引导程序,需要几个G的容量?其实手机的ROM就跟硬盘挂上钩了,手机中的ROM有一部分用来存储系统信息,还有一些装机软件,剩余的大部分容量都是就是拿来作为硬盘用的,可读可写。

    以上就是关于ROM,RAM,运行内存,硬盘的一些区别

    展开全文
  • Single Port RAM Synchronous Read/Write 这篇博文介绍单端口同步读写RAM,在之前的博文中,也介绍过类似的设计:【Verilog HDL 训练】第 13 天(存储器、SRAM) 在这篇博文中,与知识星球里的伙伴们交流,真是让...

    Single Port RAM  Synchronous Read/Write

    这篇博文介绍单端口同步读写RAM,在之前的博文中,也介绍过类似的设计:【Verilog HDL 训练】第 13 天(存储器、SRAM)

    在这篇博文中,与知识星球里的伙伴们交流,真是让我受益匪浅呀。


    单端口同步读写RAM的设计没什么可描述的,代码不麻烦,看起来最为清晰:

    输入输出:

    //--------------Input Ports----------------------- 
    input                  clk         ;
    input [ADDR_WIDTH-1:0] address     ;
    input                  cs          ;
    input                  we          ;
    input                  oe          ; 

    //--------------Inout Ports----------------------- 
    inout [DATA_WIDTH-1:0]  data       ;

    对RAM的读写相对于时钟clk同步,当输入条件(cs、we、oe)满足的情况下,对inout端口 data同步读写。


    给出Verilog HDL描述文件:

    `timescale 1ns / 1ps
    //
    // Engineer: Jiashan Lee
    // Create Date: 2019/05/21 15:46:55
    // Design Name: ram_sp_sr_sw
    // Module Name: ram_sp_sr_sw
    // Function    : Synchronous read write RAM 
    // Revision 0.01 - File Created
    // Additional Comments:
    //
    
    module ram_sp_sr_sw (
    clk         , // Clock Input
    address     , // Address Input
    data        , // Data bi-directional
    cs          , // Chip Select
    we          , // Write Enable/Read Enable
    oe            // Output Enable
    ); 
    
    parameter DATA_WIDTH = 8 ;
    parameter ADDR_WIDTH = 8 ;
    parameter RAM_DEPTH = 1 << ADDR_WIDTH;
    
    //--------------Input Ports----------------------- 
    input                  clk         ;
    input [ADDR_WIDTH-1:0] address     ;
    input                  cs          ;
    input                  we          ;
    input                  oe          ; 
    
    //--------------Inout Ports----------------------- 
    inout [DATA_WIDTH-1:0]  data       ;
    
    //--------------Internal variables---------------- 
    reg [DATA_WIDTH-1:0] data_out ;
    reg [DATA_WIDTH-1:0] mem [0:RAM_DEPTH-1];
    reg                  oe_r;
    
    
    //initialization
    
    // synopsys_translate_off
    integer i;
    initial begin
        for(i=0; i < RAM_DEPTH; i = i + 1) begin
            mem[i] = 8'h00;
        end
    end
    // synopsys_translate_on
    
    
    
    
    
    //--------------Code Starts Here------------------ 
    
    // Tri-State Buffer control 
    // output : When we = 0, oe = 1, cs = 1
    assign data = (cs && oe && !we) ? data_out : 8'bz; 
    
    // Memory Write Block 
    // Write Operation : When we = 1, cs = 1
    always @ (posedge clk)
    begin : MEM_WRITE
       if ( cs && we ) begin
           mem[address] <= data;
       end
    end
    
    // Memory Read Block 
    // Read Operation : When we = 0, oe = 1, cs = 1
    always @ (posedge clk)
    begin : MEM_READ
      if (cs && !we && oe) begin
        data_out <= mem[address];
    /*     oe_r <= 1;
      end else begin
        oe_r <= 0; */
      end
    end
    
    endmodule // End of Module ram_sp_sr_sw

    且对这个RAM设计进行功能仿真,验证功能是否正确:

    测试代码:

    `timescale 1ns / 1ps
    //
    // Create Date: 2019/05/21 16:00:12
    // Design Name: 
    // Module Name: ram_sp_sr_sw_tb
    //
    
    
    module ram_sp_sr_sw_tb(
    
        );
    	
    	reg clk;          // Clock Input
    	reg [7 : 0] address;      // address Input
    	wire [7 : 0] data;         // Data bi-directional
    	reg cs;           // Chip Select
    	reg we;          // Write Enable/Read Enable
    	reg oe;            // Output Enable
    	
    	reg [7 : 0] data_in;
    	assign data = (cs && we && !oe) ? data_in : 8'dz;
    	
    	integer i;
    	
    	initial begin
    		clk = 0;
    		forever 
    			#2 clk = ~clk;
    	end
    	
    	
    	initial begin
    	
    		cs = 1'b0;
    		we = 1'b0;
    		oe = 1'b0;
    		address = 8'd0;
    		data_in = 8'h00;
    		#20
    		@(negedge clk) begin//read
    			cs = 1'b1;
    			oe = 1'b1;
    		end
    		
    		for (i = 0; i < 256; i = i + 1) begin
    			@(negedge clk)
    				address = i;
    		end
    		
    		@(negedge clk) begin//write
    			we = 1'b1;
    			oe = 1'b0;
    		end
    		
    		for (i = 0; i < 256; i = i + 1) begin
    			@(negedge clk) begin
    				address = i;
    				//此处如何给输入数据?
    				data_in = data_in  + 1;
    			end
    		end
    		
    		@(negedge clk) begin//read
    			we = 1'b0;
    			oe = 1'b1;
    		end
    		
    		for (i = 0; i < 256; i = i + 1) begin
    			@(negedge clk)
    				address = i;
    		end
    		
    		@(negedge clk)
    			cs = 1'b0;
    		 //#100 $finish;
    		#100 $stop;
    
    	
    	
    	
    	
    	
    	end
    	
    	
    	ram_sp_sr_sw  u_ram(
    		.clk(clk)         , // Clock Input
    		.address(address)     , // address Input
    		.data(data)        , // Data bi-directional
    		.cs(cs)          , // Chip Select
    		.we(we)          , // Write Enable/Read Enable
    		.oe(oe)            // Output Enable
    	);
    	
    	
    endmodule
    

     

    由于内存初始化为0,所以刚开始读出来的数据肯定为0:

    读完256个初识数据后,开始对此RAM写入数据(地址0出写1,地址1出写2,类推,最后在地址255处写0):

    写完数据之后,我们又开始读数据,看看写入的数据是否正确:

    可见,在地址0处读出的数据为1,地址1处读出数据为2,类推,最后再地址255处读出数据为0.

    读出数据与写入数据一致,我们的设计没有问题。

    最后给出RTL原理图:


    参考链接:

    Single Port RAM Synchronous Read/Write

    【Verilog HDL 训练】第 13 天(存储器、SRAM)

     

     

     

    展开全文
  • RAM的分类

    万次阅读 2018-07-30 16:05:30
    RAM的分类 RAM(Random Access Memory)随机存储器,我们在日常生活中经常会听到RAM这个单词。比如某米手机6G RAM+64G ROM,某为手机6G RAM+128G ROM等。对手机比较了解的人都知道RAM是代表运行内存,运行内存越大...

    ##RAM的分类##
    RAM(Random Access Memory)随机存储器,我们在日常生活中经常会听到RAM这个单词。比如某米手机6G RAM+64G ROM,某为手机6G RAM+128G ROM等。对手机比较了解的人都知道RAM是代表运行内存,运行内存越大,可以打开的应用就越多,不会卡。RAM有一下两个特点:

    1. RAM可以认为是内存,程序运行过程中用来存储指令和变量。读写速度非常快
    2. RAM 是易失性的存储器,断电后所有数据将会丢失。

    ###什么是随机###
    RAM也称随机存储器,那么随机是什么意思?所谓随机,指的是当存储器中的数据被读取或写入时,所需要的时间与这段信息所在的位置无关(任何位置读写速度一样)。这里拓展一下随机存取和直接存取的区别,数据在存储器的存取方式可以分为随机存取和直接存取。

    1、随机存取(有时亦称直接访问)代表同一时间访问一组序列中的一个随意组件。反之则称循序访问,即是需要更多时间去访问一个远程组件。随机存取存储器的基本结构可分为三个部分:存储矩阵,地址译码器,读写电路。
    2、直接存取,访问时读写不见先直接指向一个小区域,再在该区域内 顺序查找,访问时间与数据位置有关( 磁盘)

    这里写图片描述

    ###DRAM###
    DRAM(Dynamic Random Access Memory,动态随机存储器)是最为常见的系统内存。我们使用的电脑和手机的运行内存都是DRAM。DRAM使用电容存储,DRAM 只能将数据保持很短的时间。为了保持数据,所以必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。数据的存储,请参考数据存储模型。我们知道,电容中的电荷很容易变化,所以随着时间推移,电容中的电荷数会增加或减少,为了确保数据不会丢失,DRAM每隔一段时间会给电容刷新(充电或放电)。动态:定时刷新数据
    这里写图片描述
    ###SRAM###
    SRAM(Static Random Access Memory,静态随机存储器),它是一种具有静止存取功能的内存,其内部机构比DRAM复杂,可以做到不刷新电路即能保存它内部存储的数据。静态:不需要刷新

    对比DRAM的优缺点:

    1. 优点:速度快,不必配合内存刷新电路,可提高整体的工作效率。
    2. 缺点:集成度低,功耗较大,相同的容量体积较大,而且价格较高,少量用于关键性系统以提高效率

    这里写图片描述

    ###DRAM和SRAM对比###
    存储单元结构不同导致了RAM容量的不同。一个DRAM存储单元大约需要一个晶体管和一个电容(不包括行读出放大器等),而一个SRAM存储单元大约需要六个晶体管。DRAM和SDRAM由于实现工艺问题,容量较SRAM大,但是读写速度不如SRAM。一个是静态的,一个是动态的,静态的是用的双稳态触发器来保存信息,而动态的是用电子,要不时的刷新来保持。

    SRAM其实是一种非常重要的存储器,它的用途广泛。SRAM的速度非常快,在快速读取和刷新时能够保持数据完整性。SRAM内部采用的是双稳态电路的形式来存储数据。所以SRAM的电路结构非常复杂。制造相同容量的SRAM比DRAM的成本高的多。正因为如此,才使其发展受到了限制。因此目前SRAM基本上只用于CPU内部的一级缓存以及内置的二级缓存,仅有少量的网络服务器以及路由器上能够使用SRAM。

    ###SDRAM###
    SDRAM:(Synchronous Dynamic Random Access Memory,同步动态随机存取存储器),为DRAM的一种,同步是指Memory工作需要同步时钟,内部命令的发送与数据的传输都以时钟为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是由指定地址进行数据读写。
    ###DDR SDRAM###
    DDR SDRAM(Double Data Rate SDRAM):为双信道同步动态随机存取内存,是新一代的SDRAM技术。DDR内存芯片的数据预取宽度(Prefetch)为2 bit(SDRAM的两倍)。
    ###DDR2 SDRAM###
    DDR2 SDRAM(Double Data Rate Two SDRAM):为双信道两次同步动态随机存取内存。DDR2内存Prefetch又再度提升至4 bit(DDR的两倍)
    ###DDR3 SDRAM###
    DDR3 SDRAM(Double Data Rate Three SDRAM):为双信道三次同步动态随机存取内存。DDR3内存Prefetch提升至8 bit,即每次会存取8 bits为一组的数据。运算频率介于 800MHz -1600MHz之间。

    ###总结###
    以上是个人对RAM分类总结,我们主要是要明白RAM、SRAM、DRAM之间的特点和区别。这是最主要的核心,后面的DDR1-3的三代RAM作为了解,现在已经出了DDR4的RAM了,速度比DDR3又快了很多,随着技术的发展,会出现更加多的新技术,我们要时刻保持科技的敏感度,紧跟时代甚至超越时代。

    展开全文
  • 上篇写了双端口RAM设计(同步读写):https://blog.csdn.net/Reborn_Lee/article/details/90647784 关于异步读写和同步读写,在单端口RAM设计中也提到过:...
  • FPGA里的RAM使用

    万次阅读 2016-08-17 10:59:17
    我们知道,RAM是用来在程序运行中存放随机变量的数据空间,使用时可以利用QuartusII的LPM功能实现RAM的定制。  软件环境:QuartusII 11.0  操作系统:win7 实现方法一、利用LPM_RAM: 1.首先准备好...
  • 本科的时候在计算机组成原理这门课学过RAM和ROM的工作原理,没有想到这两个词汇在日常生活中也比较常见,特别是在安卓手机中,因此整理给大家。 概念: RAM(random access memory)即随机存储内存,这种存储器在断电...
  • RAM

    2020-04-06 16:20:47
    技术指标 存储字长:主存的一个存储单元所包含的二进制位数 存储容量:主存能存放二进制代码的位数。存储容量 = 容量 x 字长 存储速度:由存取时间(Memory Access Time)和存取周期(Memory Cycle Time)来表示。...
  • RAM和ROM的区别

    千次阅读 2018-12-29 14:12:27
    RAM(random access memory)即随机存储内存,这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。ROM(Read-Only Memory)即只读内存,是一种只能读出事先所存数据的固态半导体存储器。 对比 ...
  • ROM、RAM、DRAM、SRAM和FLASH的区别

    万次阅读 多人点赞 2016-08-23 13:28:00
    ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼分享一个大神朋友的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!...
  • 双口RAM及Vivado RAM IP核的使用

    万次阅读 多人点赞 2017-12-10 15:43:32
    目录 1.双口RAM概述 2.Vivado 双口RAM IP核 2.1 Block Memory Generator概述 2.2 真双口RAM的设置 2.2.1 Basic设置 ...双口RAM(dual port RAM)在异构系统中应用广泛,通过双口RAM,不同硬件架构的芯片可...
  • vivado RAM使用

    千次阅读 2018-09-27 09:40:12
    1.双口RAM概述 双口RAM(dual port RAM)在异构系统中应用广泛,通过双口RAM,不同硬件架构的芯片可以实现数据的交互,从而实现通信。例如,一般情况下,ARM与DSP之间的通信,可以利用双口RAM实现,ARM通过EBI总线...
  • ram分为分布式ram(distributed ram)以及块ram(block ram) 前者是自己用寄存器搭建的,这里理解可以转至Vivado使用技巧(27):RAM编写技巧 简单理解块ram就是自己用寄存器写出来的储存单元,仅仅用于储存比较...
  • Vivado使用技巧(27):RAM编写技巧

    千次阅读 2018-08-27 19:00:31
    Vivado综合可以理解多种多样的RAM编写方式,将其映射到分布式RAM或块RAM中。两种实现方法在向RAM写入数据时都是采取同步方式,区别在于从RAM读取数据时,分布式RAM采用异步方式,块RAM采用同步方式。使用RAM_STYLE...
  • 调查 RAM 使用情况 开发 Android 应用时,请始终注意您的应用使用了多少随机存取存储器 (RAM)。尽管 Dalvik 和 ART 运行时会执行例行垃圾回收 (GC),您仍然需要了解应用何时以及在哪里分配和释放内存。为了提供稳定...
  • 推荐 分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/strongerhuang 我的网站:...Ⅰ、写在前面...
  • RAM阵列

    千次阅读 2010-05-17 08:07:00
    本人节选自《编码——隐匿在计算机软硬件背后的语言》一书 让我们来看一下它是怎样工作的:当清零开关第一次断开时,RAM阵列的地址输入是0000h。RAM阵列的该地址中存放的8位数值是加法器的输入数据。加法器的另一个...
  • RAM的存储容量,以及地址线,数据线

    万次阅读 多人点赞 2018-09-22 16:14:12
    RAM中负责存储数据的部分就是存储矩阵,光看“矩阵”两个字大家应该也能够想到,其是由大量存储单元列阵构成。 地址线:是单向输入的,用于确定数据的存储地址 片选线:用于确定哪个存储芯片被选中 数据线:是双向的...
  • 树莓派ram更换Adding memory is one of the easier ways to boost your PC’s performance.There are a few things to check before spending your money, though, so let’s talk about them. 增加内存是提高PC...
  • 在MSP430的RAM中调试程序的研究

    千次阅读 2016-12-25 19:07:07
    Cortex-M3在RAM中调试的文章百度有很多,但是和MSP430在RAM中调试程序有关的文章却没有多少,百度只有一两个和RAM及MSP430有关的,但却不是在RAM调试,而是重定位中断向量表到RAM中及拷贝FLASH程序到RAM中运行,于是...
  • FPGA Block RAM自动推断

    千次阅读 2018-09-05 10:13:12
    FPGA Block Mem自动推断 首先看一下摘自UG的资料: Xilinx 7 series ...The block RAM in Xilinx@ 7 series FPGAs stores up to 36 ...configured as either two independent 18 Kb RAMs, or one 36 Kb RAM...
  • Block RAM 和Distributed RAM

    万次阅读 2011-06-09 13:03:00
    ==============================================FPGA block RAM和distributed RAM区别区别之1bram 的输出需要时钟,dram在给出地址后既可输出数据。区别之2dram使用根灵活方便些区别之3bram有较大的存储空间,dram...
  • FPGA基础设计(7)双口RAM乒乓操作

    千次阅读 多人点赞 2018-11-03 19:16:47
    双口RAM经常用于跨时钟域处理,且比FIFO灵活性更大。本文给出一个具体的设计实例,让大家理解双口RAM在跨时钟域处理中乒乓操作的用法。 输入数据速率20MHz,输出数据速率100Mhz,使用双口RAM完成跨时钟域处理。一次...
  • 详细的截图与仿真代码,总结应用FPGA简单双口RAM+真双口RAM
  • RAM、DRAM、硬盘、ROM、RAM、EPROM、FLASH区别和联系   转载       存储原理 RAM(Random Access Memory )随机存取存储器,主要的作用就是存储代码和数据供...

空空如也

1 2 3 4 5 ... 20
收藏数 240,479
精华内容 96,191
关键字:

ram