Hochschule Kempten      
Fakultät Elektrotechnik      
Digitaltechnik       Fachgebiet Elektronik, Prof. Vollrath      

Digitaltechnik

12 Speicherzellenfelder

Prof. Dr.

Jörg Vollrath


11 Zustandsdiagramm und Zähler


Ein kurze Videozusammenfassung der Vorlesung



Länge: 10:29 min

Zeitverhalten einer Schaltung mit Speicherglied



Länge: 6:03 min

Rückblick und Heute

Rückblick:



Heute:



Lesen: Reichardt: Kap 15

Praktikum

Versuch 4: Tasterabfrage

Versuch 5: Zustandsmaschine
Schieben der angezeigten Zahl

Bildverarbeitung

Digitale Halbleiterspeicher

Speicherglieder, Speicherfelder, Memory Array

  • Register (SRAM)
    Byte, Word, Double word

Zellenfelder: grosse Speicher


  • ROM read only memory
  • RAM random access memory
    SRAM, static
    DRAM dynamic
  • NVM non volatile memory
    Flash Speicher



Memory Array

Size = B · D · 2n · 2m

Kenngrößen von Speichern

Storage device


DRAM (capacitor)
SRAM (latch of transistors)
Flash (transistor with floating gate)
FRAM (Ferro Electric hysteresis)
MRAM (Resistance change due to magnetization)
PCRAM (resistance change due to solid/solid transition)


Needed Area


DRAM: 6F2 one capacitor + 1 select device: 1T + capacitor
SRAM: 256F2 4 transistors + 2 select devices: 6 T
Flash: 4F2 (16 level: 1F2) 1 Transistor with floating gate: 1T


Volatile versus nonvolatile memories


Information loss: Volatile versus nonvolatile memories
SRAM, DRAM lose information without power, Flash, EPROM and FRAM don’t.
DRAM loses information without constant refresh of memory cells.

Speicher: Anwendungen (Application)

HierarchyMemoryCost per Bit SpeedDensity
L1 CacheSRAM highest



lowest
fastest



slowest
32 kB; 128kB
L2 (L3) CacheSRAM 512 kB; 512kB (4MB)
Main MemoryDRAM 16 GB; 4..64 GB
Flash Memory (SD Card)NAND 4 GB; 16 GB..1 TB
Hard Disk MemoryMagnetic/Flash 4 TB/2..16 TB
Cache: Intel Celeron (Core) 2007; Intel Core i3-7300 (Kaby Lake, 2017, 14nm)

Samsung 21nm 48L V- 256Gb NAND Flash memory in 2TB SSD

  • 7.4.2016 EE Times
  • 256 Gb Chip: 3 bit per cell
  • 512 GB K9DUB8S7M Component
    = 8*512 Gb -> 16*256Gb
  • 2 TB solid state drive (SSD)
  • 16 Chips (dies) 40um Thick
  • Die area: 100mm2
Update 2020:
512 Gb .. 1 Tb Chip
120/128 Layer
4 Level pro Zelle
1 GB Micro SD Card: 360 €
12/2/2020 Intel N28A die, 29F04T2ANCQJ1 package, 2nd 3D QLC NAND die from Intel and 1024 Gb (1 Tb) with 96L NAND array.

http://www.techinsights.com/techservices/TechInsights-Samsung-48L-3D-V-NAND.pdf
In diesem Beispiel wird die Integrationsdichte nicht nur durch die kleinste Strukturgräße F lateral bestimmt.
Mehrere Bits werden in einer Speicherzelle gespeichert.
Mehrere Speicherzellen sind vertikal übereinander angeordnet.
Mehrere Chips werden in ein Gehäuse montiert.
Dadurch ist es möglich auch ohne Strukturverkleinerung mehr Funktionalität pro Volumen zu realisieren.

Speicherzellenfeld SRAM

Simulation

CLK high activates switches to select a memory cell and read and write
Sequence Op,Addr,Data: R,0,0; W,1,1; W, 4,0; R,0,0; R,E,1; R,E,1; R,4,0; R,1,1; R,0,0;R,0,0
Verzögerungszeit 4ns von der steigenden CLK Flanke bis zum Datum.

Da es 10 CLK high Zeiten gibt werden 10 Operationen durchgeführt.
Diese sind oben aufgelistet: R,1,0
Lesen einer "0" an der Addresse 0.
Jede Operation dauert 20ns.
Bei den Leseoperationen kann man die Zugriffszeit zwischen CLK rising und do-Änderung sehen.
Durch die Schreib- (W), Leseoperation (R) überprüft man die Speicherung der Information in der Zelle.

VHDL-Code: ROM

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity ROM_INSTANZIIERUNG is
   generic(ADDR_RANGE: integer:=4;
           DATA_WIDTH: integer:=8);
   port (ADDRESS : in std_logic_vector(ADDR_RANGE-1 downto 0);
         DATA : out std_logic_vector(DATA_WIDTH-1 downto 0));
