Описание модуля памяти на vhdl
При описании схемы на VHDL сигнал типа STD_LOGIC перевести в высокоимпедансное состояние можно присвоив значение ‘Z’
Пример: y<=’Z’;
Для описания набора триггеров удобно использовать одномерный массив элементов типа std_logic_vector.Верхний индекс массива можно определить через разрядность шины адреса используя аттрибут 'high.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
USE ieee.numeric_std.ALL; --для функции to_integer
entity mem is
generic
(
DATA_WIDTH : natural := 3;
ADDR_WIDTH : natural := 2
);
Port ( I : in STD_LOGIC_VECTOR (DATA_WIDTH-1 downto 0);
CS,RD,OE: in STD_LOGIC;
A:in STD_LOGIC_VECTOR(ADDR_WIDTH-1 downto 0);
O : out STD_LOGIC_VECTOR (DATA_WIDTH-1 downto 0));
end mem;
architecture Behavioral of mem is
type memory is array(A'high downto 0) of std_logic_vector((DATA_WIDTH-1) downto 0);
--второй вариант определения размера массива
--type memory is array(2**ADDR_WIDTH-1 downto 0) of
std_logic_vector((DATA_WIDTH-1) downto 0);
signal ram : memory;
begin
process(RD)
begin
if RD'event and RD='0' and CS='1' then
ram(to_integer(unsigned(A)))<=I;
end if;
end process;
O<=ram(to_integer(unsigned(A))) when OE='1' and RD='1' and CS='1' else ( others =>'Z');
end Behavioral;
№ Упаковка микросхем памяти.
Показанная схема масштабируется для произвольной длины слов и адресного пространства.
Один объем памяти может быть реализован при различной конфигурации. Например:
слово 8 бит * адресов 512К = 4Мбит
слово 1 бит * адресов 4096К = 4Мбит
в первом случае требуется 19 выводов адреса т.к. 2^19 = 512К
во втором случае требуется 22 выводов адреса т.к. 2^22= 4096K
Чтобы сократить число выводов память представляют не в виде вектора, а в виде матрицы.

Вход RAS (Row Address Strobe) – говорит что был подан адрес строки.
Вход CAS (Column Address Strobe) – подан адрес столбца.
При матричном представлении работа микросхемы более медленная (тербуется два этапа выставления адреса) но такие микросхемы дешевле.
В общем случае матрица может быть непрямоугольной.
Классификация озу
ОЗУ построенная на триггерах называется статической.
Достоинство – высокое быстродействие.
Недостаток – высокая стоимостью.
Динамическое ОЗУ – использует конденсатор и транзистор. Для хранения логической единицы конденсатор заряжается. Однако за счет токов утечки требуется схема постоянной регенерации заряда конденсатора.

Если для одного бита в статической ОЗУ требуется 6 транзисторов, то в динамической 1.
Достоинство – большой объем при невысокой стоимости, меньшее потребление энергии.
Недостаток - необходимость цикла регенерации состояния (т.к. конденсатор разряжается) и как следствие более меньшее быстродействие.
Общая классификация микросхем памяти:

FPM, EDO – асинхронная память, после выставления адреса происходит ожидание выполнения чтения или записи.
SDRAM – содержит в одной микросхеме как DRAM так и SRAM.
При этом часть данных из DRAM копируется в быструю SRAM.
DDR SDRAM – считвание как по нарастающему фронту так и по спадающему фронту
DDRII SDRAM – синхросигнал в два раза быстрее чем работа шины данных которая в два раза шире DDRI.
Достоинство по сравнению с DDR – большая скорость передачи, но выше латентность.
Латентность памяти – временная задержка межу моментом времени выставления адреса и моментом считывания данных.
Латентность менее критична при потоковой обработке (например в графических картах) и более в процессорах общего назначения (т.к. часто требуется доступ к различным точкам адресного пространства..
DIMM,SIMM – названия конструктивного оформления модулей памяти (выводы с двух сторон или с одной).
№ПЗУ
ROM (Read Only Memory) –нельзя стирать, производиться на заводе с заданным фотошаблоном.
Достоинстово – низкая цена при массовом производстве
PROM (Programmable ROM) – данные записываются пользователем один раз путем прожига перемычек
Недостаток – нельзя стирать.
EPROM (Eraseble PROM) – стирается если подержать 15 мин под ультрафиолетом. (на корпусе микросхемы кварцевое окно)
Недостаток – сложно стирать
EEPROM (Electronically EPROM) – электрически стираемая. К этому типу относят Flash.
Принцип работы:
Для постоянного хранения одного бита информации используется полевой транзистор с дополнительным так называемым плавающим затвором. Наличие или отсутствие заряда на плавающем затворе кодирует 1 бит информации.

Недостаток (по сравнению с ОЗУ) – очень медленная.
№ Иерархия памяти Вычислительной Системы (ВС)
В типовой вычислительной системе имеется можно выделить несколько слоев памяти:
Регистры – располагаются внутри микросхемы процессора (микроконтроллера). Доступ к регистрам выполняется быстрее всего.
Кэш-память - В современных CPU располагается в микросхеме процессора. Копирует страницы данных из ОЗУ ускоряя доступ. Объем примерно 1 МегаБит.
Основная память (ОЗУ) – Хранит программы и данные после загрузки компьютера.
Внешняя память – хранит программы и данные при отключении питания.
При загрузке данные копируются в следующем порядке
Внешняя память –> ОЗУ
ОЗУ –> кэш-память
кэш-память -> регистры.

Сверху вниз:
-
Скорость доступа уменьшается.
-
Емкость увеличивается.
-
Стоимость единицы объема памяти уменьшается.
Иерархическая организация памяти возможна по причине локализации исполняемого кода во времени и в адресном пространстве. Это значит, что достаточно долгий промежуток времени программа работает с одними и теми же данными.
