Bộ nhớ máy tính hoạt động như thế nào?

Bạn đã bao giờ tự hỏi tại sao máy tính phải mất thời gian để tải các chương trình hoặc trò chơi điện tử chưa? Ngoài ra, bạn có bao giờ thắc mắc tại sao máy tính của mình sử dụng cả DRAM cũng như SSD khi cả hai đều được sử dụng để lưu trữ dữ liệu không?

Bộ nhớ máy tính hoạt động như thế nào?

Bạn đã bao giờ tự hỏi điều gì đang xảy ra bên trong máy tính của mình khi bạn tải một chương trình hoặc trò chơi điện tử chưa? Có hàng triệu hoạt động đang diễn ra, nhưng có lẽ phổ biến nhất chỉ đơn giản là sao chép dữ liệu từ ổ đĩa thể rắn hoặc SSD vào bộ nhớ truy cập ngẫu nhiên động hoặc DRAM. SSD lưu trữ tất cả các chương trình và dữ liệu để lưu trữ lâu dài nhưng khi máy tính của bạn muốn sử dụng dữ liệu đó thì trước tiên nó phải di chuyển các tệp thích hợp vào DRAM. Việc này cần có thời gian, do đó sẽ có thanh tải để tính thời gian đó. Bởi vì CPU của bạn chỉ hoạt động với dữ liệu sau khi được chuyển sang DRAM, nên nó còn được gọi là bộ nhớ làm việc hoặc bộ nhớ chính.

Lý do tại sao máy tính để bàn của bạn sử dụng cả SSD và DRAM là vì ổ cứng thể rắn lưu trữ vĩnh viễn dữ liệu trong các mảng 3D khổng lồ bao gồm một nghìn tỷ ô nhớ hoặc hơn, mang lại dung lượng lưu trữ hàng ngàn terabyte, trong khi DRAM lưu trữ tạm thời dữ liệu trong các mảng 2D bao gồm hàng tỷ ô nhỏ với các tế bào bộ nhớ tụ điện mang lại hàng gigabyte bộ nhớ làm việc. Truy cập vào bất kỳ phần ô nào trong mảng SSD khổng lồ và đọc hoặc ghi dữ liệu mất khoảng 50 micro giây trong khi đọc hoặc ghi từ bất kỳ ô bộ nhớ tụ điện DRAM nào mất khoảng 17 nano giây, nhanh hơn 3000 lần.

Vì vậy, tốc độ của DRAM 17 nano giây so với SSD 50 micro giây giống như so sánh máy bay phản lực siêu âm với một con rùa. Tuy nhiên, tốc độ chỉ là một yếu tố vì DRAM được giới hạn trong một mảng 2D và lưu trữ tạm thời một bit trên mỗi ô nhớ. Ví dụ: thanh DRAM có 8 chip này chứa 16 gigabyte dữ liệu, trong khi một ổ đĩa thể rắn có kích thước nhỏ hơn có thể chứa 2 terabyte dữ liệu, gấp hơn 100 lần so với DRAM. Ngoài ra, DRAM cần nguồn điện để liên tục lưu trữ và làm mới dữ liệu được giữ trong các tụ điện của nó. Do đó, máy tính sử dụng cả SSD và DRAM bằng cách dành vài giây thời gian tải để sao chép dữ liệu từ SSD sang DRAM sau đó tìm nạp trước có thể lưu trữ hàng terabyte dữ liệu trên SSD và sau đó truy cập dữ liệu từ các chương trình đã được sao chép trước vào DRAM trong vài nano giây.

Ví dụ: nhiều trò chơi điện tử có thời gian tải để tự khởi động trò chơi và sau đó là thời gian tải riêng để tải tệp lưu. Trong quá trình tải tệp lưu, tất cả các mô hình 3D, kết cấu và môi trường của trạng thái trò chơi của bạn được chuyển từ SSD sang DRAM để có thể truy cập bất kỳ tệp nào trong số đó trong vài nano giây, đó là lý do tại sao trò chơi điện tử có dung lượng DRAM yêu cầu. Hãy thử tưởng tượng, nếu không có DRAM, việc chơi game sẽ chậm hơn 3.000 lần.

