Đồ án này trình bày về cách thức hoạt động của ô nhớ SRAM, bằng cách phân tích và mô phỏng ô nhớ SRAM thông dụng nhất là ô nhớ sử dụng 6 transistors có tên gọi là 6T SRAM để hiểu cách th
GIỚI THIỆU
Tổng quan
Trong thời đại công nghệ phát triển, việc sử dụng các thiết bị thông minh đã trở thành một việc tất yếu và với sự phát triển nhanh chóng của công nghệ của các thiết bị, tuổi thọ pin là một mối quan tâm lớn, các thiết bị cần có một cấu trúc phần cứng có khả năng tiết kiệm năng lượng Qua đó Random Access
Memory (RAM) hầu hết được sử dụng trong các thiết bị và với các cấu trúc RAM tiết kiệm năng lượng, hệ thống thiết bị sẽ có những thay đổi tích cực về mặt năng lượng
Nhằm tìm hiểu cấu trúc, phương thức hoạt động của SRAM và cách gia tăng hiệu suất hoạt động, em quyết định chọn đề tài “thiết kế và mô phỏng hai cấu trúc của bộ nhớ sram cơ bản”
Nhiệm vụ đề tài
Tìm hiểu hai cấu trúc của bộ nhớ SRAM cơ bản là cấu trúc ô nhớ 6T (6transistor) và cấu trúc ô nhớ sử dụng kỹ thuật MTCMOS
Tìm hiểu các thành phần cấu tạo của bộ nhớ
Thiết kế một bộ nhớ SRAM, mô phỏng khả năng đọc-ghi (Read-Write) của bộ nhớ
Ô NHỚ SRAM
Tổng quan về SRAM
SRAM là viết tắt của Static random-access memory (Bộ nhớ truy cập ngẫu nhiên tĩnh hay RAM tĩnh) được dùng để lưu trữ và truy xuất dữ liệu tạm thời
SRAM không cần phải làm mới liên tục, miễn là có điện áp, dữ liệu sẽ được giữ lại bên trong SRAM
SRAM thường được sử dụng để lưu trữ dữ liệu tạm thời, có vai trò quan trọng trong lĩnh vực công nghệ thông tin và điện tử
Khi các công nghệ hiện tại đang cố gắng thu nhỏ và tạo ra các công nghệ chế tạo với mức độ đơn vị tính theo micromet thì dòng rò (leakage power) đã trở thành nguồn năng lượng tiêu hao chính hay các transistors cấu tạo nên các chip là nơi xuất hiện dòng rò này
SRAM được thiết kế dựa trên các transistor nên việc giảm dòng rò sẽ giúp giảm đi công suất, góp phần tiết kiệm điện năng
Các cấu trúc bộ nhớ SRAM hầu hết đều được thiết kế dựa trên ô nhớ 6 transistor SRAM (6T SRAM) vì thiết kế đơn giản nhưng đem lại hiệu quả tốt về tốc độ và năng lượng Nhưng nếu phân tích sâu hơn về 6T SRAM cho ta thấy vẫn có thể cải thiện về mặt năng lượng của cấu trúc này
Ô nhớ 6T SRAM
Hình 2.1 Cấu tạo ô nhớ 6T SRAM
Các cấu trúc 6T SRAM thông thường sử dụng 1 cặp inverter nối nhau và
2 transistor dùng để truy xuất dữ liệu
P1, P2 là hai PMOS transistor và N1, N2, N3, N4 là những NMOS transistor Trong đó N3, N4 là những transistor dùng để truy xuất dữ liệu ( hay còn gọi là pass transistor) kết nối ô nhớ với các tín hiệu dữ liệt - Bit Lines (BL và 𝐵𝐿̅̅̅̅ ), hai cặp transistor là P1, N1 và P2, N2 tạo nên hai bộ inverter
Các chế độ hoạt động:
- Chế độ giữ (Hold mode):
+ Khi tín hiệu WL đang ở mức 0 Hai transistor truy xuất sẽ tắt và ngắt kết nối ô nhớ với các Bit Lines (BL và 𝐵𝐿̅̅̅̅) và hai bộ inverter sẽ liên tục đảo bit dữ liệu, từ đó dữ liệu sẽ được giữ lại bên trong ô nhớ miễn là được cung cấp năng lượng (Vdd)
- Chế độ ghi (Write mode):
+ Để chế độ ghi được diễn ra thành công thì tỉ lệ dòng điện giữa các
PMOS transistor và các pass transistor (tỉ lệ gamma) phải đủ lớn Các giá trị được ghi vào ô nhớ dựa trên trạng thái các Bit Lines
+ Để thực hiện chế độ ghi, tín hiệu WL được đặt ở mức 1, qua đó “bật” hai pass transistor là N3, N4 cho phép ô nhớ kết nối với các Bit Lines và dữ liệu từ Bit Lines sẽ được chuyển vào ô nhớ
+ Ô nhớ sẽ nhận dữ liệu dựa trên hai Bit Lines BL và 𝐵𝐿̅̅̅̅, nếu BL = 0 và
𝐵𝐿̅̅̅̅ = 1 thì ô nhớ sẽ lưu trữ bit dữ liệu là 0 và ngược lại nếu BL = 1 và 𝐵𝐿̅̅̅̅ = 0 thì ô nhớ sẽ lưu trữ bit dữ liệu là 1
+ Sau khi dữ liệu được ghi vào ô nhớ, tín hiệu WL sẽ được đặt lại ở mức 0
+ Để chế độ ghi được diễn ra thành công thì tỉ lệ dòng điện giữa các
NMOS transistor và các pass transistor (tỉ lệ beta) phải đủ lớn Tuy nhiên nếu tỉ lệ beta quá lớn hiệu suất của SRAM sẽ giảm
+ Để thực hiện chế độ đọc dữ liệu đang có trong ô nhớ, Bit Lines ban đầu được sạc với Vdd Khi tín hiệu WL được đặt ở mức 1, dựa vào dữ liệu trong ô nhớ Bit Lines sẽ từ từ xả điện thông qua pass transistor và NMOS transistor từ đó tạo ra sự chênh lệnh điện áp giữa hai Bit Lines BL và 𝐵𝐿̅̅̅̅
+ Mạch đọc (Sense Amplifier) sẽ đo sự chênh lệch điện áp giữa hai Bit Lines BL và 𝐵𝐿̅̅̅̅ qua đó xác định được dữ liệu được lưu trữ trong ô nhớ, quá trình sạc và xả điện cũng được thực hiện bởi mạch đọc Nếu mức điện áp của
BL thấp hơn 𝐵𝐿̅̅̅̅ thì ô nhớ đang lưu trữ bit 0, ngược lại nếu mức điện áp của BL cao hơn 𝐵𝐿̅̅̅̅ thì ô nhớ đang lưu trữ bit 1
+ Độ nhạy của mạch đọc càng cao, tốc độ đọc sẽ càng nhanh Tuy nhiên điện áp chênh lệch không được quá lớn nếu không sẽ ảnh hưởng đến trạng thái của bộ inverter.
Mô phỏng hoạt động của 6T SRAM
Hình 2.4 Symbol của 6T SRAM c Mô phỏng hoạt động:
Hình 2.5 Dạng sóng mô phỏng hoạt động của 6T SRAM
Giải thích hoạt động của 6T SRAM:
- Khi WL = 1, BL = 1 và BL_bar = 0, dữ liệu được lưu trữ bên trong ô nhớ là 1
Hình 2.6 Dạng sóng mô phỏng lưu trữ bit 1
- Khi WL = 1, BL = 0 và BL_bar = , dữ liệu được lưu trữ bên trong ô nhớ là 0
Hình 2.7 Dạng sóng mô phỏng lưu trữ bit 0
- Khi WL được đổi thành mức 0, ô nhớ sẽ giữ lại dữ liệu đã được lưu trữ trước đó và không quan tâm đển các Bit Lines Ở trường hợp này, dữ liệu khi
WL = 1 được lưu trữ ở mức 0 nên khi WL = 0 dữ liệu luôn được lưu trữ ở mức
Hình 2.8 Dạng sóng mô phỏng khi WL = 0 d Tính Delay và Power:
Write Time Delay: chế độ ghi có 2 dữ liệu được ghi thông thường là 0 và
1 và delay của việc ghi 2 loại dữ liệu sẽ khác nhau do cấu trúc của các con
Hình 2.9.Mô phỏng delay khi viết bit 0 của 6T SRAM
Hình 2.10 Đo delay khi viết bit 0 của 6T SRAM
+ Thời gian Delay khi ghi mức 0 được tính từ lúc BL = 0V (mức logic 0) đến lúc Q = 100mV (10% Vdd):
Hình 2.11 Mô phỏng delay khi viết bit 1 của 6T SRAM
Hình 2.12 Đo delay khi viết bit 1 của 6T SRAM
+ Thời gian Delay khi ghi mức 1 được tính từ lúc BL = 1V (mức logic 1) đến lúc Q = 900mV (90% Vdd)
- Thời gian Delay của chế độ ghi:
- Năng lượng tiêu thụ của 6T SRAM: Ptotal = 594 nW
Hình 2.13 Đo công suất 6T SRAM
Ô nhớ 6T SRAM dùng kĩ thuật MTCMOS
Hình 2.14 Cấu tạo ô nhớ 6T SRAM bằng kỹ thuật MTCMOS
Kỹ thuật này sử dụng các transistors với ngưỡng điện áp kích hoạt cao để giảm delay và năng lượng Các transistor với ngưỡng điện áp kích hoạt thấp sẽ đem lại tốc độ nhưng lại rò rĩ điện nhiều hơn Trong khi đó các transistors với ngưỡng điện áp cao có thể giảm được dòng rò nhưng lại chậm hơn
Thông dụng nhất của kỹ thuật này là dùng các sleep transistors Thông qua các sleep transistors các nguồn điện ảo được tạo ra để cung cấp cho các tín hiệu logic Các sleep transistors kết nối nguồn điện thực với các nguồn điện ảo
Hình 2.15 Các nguồn điện ảo
Các sleep transistors sẽ được “tắt” và “mở” thông qua các tín hiệu Clock
Các transistors này sẽ giảm dòng rò khi SRAM không hoạt động
Qua hình…, PMOS transistor (với ngưỡng điện áp kích hoạt cao) được nối giữa ô nhớ với Vdd và NMOS (với ngưỡng điện áp kích hoạt cao) được nối giữa ô nhớ và đất
Vì các thiết kế của ô nhớ SRAM đều gồm một cặp inverter ghéo chéo nhau, các bit 0 và bit 1 luôn có mặt ở hai bên của ô nhớ SRAM nên khi các sleep transistors tắt, Vdd và mặt đất sẽ bị ngắt kết nối khỏi ô nhớ khi đó dữ liệu bên trong ô nhớ sẽ tạo ra nguồn điện ảo, nguồn điện này thấp hơn Vdd và sẽ không đủ để kích hoạt bất kì chế độ nào của SRAM, chỉ có thể duy trì dữ liệu bên trong ô nhớ
Việc tạo ra các nguồn điện ảo như đã đề cập sẽ có thể làm cho dữ liệu bị mất và gây ảnh hưởng lớn đến một số bộ nhớ SRAM Khi các sleep transistors tắt, nguồn điện ảo có vai trò duy trì dữ liệu bên trong ô nhớ Tuy nhiên, vì hao hụt, nguồn điện ảo này sẽ xả chậm dần Do đó để tình trạng nguồn điện ảo không còn đủ điện áp để cung cấp cho việc duy trì dữ liệu bên trong, việc thiết lập tần số của tín hiệu Clock là rất cần thiết để các nguồn điện ảo được nạp lại điện áp đúng lúc
Mô phỏng hoạt động của SRAM dùng kỹ thuật MTCM
Hình 2.16 Schematic của 6T SRAM bằng kỹ thuật MTCMOS b Symbol
Hình 2.17 Symbol của 6T SRAM bằng kỹ thuật MTCMOS
Hình 2.18 Dạng sóng mô phỏng hoạt động của 6T SRAM dùng MTCMOS
6T SRAM được thiết kế bằng kỹ thuật MTCMOS có hoạt động tương tự như 6T SRAM thông thường Tuy nhiên, bằng cách dùng các transistor với ngưỡng kích hoạt cao, cùng với tín hiệu Clock, khi tín hiệu Clock đang ở mức 0, dữ liệu bên trong SRAM có dấu hiệu giảm điện áp và khi tín hiệu Clock quay trở lại mức 1, điện áp của dữ liệu được nạp đầy lên Điều này giúp giảm thiểu năng lượng tiêu hao so với khi sử dụng ô nhớ 6T SRAM theo kiểu thông thường vì 6T SRAM lúc nào cũng cần phải cung cấp điện áp để duy trì dữ liệu bên trong, nhưng với kỹ thuật MTCMOS, năng lượng chỉ tốn khi tín hiệu Clock bằng 1, khi đó điện áp bị tiêu thụ để nạp lại dữ liệu bên trong
25 d Tính Delay và Power: Ở phần này, để thấy rõ năng lượng chênh lệch, tín hiệu Clock sẽ luôn được để ở mức 1
Hình 2.19 Mô phỏng delay khi viết 0 của 6T SRAM dùng MTCMOS
Hình 2.20 Đo delay khi viết 0 của 6T SRAM dùng MTCMOS
Hình 2.21 Mô phỏng delay khi viết 1 của 6T SRAM dùng MTCMOS
Hình 2.22 Đo delay khi viết 1 của 6T SRAM dùng MTCMOS
- Thời gian Delay của chế độ ghi:
- Năng lượng tiêu thụ: Ptotal = 176.8 nW
Hình 2.23 Đo năng lượng của 6T SRAM dùng MTCMOS
Đánh giá về công suất và độ trễ
Bảng so sánh độ trễ và công suất của ô nhớ SRAM 6T thông thường và ô nhớ SRAM 6T với kỹ thuật MTCMOS
Bảng 2.1 Bảng so sánh độ trễ và công suất
Theo bảng trên, ô nhớ 6T SRAM dựa trên kỹ thuật MTCMOS cho thấy hiệu suất hoạt động là tốt hơn, khi sử dụng ít hơn ô nhớ 6T SRAM thông thường 70% và thời gian trễ của chế độ ghi giảm 30.4%
Có thể thấy với việc sử dụng kỹ thuật MTCMOS, ô nhớ 6T SRAM đã được cải tiến khiến nó giảm năng lượng tiêu thụ nhưng lại gia tăng tốc độ đáng kể Thế nhưng việc, kỹ thuật này sẽ làm gia tăng số lượng transistor được sử dụng trong các thiết kế bộ nhớ dẫn đến việc gia tăng diện tích đáng kể
Với việc các bộ nhớ SRAM cần số lượng các ô nhớ là rất rất lớn, tiết kiệm năng lượng dựa trên các kỹ thuật thiết kế khác nhau sẽ góp phần rất lớn trong việc giảm thiểu năng lượng tiêu hao của các bộ nhớ SRAM
THIẾT KẾ BỘ NHỚ SRAM
Mạch ghi (Write – driver)
Hình 3.1 Cấu tạo mạch ghi
Mạch ghi được thiết kế dựa trên hoạt động của cổng nor, với hai cổng nor và 2 ngõ vào DATA và 𝑊̅
Như đã phân tích ở hoạt động của ô nhớ SRAM, chế dộ ghi sẽ được hoạt động khi tín hiệu WL = 1 WL sẽ được nối với 𝑊̅ qua một cổng inverter, khi đó
Bảng chân trị của mạch ghi:
Bảng 2.2 Bảng chân trị mạch ghi
Khi 𝑊̅ = 0, mạch ghi sẽ được hoạt động như bảng trên, DATA bằng 0, tín hiệu ngõ ra ở hai cổng nor lần lượt là A = 1 và B = 0, transistor M9 sẽ tắt dựa trên hoạt động của NMOS và BL sẽ được kéo xuống mức 0, ô nhớ sẽ lưu trữ dữ liệu BL = 0 và 𝐵𝐿̅̅̅̅ = 1
Nếu tín hiệu DATA bằng 1, tín hiệu ngõ ra ở hai cổng nor A, B lần lượt là
0 và 1, NMOS transistor M8 sẽ hoạt động, kéo 𝐵𝐿̅̅̅̅ xuống mức 0 và ô nhớ sẽ lưu trữ dữ liệu BL = 1 và 𝐵𝐿̅̅̅̅ = 0
Khi 𝑊̅ = 1 tức là WL = 0, bất kể giá trị nào của DATA thì mạch sẽ đều không hoạt động, ô nhớ sẽ được đưa về trạng thái hold
Hình 3.3 Symbol mạch ghi c Mô phỏng hoạt động
Hình 3.4 Mô phỏng hoạt động của mạch ghi
Theo như mô phỏng, khi 𝑊̅ = 0 dữ liệu được ghi theo giá trị của DATA và cái bit lines sẽ thay đổi tương ứng theo giá trị DATA và khi 𝑊̅ = 1, bất kể DATA mang giá trị gì thì cái bit lines vẫn giữ nguyên giá trị trước đó
Mạch đọc (Sense Amplifier)
Hình 3.5 Cấu tạo mạch đọc
Mạch đọc (Sense Amplifier) hay mạch khuếch đại cảm nhận gồm 1 cặp transistor NMOS M1, M2 kết nối với hai bit lines để đọc các giá trị của hai bit lines
Mạch đọc hoạt động khi tín hiệu Read = 1, khi đó transistor M3 sẽ mở Nếu BL = 1 và BLbar = 0, M1 bật, M2 tắt, ngõ vào của inverter kéo lên 0 và ngõ ra sẽ là 1 Ngược lại, nếu BL = 0 và Blbar = 1 ngõ ra sẽ là 0
Hình 3.6 Schematic mạch đọc b Symbol
Hình 3.8 Mô phỏng hoạt động của mạch đọc
Khi Read = 1, giá trị đọc được là Q đúng với giá trị được lưu vào bộ nhớ, giống với giá trị BL Khi Read = 0, giá trị ở ngõ ra không đọc được.
Mạch nạp trước (Pre – charge)
Hình 3.9 Cấu tạo của mạch nạp trước
Pre – charge hay mạch nạp trước được dùng để cân bằng điện áp của hai bit lines trước khi dữ liệu được viết vào ô nhớ Mạch nạp trước gồm 3 transistor, trong đó Q1, Q2 có nhiệm vụ sạc cho hai bit lines còn Q3 có nhiệm vụ cân bằng điện áp giữa 2 bit lines để giá trị điện áp của hai bit lines bằng nhau
Khi có tín hiệu PRE = 0, mạch nạp trước sẽ hoạt động, điện áp giữa hai bit lines sẽ được cân bằng (giá trị điện áp giữa hai bit lines sẽ gần bằng nhau) bằng cách xả điện bên có điện áp cao hơn sang bên có điện áp thấp hơn Khoảng thời gian xảy ra việc này ô nhớ sẽ không được đưa dữ liệu vào và phải đợi việc nạp trước hoành thành
Hình 3.10 Schematic mạch nạp trước
Hình 3.11 Symbol mạch nạp trước c Mô phỏng hoạt động
Hình 3.12 Mô phỏng hoạt động của mạch nạp trước
Bộ nhớ SRAM hoàn chỉnh
3.4.1 Hoạt động của bộ nhớ SRAM:
+ Pre-charge được đua lên mức 1, Wbar được đưa xuống mức 0 để tiến hành ghi dữ liệu, dựa vào hoạt động của mạch ghi, hai bit lines sẽ được đưa về điện áp đối lập nhau dựa theo dữ liệu DATA đưa vào mạch cùng lúc đó, WL được đưa lên mức 1 để dữ liệu được đưa vào ô nhớ, dựa vào hai bit lines đã được xả điện
+ Khi Pre = 1, Wbar = 1, WL = 0, dữ liệu sẽ được lưu trữ bên trong ô nhớ
+ Để đọc dữ liệu, trước tiên đưa Pre-charge xuống mức 0, sạc hai bit lines cho cùng mức điện áp, dựa vào dữ liệu lưu trữ bên trong ô nhớ, các bit lines sẽ được xả điện Sau đó tín hiệu Read đưa lên 1, dữ liệu sẽ được đọc thông qua mạch dọc như đã phân tích ở trên
Khi dữ liệu đưa vào là bit 1:
Hình 3.14 Mô phỏng hoạt động của bộ nhớ khi dữ liệu đưa vào ở mức cao
Khi tín hiệu đưa vào là bit 0:
Hình 3.15 Mô phỏng hoạt động của bộ nhớ khi dữ liệu đưa vào ở mức 0