end ROM_INSTANZIIERUNG;
architecture VERHALTEN of ROM_INSTANZIIERUNG is
type ROM_TYPE is array (0 to 2**ADDR_RANGE -1) of std_logic_vector(DATA_WIDTH-1 downto 0);
constant ROM : ROM_TYPE :=
   (x"0F",x"0E",x"0D",x"0C",x"0B",x"0A",x"09",x"08",
	 x"07",x"06",x"05",x"04",x"03",x"02",x"01",x"00");  
begin
   DATA <= ROM(to_integer(unsigned((ADDRESS)));  -- Lesezugriff
end VERHALTEN;

VHDL-Code: RAM 01

entity Xilinx_one_port_ram_sync is
  generic(
    ADDR_WIDTH: integer :=12;
    DATA_WIDTH: integer:=8
   );
  port (
      clk: in std_logic;
      we: in std_logic;
      addr: in std_logic_vector(ADDR_WIDTH-1 downto 0);
      din: in std_logic_vector(DATA_WIDTH-1 downto 0);
      dout: out std_logic_vector(DATA_WIDTH-1 downto 0)
    );
end Xilinx_one_port_ram_sync;

Ram_1K_by_16_0: Xilinx_one_port_ram_sync 
  generic map(ADDR_WIDTH=>10;DATA_WIDTH=>16)
  port map(clk => clk, we=>we,addr=>addr,din=>din,dout=>dout);

VHDL-Code: RAM 02

architecture Behavioral of Int_Memory is
  type ram_type is array (2**ADDR_WIDTH-1 downto 0) of
           std_logic_vector (DATA_WIDTH-1 downto 0);
  signal ram: ram_type:= (others => (others => '0')); 
Begin
process(clk)
 begin
  if ((clk‘event) and clk=‘1‘) then
     if (we =‘1‘) then
        ram(to_integer(unsigned(addr))) <= din;
     end if;
     dout <= ram(to_integer(unsigned(addr)));
  end if;
end process;
end Behavioral;

DDR3 SDRAM Access

Cycle time:
Latency:

DDR3 Datasheet


DRAM memory manufacturer: Samsung, Hynix, Micron

DDR3 Datasheet Details

Size 128Meg x 4 x 8
Power supply 1.5V

Data Rate: memory transfers per seconds 2133MT/s
Latency:
13ns+13ns
TRCD+CL


Externes DRAM, Flash sehr groß

Aufgaben 01

Es soll ein 64MBit Speicher mit 8 Datenleitungen realisiert werden. Wie viele Adressleitungen werden benötigt?

Ein Digitalbaustein hat 4 Eingänge, ein Register mit 4 Bit Speicherzellen und 5 Ausgänge. Wie viele Tests oder Zeilen der Zustandstabelle (Vektoren) brauchen Sie, um die logische Funktion des Bausteins vollständig zu testen?

Aufgabe 02

a) Erstellen Sie die Zustandstabelle für folgenden VHDL Code.
b) Wie viele Eingänge, Ausgänge und Speicherzellen werden damit realisiert?
entity ThisCircuit1SS2013 is port (  
    a: in  STD_LOGIC_VECTOR (1 downto 0); 
    b : in  STD_LOGIC; 
    y: out  STD_LOGIC; 
    clk: in STD_LOGIC); 
end ThisCircuit1SS2013; 

Aufgabe 02 a

Erstellen Sie die Wahrheits-/Zustandstabelle.
architecture Behavioral of ThisCircuit1SS2013 is 
 signal xy:STD_LOGIC; 
begin 
 PROCESS (clk) 
 BEGIN 
  if (clk='1' and clk'event) then 
    CASE a IS  
      WHEN "00" => xy<=xy and b; 
      WHEN "01" => xy<=a(0) or b; 
      WHEN "10" => xy<=b and xy; 
      WHEN "11" => xy<=a(1) and b; 
      WHEN OTHERS => xy<='0'; 
    END CASE; 
  end if; 
 END PROCESS; 
 y <= xy or b; 
end Behavioral; 

Aufgabe 02 b

Zeichnen Sie das Zeitverhalten.

 constant Tp : time := 10 ns; 
   clk_process :process 
   begin 
  clk <= '0'; wait for Tp/2; 
  clk <= '1'; wait for Tp/2; 
   end process; 
   stim_proc: process 
   begin   
      a <= "11"; b <='1';  wait for Tp; 
      a <= "10"; b <='0';  wait for 2*Tp; 
      a <= "00"; b <='1';  wait for Tp; 
      a <= "01"; b <='0';  wait for Tp; 
      a <= "11"; b <='0';  wait for Tp; 
   end process; 

Fragen und Diskussion

  • Wozu benötigt man grosse Speicherbausteine?
  • Warum gibt es verschiedene Speichertypen?
  • Wie sind Speicher aufgebaut?
  • Warum gibt es bei Speicherbausteinen X, Y und Bank Addressen?
  • Was begrenzt die maximale Größe von Speicherbausteinen?

13 MP3 Player LFS
DRAM, SRAM, Flash, Memory Array, Volatile Memory, Cache, Hard Disk Memory, SDRAM, Latency, Burst, Samsung, Micron, VHDL 'generic' Deklaration, VHDL Zahlenzuweisung