Đầu tiên, chúng ta sẽ xem chính xác cách CPU giao tiếp và di chuyển dữ liệu từ SSD sang DRAM. Sau đó, chúng ta sẽ mở một vi mạch DRAM và xem cách hàng tỷ ô nhớ được tổ chức thành các dãy và cách dữ liệu được ghi và đọc từ các nhóm ô nhớ. Trong quá trình này, chúng ta sẽ đi sâu vào các cấu trúc nano bên trong các ô bộ nhớ riêng lẻ và xem cách mỗi tụ điện lưu trữ 1 bit dữ liệu. Cuối cùng, chúng ta sẽ khám phá một số điểm đột phá và tối ưu hóa, chẳng hạn như bộ đệm liên tục và bố cục DRAM gấp lại cho phép DRAM di chuyển dữ liệu với tốc độ đáng kinh ngạc.

Thứ nhất, bạn có thể tìm thấy các chip DRAM tương tự bên trong GPU, Điện thoại thông minh và nhiều thiết bị khác, nhưng với các cách tối ưu hóa khác nhau. Ví dụ: GPU DRAM hoặc VRAM nằm xung quanh chip GPU sẽ có băng thông lớn hơn và có thể đọc và ghi đồng thời nhưng hoạt động ở tần số thấp hơn và DRAM trong điện thoại thông minh của bạn được xếp chồng lên trên CPU và được tối ưu hóa để nhỏ hơn đóng gói và tiêu thụ điện năng thấp hơn.

Thứ hai, có các cấu trúc bộ nhớ nhanh hơn trong CPU của bạn được gọi là bộ nhớ cache và các thanh ghi thậm chí còn nhanh hơn. Tất cả các loại bộ nhớ này tạo ra một hệ thống phân cấp bộ nhớ, với sự đánh đổi chính là tốc độ so với dung lượng trong khi vẫn giữ mức giá phải chăng cho người tiêu dùng và tối ưu hóa kích thước của từng vi mạch cho sản xuất.

Thứ ba, bạn có thể xem mỗi chương trình đang sử dụng bao nhiêu DRAM bằng cách mở màn hình tài nguyên của máy tính và nhấp vào bộ nhớ.

Thứ tư, có nhiều thế hệ DRAM khác nhau và chúng ta sẽ khám phá DDR5. Nhiều khái niệm chính mà chúng tôi giải thích áp dụng cho các thế hệ trước, mặc dù các con số có thể khác nhau.

Thứ năm, 17 nano giây là cực kỳ nhanh! Điện di chuyển với tốc độ khoảng 1 foot mỗi nano giây và 17 nano giây là khoảng thời gian cần thiết để ánh sáng truyền qua một căn phòng.

Một thanh DRAM còn được gọi là mô-đun bộ nhớ nội tuyến kép hoặc DIMM và có 8 chip DRAM trên DIMM cụ thể này. Trên bo mạch chủ có 4 khe cắm DRAM, khi cắm nguồn thì DRAM được kết nối trực tiếp với CPU thông qua 2 kênh bộ nhớ chạy xuyên qua bo mạch chủ. Lưu ý rằng hai khe DRAM bên trái chia sẻ các kênh bộ nhớ này và hai khe bên phải chia sẻ một kênh riêng biệt. Hãy chuyển sang nhìn vào bên trong CPU tại bộ xử lý. Cùng với nhiều lõi và nhiều thành phần khác, chúng ta sẽ tìm thấy bộ điều khiển bộ nhớ quản lý và giao tiếp với DRAM. Ngoài ra còn có một phần riêng để giao tiếp với SSD được cắm vào khe M2 và với SSD và ổ cứng được cắm vào đầu nối SATA. Bằng cách sử dụng các phần này, cùng với các bảng ánh xạ dữ liệu, CPU sẽ quản lý luồng dữ liệu từ SSD sang DRAM, cũng như từ DRAM sang bộ nhớ cache để các lõi xử lý.

