Tìm hiểu về bộ nhớ máy tính: Các khái niệm thường gặp
Sức mạnh của các thiết bị điện toán nói chung và máy tính cá nhân nói riêng đã tăng trưởng nhanh đến khó tin trong vài thập kỷ vừa qua, khi các CPU và GPU phổ thông ngày nay đã có tốc độ tính toán lên tới nhiều tỷ phép tính mỗi giây.
Tuy nhiên, những cải tiến về kích thước bóng bán dẫn và xung nhịp chip vẫn chỉ là một nửa của câu chuyện, vì kiến trúc máy tính hiện đại đòi hỏi vai trò ngày càng lớn của một thành phần quan trọng khác: đó là bộ nhớ !
Thật vậy, giống như những chiếc máy xay bột cần có nguyên liệu đầu vào là hạt ngũ cốc, máy tính cũng có dạng “nguyên liệu” đầu vào của riêng nó, đó là dữ liệu.
Dù cho chiếc máy xay của bạn có công suất lớn đến đâu, nếu khả năng cung cấp hạt ngũ cốc của bạn là chậm với số lượng hạn chế, thì bạn cũng không thể đòi hỏi đầu ra với số lượng bột lớn. Bộ nhớ, với vai trò là nơi lưu trữ dữ liệu, xử lý cả đầu vào lẫn đầu ra trong máy tính, do đó cũng trở thành yếu tố quan trọng quyết định tốc độ của thiết bị điện toán.
Trong Series bài viết ngắn về bộ nhớ máy tính này, mình sẽ lần lượt trình bày, phân loại chức năng và các đặc tính kỹ thuật của các loại bộ nhớ.
Không chỉ nhằm hiểu thêm về cơ chế hoạt động của máy tính mà còn giúp các bạn có khả năng phân tích lựa chọn các thành phần bộ nhớ và linh kiện liên quan khi xây dựng hệ thống máy tính của riêng mình.
Trong bài viết đầu tiên này, mình sẽ trình bày tổng quan các thông số của bộ nhớ trên máy tính hiện đại, với khái niệm máy tính ở đây bao gồm cả các thiết bị di động như Tablet, smartphone… bởi rất rõ ràng, chúng ta đã dần không còn có thể nhận ra ranh giới phân biệt các loại thiết bị này với PC truyền thống nữa!
#1. Dung lượng bộ nhớ máy tính
Nền tảng của công nghệ xử lý và lưu trữ số là toán học nhị phân, với mỗi chữ số (bit) chỉ mang một trong hai trạng thái 0 và 1 tương ứng đóng/ngắt của linh kiện điện tử.
Bằng việc kết hợp nhiều bit theo các quy ước có sẵn, người ta có thể biểu diễn mọi ký tự và chữ số của các hệ chữ viết và cơ số khác. Điều quan trọng nhất là hệ nhị phân đủ đơn giản để thiết kế xử lý trên các bảng mạch điện tử, điều mà các hệ cơ số phức tạp khác không thể làm được.
Dung lượng bộ nhớ chính là khả năng lưu trữ nhiều hay ít của thiết bị nhớ được tính theo đơn vị bit. Trong thực tế, dữ liệu lưu trữ trên máy tính là những bội số rất lớn của bit, chẳng hạn một ký tự thông thường mã hóa theo bảng mã ASCIIđã cần đến 8 bit. Do đó cần những đơn vị lớn hơn để thể hiện cho bớt phức tạp:
- 1 Nibble= 4 bit
- 1 Word= 8 bit= 1 Byte(1B)
- 1 Double Word= 16 bit
- 1TB=1024GB=1024^2MB=1024^3KB=1024^4B=8*1024^4b
- Các ổ cứng HDD phổ thông ngày nay cũng có dung lượng vài trăm GB đến vài TB
Đến đây ta có thêm một khái niệm mới là Byte, đơn vị mà nhiều khi vẫn bị nhầm lẫn với bit cả về mặt ký hiệu và sử dụng.
Như đã nói ở trên, hầu hết máy tính ngày nay sử dụng bảng mã ASCII để mã hóa dữ liệu, với mỗi 8bit để mã hóa một ký tự. Do đó người ta đã đặt ra đơn vị Byte với 1Byte= 8bit để tiện lợi hơn khi biểu diễn.
Ký hiệu của bit sử dụng chữ b viết thường trong khi với Byte người ta sử dụng ký tự viết hoa B. Do đó lần tới bắt gặp kí hiệu Kb hay Mb, đừng nhầm lẫn mà hãy tỉnh táo đem chia 8 trước khi thu được những đơn vị quen thuộc là Kilobyte(KB)/Megabyte(MB).
#2. Tần số làm tươi/ làm mới ( Refresh Rate)
Đây là thông số đặc trưng đối với các loại bộ nhớ lưu trữ sử dụng tụ điện như DRAM rất phổ biến ngày nay: Sau mỗi khoảng thời gian nhất định các tụ điện cần được nạp lại để bù vào phần điện tích đã mất đi do rò rỉ, đảm bảo tính chính xác và tin cậy của dữ liệu.
Số lần tái nạp của tụ trên mỗi giây chính là Refresh Rate của bộ nhớ DRAM, có thể lên tới hàng ngàn lần mỗi giây. Tuy nhiên tốc độ bộ nhớ không bị ảnh hưởng nhiều bởi thông số này, mà bởi xung nhịp bộ nhớ sẽ được trình bày dưới đây
#3. Xung nhịp (BUS clock)
Không giống như con người, các linh kiện máy tính phân chia việc thực hiện từng lệnh thành những khoảng thời gian rất nhỏ bằng nhau tuyệt đối.
Do đó đòi hỏi cần một bộ đếm thời gian (Clock) để điều khiển việc thực hiện tuần tự các lệnh và chuyển tiếp đến lệnh tiếp theo.
Chẳng hạn CPU có xung nhịp 2000mhz, nghĩa là mỗi giây bộ đếm của nó sẽ đếm được tỷ chu kỳ xung. Nếu mỗi lệnh được xử lý trung bình mất 2 chu kỳ xung, thì mỗi giây CPU sẽ xử lý được 2tỷ/2=1tỷ lệnh !
Bộ nhớ, suy cho cùng cũng chỉ là nơi cung cấp dữ liệu để CPU xử lý. Do đó để có thể giao tiếp được với CPU, bộ nhớ cũng cần một bộ đếm thời gian riêng cho mình để biết lúc nào nên đưa dữ liệu lên/nhập dữ liệu về từ đường truyền(BUS) nối với CPU.
Thông số về số lần giao tiếp với đường truyền của bộ nhớ chính là BUS clock của nó, thông thường từ vài trăm mhz đến vài ghz.
Ngày nay, trên các bộ nhớ chuẩn DDR (Double Data Rate), mỗi chu kỳ giao tiếp có thể truyền được hai lần dữ liệu, do đó mà các nhà sản xuất ghi thông số xung nhịp bộ nhớ gấp đôi con số thực. Chẳng hạn bộ nhớ ram DDR4-2400mhz thực chất chỉ có xung nhịp 1200mhz mà thôi!
#4. Độ rộng đường truyền (BUS width)
Như đã nói ở trên, BUS là những đường dây điện liên kết và truyền tải dữ liệu giữa các thành phần của máy tính với nhau, điển hình là liên kết CPU-RAM. Dễ dàng nhận thấy số lượng dây nối này càng nhiều thì lượng dữ liệu đi qua được mỗi lần càng lớn, và con số đó chính là thông số BUS width của bộ nhớ.
Giả sử từ bộ nhớ RAM DDR có 64 đường truyền dữ liệu nối với CPU, tại mỗi xung nhịp bộ đếm bất kỳ, trên mỗi đường dây này sẽ có 1 trong hai trạng thái có điện (1) và không có điện(2) tương ứng 1 bit dữ liệu. Do đó với 64 đường truyền thì tại mỗi thời điểm sẽ có 64 bit =8 Byte dữ liệu được truyền qua.
#5. Băng thông ( Memory Bandwidth)
Chắc chắn băng thông là khái niệm đã quá quen thuộc với bất cứ ai từng sử dụng các thiết bị điện tử.
Băng thông là thông số đặc trưng cho tốc độ của mọi thứ từ đường truyền mạng Internet nhà bạn đến khả năng truyền tải của băng tần sóng wifi… đối với bộ nhớ, băng thông là lượng dữ liệu đọc/ghi được mỗi giây tính bằng đơn vị Byte. Công thức để tính băng thông bộ nhớ sẽ là:
- Băng thông= độ rộng đường truyền*tốc độ xung nhịp/8
Trở lại với ví dụ về bộ nhớ RAM chuẩn DDR, với 64 bit độ rộng BUS và xung nhịp 2400mhz của một kit RAM DDR4, chúng ta tính được băng thông bộ nhớ là 2400mhz*64/8=19200MB/s (19.2 Gigabyte trên một giây), con số khá ấn tượng phải không ^^
#6. Latency – độ trễ truy cập
Dòng điện rất nhanh! Chắc chắn là vậy, trên thực tế tác dụng của dòng điện có tốc độ ngang với ánh sáng, thứ nhanh nhất trong vũ trụ này.
Chẳng thế mà người ta vẫn hay ví von là “nhanh như điện”. Máy tính với phần lớn linh kiện hoạt động dựa trên tác dụng của dòng điện, hóa ra lại không nhanh như chúng ta vẫn tưởng, đặc biệt là với bộ nhớ!
Đúng thật, suốt lịch sử phát triển của điện toán bộ nhớ vẫn luôn là kẻ bám đuổi về tốc độ, và trong phần lớn khoảng thời gian là kém xa so với CPU.
Nguyên nhân chính là do các linh kiện cấu thành bộ nhớ và cơ chế truy cập bộ nhớ của máy tính. Trong khi các linh kiện bộ nhớ như tụ điện cần khoảng 10^-8s để thay đổi trạng thái, CPU sẽ phải chờ đợi để nhận được dữ liệu phản hồi từ bộ nhớ.
Mặt khác, do cấu tạo nhiều tầng phức tạp của bộ nhớ và cơ chế truy nhập giữa các tầng có hiệu suất không cao, thời gian chờ đợi của CPU từ khi phát tín hiệu yêu cầu Data đến khi được đáp ứng sẽ càng kéo dài thêm theo số tầng bộ nhớ phải đi qua, hai con số trên là yếu tố chính tạo nên độ trễ truy cập của CPU.
Nguồn blogchiasekienthuc.com