Ủng hộ tôi
SRAM được cấu tạo từ 1 mảng các word, việc truy cập SRAM chính là việc đọc/ghi dữ liệu từ/tới 1 word. Địa chỉ từ CPU sẽ đi qua 1 bộ giải mã địa chỉ (address decoder) nhằm xác định word cần thao tác.
Với SRAM có kích thước 8x6 (8 word, mỗi word 6 bit) thì cần 3 bit để mã hóa địa chỉ cho 8 word (log2(8) = 3), điều này dẫn đến chúng ta cần một bộ giải mã địa chỉ 3:8 (3 ngõ vào, 8 ngõ ra). Dựa vào giá trị của 3 bit ngõ vào mà 1 trong 8 ngõ ra của bộ giải mã sẽ bằng 1 cho phép chúng ta thao tác với word tương ứng, các ngõ ra còn lại sẽ bằng 0 để vô hiệu hóa các word còn lại.Vì có thể truy cập được địa chỉ của 1 word bất kỳ trong bộ nhớ với cùng 1 khoảng thời gian nên bộ nhớ này được gọi là bộ nhớ truy cập ngẫu nhiên (Random Acess Memory).
Về chi tiết, mỗi word của SRAM được cấu tạo từ 1 mảng các SRAM cell, mỗi 1 SRAM cell có khả năng lưu trữ 1 bit. Mỗi SRAM cell có 1 ngõ vào wordline và 2 ngõ 2 chiều (nghĩa là vừa làm ngõ vào và vừa làm ngõ ra), 2 ngõ này luôn luôn là phần bù của nhau: bitline và ~bitline. Ngõ vào wordline chính là tín hiệu cho phép chúng ta thao tác với word chứa nó, nghĩa là nếu wordline = 0 thì cell bị vô hiệu hóa, ngược lại wordline = 1 thì sẵn sàng cho việc thao tác.
Khi muốn ghi dữ liệu thì dữ liệu sẽ được gửi từ bộ lái dữ liệu (driver) tới SRAM cell theo 2 đường bitline và ~bitline. Khi đọc thì dữ liệu từ SRAM cell sẽ được truyền tới bộ khuếch đại nhạy (sense amplifier) cũng theo 2 đường bitline và ~bitline để chuyển từ tín hiệu hiệu tương tự (analog) sang tín hiệu số (digital).
SRAM cell được cấu tạo từ 2 CMOS inverter (chính là cổng luận lý NOT) và 2 N-FET, chi tiết hơn thì mỗi Inverter được cấu tạo bởi 1 P-FET kết hợp với 1 N-FET. Hai Inverter được kết nối theo cấu hình phản hồi dương để tạo thành 1 phần tử lưu trữ 2 trạng thái ổn định, 2 N-FET còn lại được dùng như một công tắc để cho phép ghi hoặc đọc dữ liệu từ phần tử lưu trữ. Nhờ khả năng chống nhiễu cao của cặp CMOS Inverter nên dữ liệu luôn được nhất quán bất chấp sảy ra nhiễu ở trong 1 trong 2 đầu vào của Inverter. SRAM cell sẽ lưu trữ ổn định dữ liệu cho đến khi bị ngắt nguồn điện hoạt động.
Thao tác đọc dữ liệu từ SRAM gồm 4 bước:
Bước 1: Bộ lái dữ liệu sẽ nạp bitline và ~bitline lên Vdd (mức logic 1) sau đó ngắt kết nối để bitline thả nổi với mức logic 1.
Bước 2: Bộ giải mã địa chỉ tiến hành giải mã và xác định word nào được thao tác thông qua wordline tương ứng sẽ có mức logic 1.
Bước 3: Dựa vào mức logic 0 tại đầu ra của 1 Inverter thì bitline hoặc ~bitline tương ứng sẽ bị kéo về Gnd (mức logic 0), tụ điện ký sinh càng lớn thì quá trình này diễn ra càng lâu.
Bước 4: Bộ khuếch đại nhạy sẽ cảm ứng sự chênh lệch điện áp giữa bitline và ~bitline và khuếch đại sự chênh lệch này, sau đó chuyển đổi thành tín hiệu số tới ngõ ra.
Việc phát hiện 1 sự chênh lệch nhỏ về điện áp rất dễ bị tác động bởi nhiễu, vì thế SRAM sử dụng 2 đường bitline và ~bitline cho mỗi SRAM cell và sử dụng bộ khuếch đại nhạy để chống nhiễu tốt hơn.
Thao tác ghi dữ liệu tới SRAM gồm 3 bước:
Bước 1: Bộ lái dữ liệu sẽ thiết lập bitline theo dữ liệu muốn ghi và thiết lập ~bitline ngược lại với bitline.
Bước 2: Bộ giải mã địa chỉ tiến hành giải mã và xác định word nào được thao tác thông qua wordline tương ứng sẽ có mức logic 1.
Bước 3: Bộ lái dữ liệu sẽ ép mức logic trong cặp Inverter thành mức logic mong muốn.
Vì điện tích lưu trữ trong SRAM cell tự duy trì ổn định nhờ cặp Inverter nên bộ nhớ này có tên là bộ nhớ truy cập ngẫu nhiên tĩnh (Static Random Acess Memory).
Có thể đọc/ghi nhiều word của SRAM một cách độc lập cùng 1 lúc bằng cách tăng số lượng wordline, bitline, ~bitline, bộ lái dữ liệu và bộ khuếch đại nhạy. SRAM có thể đọc nhiều word được ứng dụng làm Tập thanh ghi (Register Files) nằm trong CPU. Khi tăng số lượng các thành phần cấu tạo sẽ khiến SRAM trở nên cồng kềnh, vì thế phải cân nhắc kỹ lưỡng khi xác định số lượng word có thể thao tác cùng 1 lúc.