Hãy quay lại để xem các kênh bộ nhớ. Đối với DDR5, mỗi kênh bộ nhớ được chia thành hai phần, Kênh A và Kênh B. Hai kênh bộ nhớ A và B này truyền độc lập 32 bit mỗi lần bằng 32 dây dữ liệu. Bằng cách sử dụng 21 dây bổ sung, mỗi kênh bộ nhớ mang một địa chỉ chỉ định nơi đọc hoặc ghi dữ liệu và sử dụng 7 dây tín hiệu điều khiển, các lệnh sẽ được chuyển tiếp. Các địa chỉ và lệnh được gửi đến và chia sẻ bởi cả 4 chip trên kênh bộ nhớ hoạt động song song. Tuy nhiên, các dòng dữ liệu 32 bit được chia cho các chip và do đó mỗi chip chỉ đọc hoặc ghi 8 bit mỗi lần. Ngoài ra, nguồn điện cho DRAM được cung cấp bởi bo mạch chủ và được quản lý bởi chính các chip này trên thanh.

Tiếp theo, hãy mở và nhìn vào bên trong một trong những vi mạch DRAM này. Bên trong bao bì bên ngoài, chúng ta sẽ tìm thấy một ma trận kết nối kết nối mảng lưới bóng ở dưới cùng với khuôn là phần chính của vi mạch này. Khuôn DRAM 2 gigabyte này được tổ chức thành 8 nhóm nơi chứa, mỗi nhóm có 4 nơi chứa, tổng cộng là 32 nơi chứa. Trong mỗi dãy là một mảng lớn, 65.536 ô nhớ cao 8192 ô, về cơ bản là các hàng và cột trong một lưới, với hàng chục nghìn dây và mạch hỗ trợ chạy bên ngoài mỗi dãy. Thay vì nhìn vào cái khuôn này, chúng ta sẽ chuyển sang sơ đồ chức năng và sau đó tổ chức lại các nơi chứa và nhóm nơi chứa. Để truy cập 17 tỷ ô nhớ, chúng ta cần một địa chỉ 31-bit. 3 bit được sử dụng để chọn nhóm nơi chứa thích hợp, sau đó 2 bit để chọn nơi chứa. 16 bit tiếp theo của địa chỉ được sử dụng để xác định hàng chính xác trong số 65 nghìn.

Bởi vì con chip này đọc hoặc ghi 8 bit mỗi lần, nên 8192 cột được nhóm theo 8 ô nhớ, tất cả đều được đọc hoặc ghi cùng một lúc hoặc 'theo 8', và do đó chỉ cần 10 bit cho địa chỉ cột. Một tối ưu hóa là địa chỉ 31 bit này được tách thành hai phần và được gửi chỉ bằng 21 dây. Đầu tiên, nhóm nơi chứa, nơi chứa và địa chỉ hàng được gửi, sau đó là địa chỉ cột.

Hãy xem lại chi tiết về cách thức hoạt động của DRAM và phóng to để khám phá một ô nhớ duy nhất nằm trong một mảng lớn. Ô nhớ này được gọi là ô 1T1C và có kích thước vài chục nanomet. Nó có hai phần, một tụ điện để lưu trữ một bit dữ liệu dưới dạng điện tích hoặc điện tử và một bóng bán dẫn để truy cập và đọc hoặc ghi dữ liệu. Tụ điện có hình dạng giống như một rãnh sâu được đào trong silicon và bao gồm hai bề mặt dẫn điện được ngăn cách bởi một chất cách điện điện môi hoặc rào cản chỉ dày vài nguyên tử, ngăn chặn dòng điện tử nhưng cho phép điện trường đi qua. Nếu tụ điện này được tích điện bằng các electron đến 1 vôn, thì đó là nhị phân 1 và nếu không có điện tích nào và nó ở 0 vôn, thì đó là nhị phân 0 và do đó, ô này chỉ chứa một bit dữ liệu. Các thiết kế của tụ điện không ngừng phát triển nhưng trong tụ điện rãnh này, độ sâu của silicon được tận dụng để cho phép lưu trữ điện dung lớn hơn, đồng thời chiếm ít diện tích nhất có thể.

