Lởi mở đầu :
Bài viết này dựa trên kiến thức được tổng hợp từ rất nhiều nguồn khác nhau. Không đi sâu vào các phương thức OverClock Ram mà chỉ là các khái niệm căn bản.Bài viết có sử dụng hình vẽ từ các tài liệu trên mạng.Trong bài viết còn nhiều chỗ chỉ là ý kiến cá nhân, có gì sai sót mong được mọi người chỉ giáo. I/Định Nghĩa
1, Định nghĩa Ram
Ram (Random Access Memory ) là bộ nhớ truy cập ngẫu nhiên. Khác với truy cập tuần tự. Có thể lấy ví dụ có 100 ô nhớ được đánh địa chỉ từ 1 đến 100. Với cách truy cập tuần tự muốn lấy dữ liệu từ ô nhớ thứ 99, cần phải truy cập tuần tự từ ô nhớ thứ 1,2,3…….cho đến ô nhớ thứ 99. Nhưng với phương thức truy cập ngẫu nhiên, có thể truy cập ngay đến ô nhớ thứ 99 mà không cần phải qua các ô nhớ trước đó.
Có 2 loại Ram cơ bản là SRAM ( Static Ram ) hay còn gọi là Ram tĩnh và DRAM ( Dynamic RAM) hay còn gọi là RAM động .
SRAM là loại Ram ko cần phải refesh mà dữ liệu vẫn không bị mất,do đó dung lượng lớn hơn và cũng đắt tiền hơn.
Trong đó DRAM cần phải được refresh thường xuyên (Hàng triệu lần mỗi giây ) để đảm bảo dữ liệu lưu trữ không bị mất đi.
Cả SRAM và DRAM đều sẽ bị mất dữ liệu sau khi tắt máy.
Để hiểu rõ hơn về quá trình refresh ta có thể nhìn vào hình sau :
2,Nhiệm vụ của RAM :
Ram là nơi hệ điều hành,ứng dụng lưu trữ data để CPU có thể nhanh ***ng truy xuất. Tăng dung lượng Ram đồng nghĩa với việc giảm số lần CPU phải lấy dữ liệu từ Hard Disk, một quá trình mất nhiều thời gian hơn đọc dữ liệu trực tiếp từ RAM.
(Thời gian truy xuật RAM được tính = ns trong khi đó thời gian truy xuất HD được tính = mili s )
Máy tính cá nhân cần 1 lượng RAM nhất định cho mỗi ứng dụng,càng nhiều ứng dụng bạn mở, lượng RAM cần dùng càng nhiều. Vậy điều gì sẽ xảy ra khi RAM đầy. Rất may là hệ điều hành của chúng ta được thiết kể để xử lí trường hợp này. Khi Ram gần đầy hệ điều hành sẽ lấy bớt 1 phần dữ liệu từ RAM và ghi vào ổ cứng, thường là phần ít được dùng nhất. Phần HDD dùng để ghi dữ liệu tạm thời này được gọi là PAGE FILE hay SWAP FILE dịch sang tiếng việt có nghĩa là “Tập tin tráo đổi”.RAM của chúng ta vì thế sẽ không bao giờ bị đầy nhưng cái giá phải trả sẽ là việc hệ thống hoạt động ỳ ạch vì CPU phải lấy quá nhiều dữ liệu từ ổ cứng.
Một câu hỏi được đặt ra là vì sao máy tính của chúng ta không phải là một cỗ máy chỉ có RAM thay luôn cho chức năng của ổ cứng vì RAM có tốc độ truy xuất rất nhanh. Lý do rất đơn giản là RAM bị mất dữ liệu sau khi tắt máy và hơn thế nữa giá thành của RAM quá đắt trong việc dùng để lưu trữ dữ liệu lên đến hàng trăm GB trong các máy tính ngày nay.
3,Các định nghĩa khác :
SIMM : Single Inline Memory Module loại bộ nhớ dùng trong các máy tính cổ, gồm loại 30 pin và 72 pin. Nhiều người cho rằng SIMM là loại Module RAM chỉ có 1 mặt ( Single Side) nhưng không hẳn vì vần có loại SIMM double sides. Bus width của loại RAM này là 32 bit.
DIMM : Double Inline Memory Module là loại bộ nhớ trong các máy tính ngày nay. Được biết đến với DIMM 168 pin (SDR-SDRAM hay còn gọi là SDRAM) 184pin (DDR-SDRAM chính là DDR1) và loại 240pin (DDR2-SDRAM hay còn biết đến là DDR2 ) ngoài ra còn có các loại khác 72 và 144 pin 200 pin (SODIMM cho laptop).Bus width của DIMM là 64 bit đây là khác biệt cơ bản nhất giữa DIMM và SIMM chứ không phải là SIMM thì single side và DIMM thì double sides như nhiều người nghĩ.
SDR-SDRAM : Single Data Rate Synchronous Dynamic RAM là loại chip RAM chỉ chuyển được 1 bit dữ liệu trong 1 xung nhịp.Được sử dụng rộng rãi từ những năm 1990. Chi tiết về SDRAM sẽ được đề cập trong những bài viết sau.
DDR-SDRAM: Double Data Rate Synchronous Dynamic RAM là loại chip RAM truyển được dữ liệu trong cả 2 mặt lên và xuống của xung nhịp. Hay nói cách khác 1 xung nhịp DDR-SDRAM truyển được 2 bit dữ liệu. Đây được gọi là Double Pump.
DDR2-SDRAM : Thế hệ sau của DDR với tốc độ từ 400MHZ trở lên và module có 240 pin.
RAMBUS: Là loại RAM tốc độ cao tử 400 – 800MHZ nhưng bus width lại chỉ là 16 bit.Hay còn gọi là RDRAM ( Rambus Dynamic Ram )
ECC : Error Correction Code là Code tuân theo một luật nhất định có khả năng phát hiện và sửa lỗi trong từng xung nhịp. Có các loại code Hamming code, Reed-Solomon code, Reed-Muller code, Binary Golay code, convolutional code, Turbo code và nhiều Code khác. Được sử dụng trong DIMM và các thiết bị lưu trữ cao cấp. Một ECC đơn giản có thể sửa 1bit lỗi và phát hiện 2 bit lỗi khác trong khi đó một số ECC khác có thể sửa và phát hiện nhiều bit lỗi đồng thời. ECC DIMM đắt tiền và chỉ được sử dụng trong các hệ thống máy chủ đòi hỏi độ chính xác cao cho dữ liệu lưu trữ. Cần phân biệt ECC với Registered hay Buffered RAM.
Memory Cell : Còn gọi là ô nhớ bao gồm 1 transistor và 1 Capacitors thể hiện trạng thái 0 và 1. Transistor ở đây đóng vai trò như một công tắc để chuyển đổi giữa 2 trạng thái này.Có các cổng Data in Data out và Write Enable ( Mặc định là tắt khi mở thì sẽ chuyển từ chế độ Read sang Write lúc này dữ liệu sẽ được nạp vào ).
Memory Chip: Là tập hợp rất nhiều Row (Hàng) và Column(Cột) . Tưởng tượng Memory Chip như một bảng tính Excel và mỗi một ô chính là location. Các Row và Column này có địa chỉ riêng.Trong mỗi một Location gồm rất nhiều Memory Cell.
Memory Bank: Tập hợp các Memory Chip để đồng thởi có thể cung cấp đủ bit dữ liệu tương xứng với bus dữ liệu của CPU.
II/Cách thức truy cập RAM
1, Cấu tạo của 1 Chip nhớ.
_RAS ( Row Address Strobe ) Là tín hiệu để xác định địa chỉ nhớ theo hàng.
_CAS ( Column Address Strobe) là tín hiệu để xác định địa chỉ nhớ theo cột.
_Address Bus là đường truyền tín hiệu RAS và Cas.
_Data Bus là đường truyền dữ liệu giữa Memory Controler và chip nhớ.
_Khi cần truy xuất đến 1 địa chỉ nhớ bất kì Memory Controler sẽ gửi các tín hiệu RAS và CAS tương xứng đến Chip nhớ tương ứng với dữ liệu cần lấy.
2.Cách thức truy cập chip nhớ.
_Tín hiệu RAS sẽ được Mem Control truyền theo Address bus.
_Khi RoW Addr Latch nhận được tín hiệu RAS. Nó sẽ chuyển tín hiệu này sang Row Address Decoder ( Bộ phận giải mã địa chỉ nhớ theo hàng) để giải mã địa chỉ Row cần được truy xuất .
_Row này sẽ được kích hoạt.
_Sau đó tín hiệu CAS sẽ được gửi đến Column Address Latch và tương tự Column cần được truy xuất được kích hoạt.
_Mặc định là Write Enable Deactived ( Ko có trong hình vẽ ) dữ liệu sẽ được đọc theo Data Bus đi về Memory Controler.
_Nếu Write Enable được Active thì dữ liệu sẽ được ghi.
Chính cách thức truy xuất dữ liệu này mà sẽ dẫn đến Delay tạo nên Memory Timming sẽ được nhắc đến ở phần sau.
3, Dung lượng RAM tối đa và Memory Bank
Các Module ( Thanh Ram) có thể dựa trên các chip x4 x8 hoặc x16, x4 và x8 muốn nói đến bus width của chip nhớ tức là đồng thời chip nhớ có thể cho ra bao nhiêu bit dữ liệu. Hầu hết các hệ thống hiện nay đều sử dụng loại x8 hoặc x16. Các hệ điều hành 32bit có khả năng quản lí địa chỉ nhớ trong 32bit kết hợp với CPU 32bit có khả năng đánh dấu địa chỉ nhớ trong 32bit. Tức là sẽ có 2^32 địa chỉ nhớ được đánh dấu và quản lí. 2^32 = 4294967296 ~ 4Gb địa chỉ nhớ. Tương ứng với mỗi địa chỉ nhớ là 8bit (x8). Như vậy lượng Ram tối đa mà 1 hệ thống 32 bit có thể có là 4Gb * 8 = 4GB. Đối với các hệ điều hành 64 bit kết hợp với hệ thống 64 bit có khả năng đánh dấu và quản lí địa chỉ nhớ trong 64bit. Tức là lượng Ram tối đa là có 4GB*2^32 (do 2^64 gấp 2^32 là 2^32 lần ). Một con số thật khủng khiếp phải không. Chuẩn mỗi location ( địa chỉ nhớ) ứng với 8bit là do IBM đưa ra. Nhưng sau này thì đã có các chip x16 nên lượng RAM tối đa với hệ thống 32bit trên lý thuyết sẽ cao hơn 4GB nhiều nhưng trên thực tế với 4GB cũng là đã khó kiếm dc BIOS hỗ trợ.
Với 1 Chip RAM có kí hiệu 32M x 8 thì có thể hiểu 32M là có 32 triệu location (32M) mỗi location là 8 bit (x8) nên chip RAM này có dung lượng 32Mbyte. Tương tự với các kĩ hiệu khác như 16Mx16 64M x 4
Có thể chúng ta sẽ thắc mắc, Data Bus width của Ram là 64 bit. Tương xứng với mỗi địa chỉ nhớ là 8 bit. Vậy làm thế nào mà CPU tận dụng được 64 bit bus width này.1 Module RAM gồm nhiều chip Trong đó 8 chip hợp lại tạo thành 1 Bank ( đối với loại chip x8) và cả 16 chip hợp thành 1 Bank (đối với loại chip x4) hoặc 4 chip hợp thành 1 BANK đối với loại x16. Đây là hình minh họa cho 1 BANK đối với chip x8
Khi cần nạp dữ liệu CPU sẽ nạp toàn bộ dữ liệu vào 1 Bank. Như vậy cả 64 bit dữ liệu sẽ được phân đều trên 8 chip x8. Trên chỉ là 1 VD để làm rõ chức năng của Bank. Trên thực tế 1 SDRAM(ko phải SDR-SDRAM đâu nha) chip có khoảng 60 pin. Ngoài các pin cho địa chỉ, điều phối và điện tiêu thụ thì sẽ còn 16 pin để truyền dữ liệu. Như vậy 4 Chip này đã đủ hợp thành 1 BANK để lấp đầy 64 bit dữ liệu cho CPU.
4.Single Channel và Dual Channel
Ở chế độ Single Channel sẽ chỉ có 1 Bank duy nhất được truy cập vào cùng 1 thời điểm. Nhưng ở chế độ Dual Channel sẽ có tới 2 Bank ở 2 DIMM khác nhau được truy cập cùng 1 lúc. Điều này đã làm cải thiện băng thông của toàn bộ hệ thống.Có thể tham khảo thêm về Dual Channel ở bài viết của Enrique
_ http://www.banvacntt.com/forum/index.php?showtopic=477
Cách tính băng thông của RAM :
_Ở chế độ Single Channel : Sẽ chỉ có 1 BANK được truy xuất trong cùng 1 thời điểm. Data Bus Width sẽ là 64 bit. Như vậy
BandWidth = Bus Speed * Bus Width/8 = Bus Speed * 64/8 = Bus Speed *8 (Sở dĩ chia 8 là do Bus width tính theo đơn vị Bit còn BandWidth lại tính theo đơn vị là MB/s 1byte = 8 bit)
VD: Với 1 thanh DDR-SDRAM 400 MHZ thì BandWidth = 400 * 64/8 = 3200MB/s vì thế mà người ta còn kí hiệu PC3200
_Ở thế độ Dual Channel : Sẽ có 2 BANK ở 2 DIMM khác nhau được truy xuất cùng 1 lúc. Lúc này mỗi Bank sẽ mở 1 kênh về Mem Controler. Mỗi kênh có BandWidth là 64 bit như vậy tổng BandWidth của toàn bộ hệ thống là 128 Bit.
Lúc này BandWidth = Bus Speed * 128/8 = Bus Speed * 8.
Phần tiếp theo : Memory Timming.
III/ Memory Timing
Chúng ta thường nghe mọi người nhắc đến RAM Timings kiểu 2-2-2-5-1T hay 3-3-3-8-2T và là một trong những tiêu chí để chọn RAM đối với dân OverClocker. Vậy thực chất những con số này có ý nghĩa gì.
Cas Latency (TCL) (Số thứ 1) : Là khoảng thời gian ( tính theo cycle) từ khi CAS được Active cho đến khi dữ liệu bắt đầu được truyền trong Data Bus. Chính vì thế mà đây được coi là 1 chỉ số hết sức quan trọng. Để hiểu rõ hơn về Cas Latency có thể nhìn hình sau
NOP là No Operation ( không hoạt động) . Vì sao xen kẽ giữa các lệnh READ lại kèm theo các NOP. Lý do rất đơn giản là tốc độ của CPU thường cao hơn so với tốc độ xử lí của RAM. Chính vì thế mà giữa các lệnh READ CPU phải chèn theo các lệnh No Operation để RAM có thời gian xử lí và cung cấp đủ dữ liệu trước khi tiếp nhận 1 lệnh mới.
Ras to Cas delay (TRCD) (Số thứ 2) : Nếu nhìn vào cách truy xuất RAM ở trên thì các bạn có thể dễ dàng hiểu ngay đây là khoảng thời gian nhỏ nhất từ khi RAS được active cho đến khi CAS được active.
Ras precharge time (TRP) (Số thứ 3): Trước đây trong các chip RAM đời cũ thì cứ sau mỗi lần Row active nó sẽ bị deactived ngay lập tức và phải sau 1 khoảng vài cycle để precharge nó mới được active trở lại hoặc Row khác được active. Nhưng đối với các chip RAM bây giờ có thêm chế độ FAST PAGE MODE. Với FPM thì Row sẽ được active cho đến khi dữ liệu cần nằm ở Row khác. Lúc này RoW này sẽ được deactive. Và Row chứa dữ liệu cần sẽ phải mất 1 khoảng thời gian precharge trước khi được actived. Đay chính là TRP.
Min Ras Active Time (TRAS)(Số thứ 4): Do đảm bảo vấn để về nhiệt độ nên sau 1 khoảng thời gian Actived thì Row phải được Shutdown. Đây là delay giữa khoảng thời gian Row bị deactive trước khi nó được actived trở lại.
Comand Rate ( 1T hay 2T) : Là khoảng thời gian giữa Chip ram được chọn và lệnh được gửi đến Chip RAM đó.
Đây là các latency quan trọng nhất ngoài ra còn có nhiều timing RAM khác không được đề cập ở đây.
Mỗi thanh RAM đều có các chỉ số mặc định do nhà sản xuất đưa ra nhằm đảo bảo RAM hoạt động ổn định nhất và được ghi vào SPD EEPROM và BIOS được mặc định nhận chỉ số này tự động. Dĩ nhiên là có thể thay đổi các timing này nếu BIOS hỗ trợ nhưng việc thay đổi không có kinh nghiệm sẽ dẫn đến hỏng RAM hoặc hệ thống hoạt động không ổn định.
Chính các Delay này đã làm cho hiệu năng của RAM chưa bao giờ là 100% cho dù trong các hệ thống AMD với khả năng quản lí memory mạnh.