---
# System prepended metadata

title: RAM

---

# RAM
Mạch chốt khá giống với flip-flop đã được nói đến ở chương trước, và đây là cấu trúc mạch của nó:
![](https://i.imgur.com/ytnLMU8.png)
Mỗi một mạch chốt thế này có khả năng lưu trữ duy nhất $1-bit$ dữ liệu. Và có thể được vẽ gọn lại thành:
![](https://i.imgur.com/3PzXsBD.png)
N mạch chốt $1-bit$ kết nối lại với nhau sẽ thành mạch chốt $n-bit$, chúng kết nối lại bằng cách nối chung dây Write:
![](https://i.imgur.com/Ne7KSok.png)
Trên đây là mạch chốt $8-bit$ và cũng có thể vẽ gọn lại thành một trong hai cách sau:
![](https://i.imgur.com/iL8ExXX.png)
Nó có tác dụng lưu trữ một dữ liệu $8-bit$ ứng với số lượng mạch chốt có trong đó.
Và câu hỏi đặt ra ở đây là nếu chúng ta muốn lưu trữ dữ liệu dưới dạng $8$ mạch chốt $1-bit$ hay là lưu trữ $8$ số $1$ bit thay vì $1$ số $8$ bit thì làm như nào? Để làm vậy, ta có thể sử dụng $8$ mạch chốt $1-bit$ khác nhau nhưng đến đây lại có câu hỏi khác là làm thế nào để phân biệt chúng? Đơn giản thôi, ta sẽ sử dụng mạch ghép kênh ở chương trước để giải quyết vấn đề này:
![](https://i.imgur.com/ku3Qh8d.png)
Mạch trên có thể được gọi là mạch ghép kênh MUX hay có thể gọi là 8-to-1 Selector bởi nó có $8$ đầu vào và duy nhất $1$ đầu ra, mà đầu ra lại chính là $1$ trong $8$ đầu vào. Mạch này đã giải quyết cách để chúng ta lấy dữ liệu ra ở mạch chốt chính xác mà ta muốn trong một tập hợp các mạch chốt giống hệt nhau, vậy nếu ta muốn lưu dữ liệu vào thì làm như thế nào ?
Ta sẽ sử dụng mạch giải mã(Decoder) mà ta đã đề cập ở chương trước để lưu dữ liệu vào vị trí mạch chốt chính xác mà ta muốn.
![](https://i.imgur.com/MCj7sYH.png)
Data In ở đây là Write nghĩa là ta muốn mạch chốt ở vị trí tương ứng với $S_0$, $S_1$ , $S_2$ có quyền ghi lại dữ liệu từ đầu vào không.
Và sau khi đã hoàn thành việc phân biệt và cách lấy dữ liệu cũng như lưu dữ liệu, ta có thể ghép chúng lại thành một mạch hoàn chỉnh:
![](https://i.imgur.com/M5hIYsR.png)
Và mô hình mạch chốt này còn có tên gọi khác là RAM(random access memory) nó được gọi vậy là bộ nhớ truy cập ngẫu nhiên vì nó có đặc tính: thời gian thực hiện thao tác đọc hoặc ghi đối với mỗi ô nhớ là như nhau, cho dù đang ở bất kỳ vị trí nào trong bộ nhớ. Và đương nhiên ta cũng có thể vẽ gọn nó lại thành:
![](https://i.imgur.com/rFU1Dh6.png)
$8$x$1$ biểu thị cho việc RAM này có khả năng lưu trữ $8$ dữ liệu $1-bit$. Khả năng lưu trữ của RAM phụ thuộc vào số lượng địa chỉ đầu vào của nó nếu nó có $n$ đầu vào địa chỉ thì nó có khả năng lưu trữ $2^n$ dữ liệu dưới dạng $1-bit$. Nhưng nó cũng có thể lưu trữ dữ liệu dưới dạng $8-bit$ hay $m-bit$ tùy thuộc vào dạng mạch chốt mà ta dùng như đã đề cập ở trên. Ví dụ như:
![](https://i.imgur.com/ejwVSxE.png)
Với $10$ đầu vào địa chỉ, mạch trên có khả năng lưu trữ $2^10 = 1024$ dữ liệu dưới dạng $8-bit$ bởi nó sử dụng mạch chốt $8-bit$ thay vì mạch chốt $1-bit$. Và nó có thể lưu trữ tồng cộng $1024*8=8196$ bit dữ liệu.
Để tránh phải sử dụng các con số quá lớn, byte($1$byte = $8$bit) cũng có các cách đổi đơn vị của nó. Kilobyte hay còn có thể viết là K hay KB sẽ bằng $2 ^10 = 1024$ byte. Tương tự như thế $1$ megabyte (MB) = $1024$ kilobyte (KB), $1$ gigabyte (GB) = $1024$ megabyte (MB), ...
![](https://i.imgur.com/U4c0BYy.png)