Tiếp theo, hãy nhìn vào bóng bán dẫn truy cập và thêm vào hai dây. Dây wordline kết nối với cổng của bóng bán dẫn trong khi dây bitline kết nối với phía bên kia của kênh bóng bán dẫn. Đặt một điện áp vào dòng từ sẽ bật bóng bán dẫn và trong khi bật, các điện tử có thể chảy qua kênh do đó kết nối tụ điện với bitline. Điều này cho phép chúng ta truy cập và nạp điện cho tụ điện để ghi số 1 hoặc xả tụ điện để ghi số 0. Ngoài ra, chúng ta có thể đọc giá trị được lưu trữ trong tụ điện bằng cách đo lượng điện tích. Tuy nhiên, khi dòng từ bị tắt, bóng bán dẫn bị tắt và tụ điện được cách ly khỏi dòng bit, do đó lưu dữ liệu hoặc điện tích đã được ghi trước đó. Lưu ý rằng vì bóng bán dẫn này cực kỳ nhỏ, chỉ rộng vài chục nanomet, nên các điện tử rò rỉ từ từ qua kênh và do đó, theo thời gian, tụ điện cần được làm mới để sạc lại các điện tử bị rò rỉ.

Như đã đề cập trước đó, ô nhớ 1T1C này là một trong số 17 tỷ ô bên trong khuôn đơn này và được tổ chức thành các mảng lớn được gọi là các dãy. Vì vậy, hãy xây dựng một mảng nhỏ cho mục đích minh họa. Trong mảng của chúng ta vừa tạo ra, mỗi dòng từ được kết nối theo hàng và sau đó các dòng bit được kết nối theo cột. Các dòng từ và dòng bit nằm trên các lớp dọc khác nhau để lớp này có thể vượt qua lớp kia và chúng không bao giờ chạm vào nhau. Hãy đơn giản hóa hình ảnh và sử dụng các ký hiệu cho tụ điện và bóng bán dẫn. Cũng giống như trước đây, các dòng chữ kết nối với cổng điều khiển của từng bóng bán dẫn theo hàng, sau đó tất cả các dòng bit trong cột kết nối với kênh đối diện với mỗi tụ điện. Kết quả là, khi một dòng từ hoạt động, tất cả các tụ điện chỉ trong hàng đó được kết nối với các dòng bit tương ứng của chúng, do đó kích hoạt tất cả các ô nhớ trong hàng đó.

 Tại bất kỳ thời điểm nào, chỉ có một dòng từ hoạt động bởi vì, nếu có nhiều hơn một dòng từ hoạt động, thì nhiều tụ điện trong một cột sẽ được kết nối với dòng bit và các chức năng lưu trữ dữ liệu của các tụ điện này sẽ ảnh hưởng lẫn nhau, khiến chúng trở nên vô dụng. Như đã đề cập trước đó, trong một nơi chứa có 65.536 hàng và 8.192 cột và địa chỉ 31 bit được sử dụng để kích hoạt một nhóm chỉ 8 ô nhớ. 5 bit đầu tiên chọn nơi chứa và 16 bit tiếp theo được gửi đến bộ giải mã hàng để kích hoạt một hàng. Ví dụ, số nhị phân kích hoạtdòng từ 27.524, do đó bật tất cả các bóng bán dẫn trong hàng đó và kết nối 8.192 tụ điện với dòng bit của chúng, đồng thời 65 nghìn dòng từ khác đều tắt.

Đây là sơ đồ logic cho một bộ giải mã đơn giản. 10 bit còn lại của địa chỉ được gửi đến bộ ghép kênh cột. Bộ ghép kênh này nhận 8192 đường bit ở trên cùng và tùy thuộc vào địa chỉ 10 bit, kết nối một nhóm 8 đường bit cụ thể với 8 dây IO đầu vào và đầu ra ở phía dưới. Ví dụ: nếu địa chỉ 10 bit là địa chỉ này, thì chỉ các dòng bit 4,784 đến 4,791 sẽ được kết nối với dây IO và phần còn lại của 8000 dòng bit sẽ không được kết nối. Bây giờ chúng ta có phương tiện truy cập bất kỳ ô nhớ nào trong mảng lớn này. Tuy nhiên, để hiểu ba thao tác cơ bản, đọc, viết và làm mới, hãy thêm hai yếu tố vào bố cục của chúng ta: Bộ khuếch đại cảm giác ở cuối mỗi dòng bit và trình điều khiển đọc và ghi bên ngoài bộ ghép kênh cột.

Hãy xem xét việc đọc từ một nhóm ô nhớ. Đầu tiên, lệnh đọc và địa chỉ 31-bit được gửi từ CPU đến DRAM. 5 bit đầu tiên chọn một nơi chứa cụ thể. Bước tiếp theo là tắt tất cả các dòng từ trong nơi chứa đó, do đó cô lập tất cả các tụ điện, sau đó nạp tất cả các đường bit 8000ish thành 0,5 volt. Tiếp theo, địa chỉ hàng 16 bit bật một hàng và tất cả các tụ điện trong hàng đó được kết nối với các đường bit của chúng. Nếu một tụ điện riêng lẻ giữ 1 và được tích điện tới 1 volt, thì một số điện tích sẽ truyền từ tụ điện lên đường bit 5 volt và điện áp trên đường bit tăng lên. Sau đó, bộ khuếch đại cảm biến sẽ phát hiện sự thay đổi nhỏ hoặc nhiễu loạn này của điện áp trên đường bit, khuếch đại sự thay đổi và đẩy điện áp trên đường bit lên đến 1 vôn.

Tuy nhiên, nếu 0 được lưu trữ trong tụ điện, điện tích sẽ truyền từ đường bit vào tụ điện và đường bit 5 volt giảm điện áp. Sau đó, bộ khuếch đại giác quan sẽ nhìn thấy sự thay đổi này, khuếch đại nó và điều khiển điện áp bitline xuống 0 volt hoặc chạm đất. Bộ khuếch đại cảm biến là cần thiết vì tụ điện quá nhỏ và đường bit khá dài, do đó tụ điện cần có một thành phần bổ sung để cảm nhận và khuếch đại bất kỳ giá trị nào được lưu trữ. Bây giờ, tất cả 8000 dòng bit được điều khiển thành 1 volt hoặc 0 volt tương ứng với điện tích được lưu trữ trong các tụ điện của hàng được kích hoạt và hàng này hiện được coi là mở. Tiếp theo, bộ ghép kênh chọn cột sử dụng địa chỉ cột 10 bit để kết nối 8 dòng bit tương ứng với trình điều khiển đọc, sau đó gửi 8 giá trị và điện áp này qua 8 dây dữ liệu tới CPU. Việc ghi dữ liệu vào các ô nhớ này cũng tương tự như việc đọc, tuy nhiên có một số điểm khác biệt chính.

Đầu tiên, lệnh ghi, địa chỉ và 8 bit được ghi sẽ được gửi đến chip DRAM. Tiếp theo, giống như trước khi nơi chứa được chọn, các tụ điện được cách ly và các bitline được nạp trước đến 5 volt. Sau đó, bằng cách sử dụng địa chỉ 16 bit, một hàng duy nhất được kích hoạt, các tụ điện làm nhiễu đường bit và bộ khuếch đại cảm giác sẽ cảm nhận được điều này và điều khiển các đường bit về 1 hoặc 0, do đó mở hàng. Tiếp theo, địa chỉ cột đi đến bộ ghép kênh, nhưng lần này, do lệnh ghi đã được gửi, bộ ghép kênh kết nối 8 dòng bit cụ thể với trình điều khiển ghi chứa 8 bit mà CPU đã gửi dọc theo dây dữ liệu và yêu cầu ghi. Các trình điều khiển ghi này mạnh hơn nhiều so với bộ khuếch đại cảm giác và do đó chúng ghi đè bất kỳ điện áp nào trước đó trên đường bit và điều khiển từng đường trong số 8 đường bit thành 1 vôn để ghi 1 hoặc 0 vôn cho 0.

Điện áp bitline mới này sẽ ghi đè các điện tích hoặc giá trị được lưu trữ trước đó trong mỗi 8 tụ điện ở hàng mở, do đó ghi 8 bit dữ liệu vào các ô nhớ tương ứng với địa chỉ 31 bit. Ba lưu ý nhanh chóng. Đầu tiên, việc ghi và đọc diễn ra đồng thời với cả 4 chip trong kênh bộ nhớ dùng chung, sử dụng cùng một địa chỉ 31-bit và các dây lệnh, nhưng với các dây dữ liệu khác nhau cho mỗi chip. Thứ hai, với DDR5 cho hệ nhị phân 1, điện áp thực tế là 1,1 volt, đối với DDR4 là 1,2 volt và các thế hệ trước thậm chí còn có điện áp cao hơn, với điện áp nạp trước trên đường bit bằng một nửa số điện áp này. Tuy nhiên, đối với DDR5, khi ghi hoặc làm mới điện áp cao hơn, khoảng 1,4 volt được áp dụng và lưu trữ trong mỗi tụ điện cho nhị phân 1 do điện tích bị rò rỉ theo thời gian.

Tuy nhiên, để đơn giản hóa vấn đề, chúng ta sẽ gắn bó với 1 và 0. Số lượng nhóm nơi chứa, nơi chứa, dòng bit và dòng từ rất khác nhau giữa các thế hệ và dung lượng khác nhau nhưng luôn có lũy thừa bằng 2. Hãy tiếp tục và thảo luận về thao tác thứ ba là làm mới các ô nhớ trong một nơi chứa. Như đã đề cập trước đó, các bóng bán dẫn được sử dụng để cách ly các tụ điện cực kỳ nhỏ và do đó các điện tích rò rỉ qua kênh. Thao tác làm mới khá đơn giản và là một chuỗi đóng tất cả các hàng, nạp trước các bitline lên 5 volt và mở một hàng. Để làm mới, giống như trước đây, các tụ điện làm nhiễu các đường bit và sau đó bộ khuếch đại cảm biến điều khiển các đường bit và tụ điện của hàng mở hoàn toàn lên đến 1 vôn hoặc xuống 0 vôn tùy thuộc vào giá trị được lưu trữ của tụ điện, do đó nạp đầy điện tích bị rò rỉ. Quá trình đóng hàng, sạc trước, mở và khuếch đại cảm giác này diễn ra hết hàng này đến hàng khác, mất 50 nano giây cho mỗi hàng, cho đến khi tất cả 65 nghìn hàng được làm mới, mất tổng cộng 3 mili giây hoặc lâu hơn để hoàn thành.

Hoạt động làm mới xảy ra cứ sau 64 mili giây cho mỗi nơi chứa, bởi vì theo thống kê thì thời gian đó sẽ thấp hơn thời gian trong trường hợp xấu nhất để một ô nhớ bị rò rỉ quá nhiều điện tích khiến 1 được lưu trữ biến thành 0, do đó dẫn đến mất dữ liệu. Hãy lùi lại một bước và xem xét lượng dữ liệu đáng kinh ngạc được di chuyển qua các ô nhớ DRAM. Các nơi chứa ô nhớ này xử lý tới 4 nghìn 8 trăm triệu yêu cầu đọc và ghi dữ liệu mỗi giây đồng thời làm mới mọi ô nhớ trong từng nơi chứa theo từng hàng khoảng 16 lần một giây. Đó là một lượng chuyển động dữ liệu đáng kinh ngạc và minh họa sức mạnh thực sự của máy tính. Chúng làm những việc đơn giản như so sánh, số học và di chuyển dữ liệu, nhưng với tốc độ hàng tỷ lần một giây.

Bây giờ, bạn có thể thắc mắc tại sao máy tính cần thực hiện nhiều chuyển động dữ liệu như vậy. Chà, lấy trò chơi điện tử này làm ví dụ. Bạn có những tính toán rõ ràng như chuyển động của nhân vật và con ngựa của bạn. Nhưng sau đó, có những loại cỏ, cây cối, đá và động vật riêng lẻ có vị trí và hình học được lưu trữ trong DRAM. Và sau đó, môi trường chẳng hạn như ánh sáng và bóng tối sẽ thay đổi màu sắc và kết cấu của môi trường để tạo ra một thế giới chân thực. Tiếp theo, chúng ta sẽ khám phá những đột phá và tối ưu hóa cho phép DRAM có tốc độ cực nhanh.

Chủ đề phức tạp đầu tiên mà chúng ta sẽ khám phá là tại sao lại có 32 nơi chứa, cũng như các thông số trên bao bì của DRAM là gì. Sau đó, chúng ta sẽ khám phá bộ đệm liên tục, mảng con và kiến ​​trúc DRAM gấp lại cũng như nội dung bên trong bộ khuếch đại cảm biến. Hãy xem xét các nơi chứa như đã đề cập trước đó, việc mở một hàng trong nơi chứa yêu cầu tất cả các bước và quá trình này cần có thời gian. Tuy nhiên, nếu một hàng đã được mở, chúng ta có thể đọc hoặc ghi vào bất kỳ phần nào của 8 ô nhớ chỉ sử dụng địa chỉ cột 10 bit và bộ ghép kênh chọn cột. Khi CPU gửi lệnh đọc hoặc ghi đến một hàng đã được mở, nó được gọi là lần truy cập hàng hoặc lần truy cập trang và điều này có thể xảy ra lặp đi lặp lại. Với một lần nhấn hàng, chúng tôi bỏ qua tất cả các bước cần thiết để mở một hàng và chỉ sử dụng địa chỉ cột 10 bit để ghép một bộ 8 cột hoặc dòng bit khác nhau, kết nối chúng với trình điều khiển đọc hoặc ghi, do đó tiết kiệm được một khoản đáng kể của thời gian.

Hiện tượng sai sót xảy ra khi địa chỉ tiếp theo dành cho một hàng khác, điều này yêu cầu DRAM phải đóng và cách ly hàng hiện đang mở, sau đó mở hàng mới. Trên một DRAM thường có 4 số chỉ định các tham số thời gian liên quan đến lần truy cập hàng, sạc trước và bỏ lỡ hàng. Con số đầu tiên đề cập đến thời gian cần thiết giữa việc gửi một địa chỉ với một hàng đang mở, do đó, một hàng được truy cập, đến khi nhận được dữ liệu được lưu trữ trong các cột đó. Số tiếp theo là thời gian cần thiết để mở một hàng nếu tất cả các dòng được cách ly và các dòng bit được nạp trước. Sau đó, số tiếp theo là thời gian cần thiết để nạp trước các đường bit trước khi mở một hàng và số cuối cùng là khoảng thời gian giữa một lần kích hoạt hàng và lần nạp trước tiếp theo. Lưu ý rằng những con số này được đo bằng chu kỳ đồng hồ.

Số lần truy cập hàng cũng là lý do tại sao địa chỉ được gửi thành hai phần.  Đầu tiên là lựa chọn nơi chứa và địa chỉ hàng được gọi là RAS và sau đó là địa chỉ cột được gọi là CAS và lựa chọn nơi chứa và địa chỉ hàng khớp với hàng hiện đang mở. Tất cả những gì DRAM cần là địa chỉ cột và lệnh mới, sau đó bộ ghép kênh chỉ cần di chuyển xung quanh hàng đang mở. Do tiết kiệm thời gian khi truy cập một hàng đang mở, bộ điều khiển bộ nhớ CPU, các chương trình và trình biên dịch được tối ưu hóa để tăng số lần truy cập hàng tiếp theo. Ngược lại khi một chương trình nhảy từ hàng này sang hàng khác lặp đi lặp lại thì rõ ràng là cực kỳ kém hiệu quả cả về năng lượng và thời gian. Ngoài ra, DRAM DDR5 có 32 nơi chứa vì lý do này.

Các hàng, cột, bộ khuếch đại cảm giác và bộ giải mã hàng của mỗi nơi chứa hoạt động độc lập với nhau và do đó, nhiều hàng từ các nơi chứa khác nhau có thể được mở cùng một lúc, tăng khả năng trúng hàng và giảm thời gian trung bình cần thiết cho CPU để truy xuất dữ liệu. Hơn nữa, bằng cách có nhiều nhóm nơi chứa, CPU có thể làm mới một nơi chứa trong mỗi nhóm nơi chứa tại một thời điểm trong khi sử dụng ba nơi chứa còn lại, do đó làm giảm tác động của việc làm mới. Một câu hỏi mà bạn có thể đã có trước đó là tại sao các nơi chứa lại cao hơn đáng kể so với chiều rộng? Bằng cách kết hợp tất cả các nơi chứa với nhau, bạn có thể nghĩ rằng con chip này thực sự cao 65 nghìn hàng và rộng 262 nghìn cột và bằng cách thêm 31 khoảng cách đều nhau giữa các cột, do đó tạo ra các nơi chứa. Nó cho phép linh hoạt và hiệu quả hơn nhiều trong việc đọc, viết và làm mới.

Ngoài ra, hãy lưu ý rằng trên bao bì DRAM có ghi dung lượng tính bằng Gigabyte, số lượng hàng triệu lần truyền dữ liệu mỗi giây, gấp hai lần tần số xung nhịp và tốc độ truyền dữ liệu cao nhất tính bằng Megabyte mỗi giây. Phần tối ưu hóa thiết kế tiếp theo mà chúng ta sẽ khám phá là bộ đệm cụm và độ dài cụm. Hãy thêm một vị trí lưu trữ tạm thời đọc và ghi 128 bit, được gọi là bộ đệm liên tục vào sơ đồ chức năng của chúng ta. Thay vì 8 dây đi ra khỏi bộ ghép kênh, chúng ta sẽ có 128 dây kết nối với các vị trí bộ đệm 128-bit này. Tiếp theo, địa chỉ cột 10 bit được chia thành hai phần, 6 bit được sử dụng cho bộ ghép kênh và 4 bit dành cho bộ đệm chùm.

Hãy cùng khám phá một lệnh đọc, với bộ đệm liên tục, 128 ô nhớ và đường bit được kết nối với bộ đệm liên tục bằng cách sử dụng 6 bit cột, do đó tạm thời tải hoặc lưu vào bộ đệm 128 giá trị vào bộ đệm liên tục. Sử dụng 4 bit cho bộ đệm, 8 vị trí dữ liệu được truy cập nhanh trong bộ đệm liên tục được kết nối với trình điều khiển đọc và dữ liệu được gửi đến CPU. Bằng cách quay vòng qua 4 bit này, tất cả 16 bộ 8 bit được đọc ra và do đó độ dài cụm là 16. Sau đó, một bộ 128 dòng bit và giá trị mới được kết nối và tải vào bộ đệm cụm. Ngoài ra còn có một bộ đệm ghi hoạt động theo cách tương tự. Lợi ích của thiết kế này là 16 bộ 8 bit trên mỗi vi mạch, tổng cộng là 1024 bit, có thể được truy cập và đọc hoặc ghi cực kỳ nhanh chóng, miễn là dữ liệu nằm cạnh nhau, nhưng đồng thời chúng ta vẫn có mức độ chi tiết và khả năng truy cập vào bất kỳ bộ 8 bit nào nếu yêu cầu dữ liệu đột biến.

Tối ưu hóa thiết kế tiếp theo là ngân hàng gồm 65536 hàng x 8192 cột này khá lớn và dẫn đến các dòng từ và dòng bit cực kỳ dài, đặc biệt là khi so sánh với kích thước của mỗi ô bộ nhớ tụ điện rãnh. Do đó, mảng lớn được chia thành các khối nhỏ hơn 1.024 x 1.024, với các bộ khuếch đại cảm giác trung gian bên dưới mỗi mảng con, đồng thời chia nhỏ các dòng từ và sử dụng sơ đồ giải mã hàng phân cấp. Bằng cách chia nhỏ các đường bit, khoảng cách và số lượng dây mà mỗi tụ điện nhỏ được kết nối với khi nó làm nhiễu đường bit đến bộ khuếch đại cảm giác sẽ giảm đi và do đó, tụ điện không cần phải quá lớn. Bằng cách chia nhỏ các dòng từ, tải điện dung từ tám nghìn cổng và kênh bóng bán dẫn được giảm xuống, và do đó, thời gian cần thiết để bật tất cả các bóng bán dẫn truy cập liên tiếp cũng giảm đi.

Xem thêm: ReviewOS