Trong vi điều khiển nói riêng và máy tính nói chung, bộ nhớ là một phần không thể thiếu được. Vậy có những loại bộ nhớ (memory) nào, cách chúng hoạt động ra sao. Tất cả sẽ có trong bài hôm nay
Bộ nhớ là gì?
Bộ nhớ máy tính lưu trữ mọi thông tin dưới dạng bit hoặc số không hoặc một. Do đó, thành phần cơ bản chính của bộ nhớ là một bit. Nhưng bộ nhớ thường được tổ chức theo byte.
Một byte bao gồm 8 bit. Do đó, một byte là thông tin tối thiểu mà các vi điều khiển có thể đọc và viết. Nói cách khác, mọi vị trí bộ nhớ đều có địa chỉ byte. Điều đó có nghĩa là, mỗi vị trí bộ nhớ bao gồm một byte và mỗi địa điểm có một địa chỉ duy nhất. Do đó, ký ức được tổ chức theo thứ tự của hàng trăm và hàng ngàn byte.
Không giống như máy tính để bàn, vi điều khiển có lượng bộ nhớ hạn chế thường trong khoảng hàng trăm kbyte đến Mbyte.
Các loại bộ nhớ được sử dụng trong vi điều khiển
Chủ yếu, vi điều khiển có hai loại bộ nhớ trên chip như :
- ROM – Read Only Memory
- RAM – Random Access Memory
- Bộ nhớ đệm của CPU được gọi là Cache
Bộ Nhớ Đệm (Cache Memory)
Cache memory là gì?
Bộ nhớ Cache là một bộ nhớ đặc biệt có tốc độ rất cao. Nó được sử dụng để tăng tốc và đồng bộ hóa với CPU tốc độ cao. Bộ nhớ đệm đắt hơn bộ nhớ chính hoặc bộ nhớ đĩa nhưng kinh tế hơn so với thanh ghi CPU. Bộ nhớ đệm là một loại bộ nhớ cực nhanh, hoạt động như một bộ đệm giữa RAM và CPU. Nó lưu giữ dữ liệu và hướng dẫn được yêu cầu thường xuyên để chúng có sẵn ngay lập tức cho CPU khi cần.
Bộ nhớ Cache được sử dụng để giảm thời gian trung bình để truy cập dữ liệu từ Bộ nhớ chính. Bộ nhớ đệm là một bộ nhớ nhỏ hơn và nhanh hơn, lưu trữ các bản sao dữ liệu từ các vị trí bộ nhớ chính được sử dụng thường xuyên. Có nhiều bộ đệm độc lập khác nhau trong một CPU, nơi lưu trữ các lệnh và dữ liệu.
Hiệu suất
Khi bộ xử lý cần đọc hoặc ghi một vị trí trong bộ nhớ chính, trước tiên nó sẽ kiểm tra mục nhập tương ứng trong bộ nhớ đệm.
- Nếu bộ xử lý nhận thấy rằng vị trí bộ nhớ nằm trong bộ nhớ cache, thì một lần truy cập bộ nhớ cache đã xảy ra và dữ liệu được đọc từ bộ nhớ cache
- Nếu bộ xử lý không tìm thấy vị trí bộ nhớ trong bộ nhớ cache, thì bộ nhớ cache đã xảy ra. Đối với lỗi bộ nhớ đệm, bộ đệm sẽ phân bổ mục nhập mới và sao chép dữ liệu từ bộ nhớ chính, sau đó yêu cầu được thực hiện từ nội dung của bộ đệm.
Hiệu suất của bộ nhớ đệm thường được đo bằng một đại lượng gọi là Tỷ lệ truy cập.
Các loại bộ nhớ cache
- Bộ đệm chính – Bộ đệm chính luôn nằm trên chip xử lý. Bộ nhớ đệm này nhỏ và thời gian truy cập của nó có thể so sánh với thời gian truy cập của các thanh ghi bộ xử lý.
- Bộ đệm thứ cấp – Bộ đệm thứ cấp được đặt giữa bộ đệm chính và phần còn lại của bộ nhớ. Nó được gọi là bộ đệm cấp 2. Thông thường, bộ đệm cấp 2 cũng được đặt trên chip xử lý.
Vị trí của tham chiếu
Vì kích thước của bộ nhớ đệm nhỏ hơn so với bộ nhớ chính. Vì vậy, để kiểm tra phần nào của bộ nhớ chính nên được ưu tiên và tải trong bộ nhớ cache được quyết định dựa trên vị trí của tham chiếu.
*Các loại địa phương tham chiếu
- Vị trí không gian của tham chiếu: Điều này nói rằng có khả năng phần tử sẽ hiện diện ở vị trí gần với điểm tham chiếu và lần sau nếu được tìm kiếm lại thì ở gần điểm tham chiếu hơn.
- Vị trí thời gian của tham chiếu: Trong thuật toán ít được sử dụng gần đây nhất này sẽ được sử dụng. Bất cứ khi nào có lỗi trang xảy ra trong một từ sẽ không chỉ tải từ trong bộ nhớ chính mà lỗi trang hoàn chỉnh sẽ được tải vì quy tắc tham chiếu không gian nói rằng nếu bạn đang đề cập đến bất kỳ từ nào, từ tiếp theo sẽ được giới thiệu trong sổ đăng ký của nó, đó là lý do tại sao chúng tôi tải bảng trang hoàn chỉnh để khối hoàn chỉnh sẽ được tải.
Bộ nhớ RAM (Random Access Memory)
RAM là gì?
RAM (Bộ nhớ truy cập ngẫu nhiên) là phần cứng trong thiết bị máy tính nơi lưu giữ hệ điều hành ( OS ), các chương trình ứng dụng và dữ liệu đang được sử dụng để bộ xử lý của thiết bị có thể nhanh chóng truy cập được. RAM là bộ nhớ chính trong máy tính và Tốc độ đọc ghi nhanh hơn nhiều so với các loại lưu trữ khác , chẳng hạn như ổ đĩa cứng ( HDD ), ổ đĩa thể rắn ( SSD ) hoặc ổ đĩa quang.
Thông tin lưu trên RAM chỉ là tạm thời. Điều đó có nghĩa là dữ liệu được giữ lại trong RAM miễn là máy tính đang bật, nhưng nó sẽ bị mất khi máy tính tắt. Khi máy tính được khởi động lại, hệ điều hành và các tệp khác được tải lại vào RAM, thường là từ ổ cứng HDD hoặc SSD.
Chức năng của RAM
Do tính chất biến động của nó, RAM không thể lưu trữ dữ liệu vĩnh viễn. RAM có thể được so sánh với bộ nhớ ngắn hạn của một người và ổ đĩa cứng với bộ nhớ dài hạn của một người. Trí nhớ ngắn hạn tập trung vào công việc trước mắt, nhưng nó chỉ có thể lưu giữ một số dữ kiện hạn chế trong tầm nhìn bất kỳ lúc nào. Khi bộ nhớ ngắn hạn của một người đầy lên, nó có thể được làm mới với các dữ kiện được lưu trữ trong bộ nhớ dài hạn của não.
Đĩa cứng của máy tính có thể đầy dữ liệu và không thể lấy thêm nữa, nhưng RAM sẽ không hết bộ nhớ. Tuy nhiên, sự kết hợp giữa RAM và bộ nhớ lưu trữ hoàn toàn có thể được sử dụng hết.
RAM có khái niệm tương tự như một tập hợp các hộp trong đó mỗi hộp có thể chứa số 0 hoặc số 1. Mỗi hộp có một địa chỉ duy nhất được tìm thấy bằng cách đếm trên các cột và xuống các hàng. Một tập hợp các hộp RAM được gọi là một mảng và mỗi hộp được gọi là một ô.
Để tìm một ô cụ thể, bộ điều khiển RAM gửi địa chỉ cột và hàng xuống một đường điện mỏng được khắc vào chip. Mỗi hàng và cột trong mảng RAM có dòng địa chỉ riêng. Bất kỳ dữ liệu nào được đọc đều chảy ngược trở lại trên một dòng dữ liệu riêng biệt.
RAM có dung lượng vật lý nhỏ và được lưu trữ trong các vi mạch. Nó cũng nhỏ về lượng dữ liệu mà nó có thể chứa. Một máy tính xách tay điển hình có thể đi kèm với 8 gigabyte RAM, trong khi một đĩa cứng có thể chứa 10 terabyte.
Các vi mạch RAM được tập hợp lại với nhau thành các mô-đun bộ nhớ. Chúng cắm vào các khe cắm trên bo mạch chủ của máy tính. Một bus , hoặc một tập hợp các đường dẫn điện, được sử dụng để kết nối các khe cắm của bo mạch chủ với bộ xử lý.
Các loại RAM
RAM có hai dạng chính:
- Bộ nhớ truy cập ngẫu nhiên động ( DRAM) tạo nên RAM của thiết bị máy tính điển hình và như đã được lưu ý trước đó, nó cần bật nguồn để giữ lại dữ liệu được lưu trữ.
Mỗi tế bào DRAM có một điện tích hoặc thiếu điện tích được giữ trong một tụ điện. Dữ liệu này phải được làm mới liên tục bằng một lần sạc điện tử vài mili giây một lần để bù cho những rò rỉ từ tụ điện. Một bóng bán dẫn đóng vai trò như một cổng, xác định liệu giá trị của tụ điện có thể được đọc hoặc ghi.
- Bộ nhớ truy cập ngẫu nhiên tĩnh ( SRAM) cũng cần nguồn điện liên tục để giữ dữ liệu, nhưng nó không cần phải được làm mới liên tục theo cách DRAM làm.
Trong SRAM, thay vì một tụ điện giữ điện tích, bóng bán dẫn hoạt động như một công tắc, với một vị trí là 1 và vị trí còn lại là 0. RAM tĩnh yêu cầu một số bóng bán dẫn để giữ lại một bit dữ liệu so với RAM động chỉ cần một bóng bán dẫn trên mỗi bit. Do đó, các chip SRAM lớn hơn và đắt hơn nhiều so với một lượng DRAM tương đương.
Tuy nhiên, SRAM nhanh hơn đáng kể và sử dụng ít năng lượng hơn DRAM. Sự khác biệt về giá cả và tốc độ có nghĩa là RAM tĩnh chủ yếu được sử dụng với số lượng nhỏ làm bộ nhớ đệm bên trong bộ vi xử lý của máy tính.
ROM (READ ONLY MEMORY)
ROM là gì?
Bộ nhớ chỉ đọc (ROM) là đơn vị bộ nhớ chính của bất kỳ hệ thống máy tính nào cùng với Bộ nhớ truy cập ngẫu nhiên (RAM), nhưng không giống như RAM, trong ROM, thông tin nhị phân được lưu trữ vĩnh viễn. Bây giờ, thông tin được lưu trữ này được cung cấp bởi nhà thiết kế và sau đó được lưu trữ bên trong ROM. Sau khi được lưu trữ, nó vẫn ở trong thiết bị, ngay cả khi tắt và bật lại nguồn.
Thông tin được nhúng vào ROM, dưới dạng các bit, bởi một quá trình được gọi là lập trình ROM. Ở đây, lập trình được sử dụng để chỉ quy trình phần cứng chỉ định các bit sẽ được chèn vào cấu hình phần cứng của thiết bị. Và đây là những gì làm cho ROM trở thành Thiết bị logic có thể lập trình (PLD).
Cấu trúc của ROM?
Cấu trúc khối:
- Nó bao gồm k dòng đầu vào và n dòng đầu ra.
- K dòng đầu vào được sử dụng để lấy địa chỉ đầu vào từ nơi chúng ta muốn truy cập nội dung của ROM.
- Vì mỗi dòng trong số k dòng đầu vào có thể là 0 hoặc 1, do đó có k tổng số 2 địa chỉ có thể được tham chiếu bởi các dòng đầu vào này và mỗi địa chỉ này chứa thông tin n bit, được đưa ra dưới dạng đầu ra của ROM.
- ROM như vậy được chỉ định là ROM 2 k
Các loại ROM
Mask ROM: Trong loại ROM này, đặc điểm kỹ thuật của ROM (nội dung và vị trí của chúng), được nhà sản xuất lấy từ khách hàng dưới dạng bảng theo một định dạng được chỉ định và sau đó tạo mặt nạ tương ứng cho các đường dẫn để tạo ra kết quả mong muốn . Điều này rất tốn kém, vì nhà cung cấp tính phí đặc biệt từ khách hàng để tạo một ROM cụ thể (được khuyến nghị, chỉ khi yêu cầu số lượng lớn của cùng một ROM).
Công dụng: Chúng được sử dụng trong hệ điều hành mạng, hệ điều hành máy chủ, lưu trữ phông chữ cho máy in laser, dữ liệu âm thanh trong nhạc cụ điện tử.
PROM: Nó là viết tắt của Bộ nhớ chỉ đọc có thể lập trình. Đầu tiên nó được chuẩn bị dưới dạng bộ nhớ trống, và sau đó nó được lập trình để lưu trữ thông tin. Sự khác biệt giữa PROM và ROM mặt nạ là PROM được sản xuất dưới dạng bộ nhớ trống và được lập trình sau khi sản xuất, trong khi ROM mặt nạ được lập trình trong quá trình sản xuất.
Công dụng: Chúng có một số ứng dụng khác nhau, bao gồm điện thoại di động, bảng điều khiển trò chơi điện tử, thẻ RFID, thiết bị y tế và các thiết bị điện tử khác.
EPROM: Nó khắc phục được nhược điểm của PROM là khi đã được lập trình, mẫu cố định là vĩnh viễn và không thể thay đổi. Nếu một mẫu bit đã được thiết lập, PROM sẽ không sử dụng được, nếu mẫu bit phải được thay đổi.
Công dụng: Trước khi EEPROM đã sử dụng EPROM để lưu trữ chương trình của chúng.
EEPROM: Nó tương tự như EPROM, ngoại trừ ở chỗ, EEPROM được trở lại trạng thái ban đầu bằng cách áp dụng tín hiệu điện, thay cho ánh sáng cực tím. Do đó, nó mang lại sự dễ dàng cho việc xóa, vì điều này có thể được thực hiện, ngay cả khi bộ nhớ được đặt trong máy tính. Nó xóa hoặc ghi một byte dữ liệu tại một thời điểm.
Công dụng: Nó được sử dụng để lưu trữ BIOS của hệ thống máy tính.
Flash ROM – Đây là phiên bản nâng cao của EEPROM. Sự khác biệt giữa EEPROM và Flash ROM là trong EEPROM, chỉ có 1 byte dữ liệu có thể được xóa hoặc ghi tại một thời điểm cụ thể, trong khi trong bộ nhớ flash, các khối dữ liệu (thường là 512 byte) có thể bị xóa hoặc ghi vào một thời điểm cụ thể. Vì vậy, Flash ROM nhanh hơn nhiều so với EEPROM.
Sử dụng – Nhiều PC hiện đại có BIOS của chúng được lưu trữ trên một chip nhớ flash, được gọi là flash BIOS và chúng cũng được sử dụng trong modem.
EEPROM (Electrically Erasable Programmable Read-Only Memory)
EEPROM là gì ?
EEPROM là bộ nhớ chỉ đọc có thể xóa được bằng điện giống như ROM nhưng dữ liệu có thể bị xóa khỏi nó bằng điện mà không cần loại bỏ nó khỏi máy tính. Dữ liệu được tạo ra trong chúng bởi các xung điện và lưới điện.
Một chip ROM cơ bản chỉ có thể được lập trình một lần trong khi một EEPROM có thể được lập trình nhiều lần. Nó được sử dụng để lưu trữ vĩnh viễn dữ liệu như thông số thiết bị, dữ liệu cảm biến, v.v.
Có thể nói EEPROM là công nghệ mới nhất của ROM mà điều khác biệt cơ bản là chúng có khả năng xoá được bằng phương pháp lập trình mà chúng không cần đến các thiết bị chuyên dụng như các thế hệ trước của nó. Bằng cách sử dụng EEPROM (hoặc flash ROM) người ta có thể dễ dàng xoá bỏ các chương trình được nạp trên nó của các bo mạch chủ trong máy tính cá nhân mà không cần thêm một thao tác cơ học nào khác kể cả tháo vỏ máy tính.
EEPROM còn giúp các thiết bị khác (board mạch mạng, board mạch đồ hoạ, wireless access points, bộ định tuyến,…hoặc trong điện thoại, thiết bị giải trí số cá nhân…) có thể nâng cấp firmware mà không cần thay đổi chip nhớ, việc mà trước kia người ta thường thực hiện gắn chip trên các đế để có thể thay thế sau này bằng cách gỡ bỏ chúng và thay bằng chip khác.
Nguyên lý hoạt động của EEPROM
Để EEPROM hoạt động, cần có các ô nhớ rất cụ thể. Chúng được chế tạo bằng bóng bán dẫn loại MOS, nhưng có cổng nổi so với MOSFET truyền thống. Những bóng bán dẫn mới này tuân theo một cấu trúc được gọi là SAMOS, và trạng thái bình thường của nó bị cắt và đầu ra sẽ luôn cung cấp giá trị logic 1.
Các ô EEPROM này có thể được đọc không giới hạn số lần, nhưng nó bị giới hạn ở số lần chúng có thể bị xóa và lập trình lại
Như bạn có thể thấy ở bên, để thực hiện các nhiệm vụ khác nhau, điện áp của cổng, nguồn và cống phải là điện áp cụ thể:
- Gate ở 20v và Drain ở 20v = lập trình (ghi) ô nhớ để lưu bit mong muốn.
- Gate ở 0v và Drain ở 20v = xóa bit được lưu trữ để nó có thể được lập trình lại với một giá trị khác.
- Gate ở 5v và Drain ở 5v = đọc bit được lưu trữ. Vì điện áp cổng thấp hơn điện áp ghi, giá trị được lưu trữ sẽ không bị thay đổi. Điều tương tự cũng xảy ra với điện áp xả thấp hơn, bit được lưu trữ sẽ không bị xóa.
Kết luận, EEPROMs sử dụng một số điện áp “Cao” để xóa và ghi, trong khi sử dụng điện áp thấp hơn để đọc
Các loại EEPROM
- SERIAL BUS
Loại này hoạt động trong các giai đoạn khác nhau. Giai đoạn địa chỉ, giai đoạn dữ liệu và giai đoạn op-code là ba giai đoạn mà chip này hoạt động. Một số loại giao tiếp nối tiếp phổ biến là UNI / O, 1 dây, SPI, microwire và I2C.
- PARALLEL BUS
Để xử lý tổng bộ nhớ, nó có một bus địa chỉ rộng và cũng có một bus dữ liệu bao gồm 8 bit. Song song được xây dựng trong eeprom có mặt trong nhiều vi điều khiển. Thực thi mã trực tiếp và các ứng dụng lưu trữ dữ liệu có độ tin cậy cao như viễn thông, điện tử hàng không, quân sự,…
Bộ nhớ flash (Flash memory)
Bộ nhớ Flash là gì ?
Bộ nhớ flash, còn được gọi là lưu trữ flash, là một loại bộ nhớ điện tĩnh (non-volative memory) có thể bị xóa và lập trình lại (reprogrammed).
Về mặt kỹ thuật thì bộ nhớ flash có thể được dùng như một loại EEPROM mà ở đó nó có thể được đọc/ghi bằng điện và không mất dữ liệu khi ngừng cung cấp điện. Có 2 kiểu bộ nhớ flash chính đã được tạo ra là NAND và NOR được cấu thành từ các cổng logic.
Bộ nhớ flash được cấu thành từ các phần tử (cell) nhớ riêng rẽ với các đặc tính bên trong giống như những cổng logic tương ứng đã tạo ra nó; do đó, ta có thể thực hiện thao tác đọc/ ghi, lưu trữ dữ liệu theo từng phần tử (cell) nhớ một.
Các chip nhớ flash nhỏ được sử dụng trong bộ nhớ dữ liệu cấu hình tĩnh của máy tính, trong máy dân dụng như tivi, quạt,… Các chip lớn thì dùng trong máy nghe nhạc kĩ thuật số, máy ảnh kĩ thuật số, điện thoại di động. Nó cũng được sử dụng trên các máy trò chơi, thay thế cho EEPROM, hoặc cho RAM tĩnh nuôi bằng pin để lưu dữ liệu của trò chơi.
Bộ nhớ flash hoạt động như thế nào?
Kiến trúc bộ nhớ flash bao gồm một mảng bộ nhớ xếp chồng lên nhau với một số lượng lớn các ô flash. Một tế bào bộ nhớ flash cơ bản bao gồm một bóng bán dẫn lưu trữ với cổng điều khiển và cổng nổi, được cách nhiệt với phần còn lại của bóng bán dẫn bằng vật liệu điện môi mỏng hoặc lớp oxit. Cổng nổi lưu trữ điện tích và kiểm soát dòng điện.
Các electron được thêm vào hoặc loại bỏ khỏi cổng nổi để thay đổi điện áp ngưỡng của bóng bán dẫn lưu trữ. Thay đổi điện áp ảnh hưởng đến việc một tế bào được lập trình dưới dạng số 0 hay một.
Một quá trình gọi là Fowler-Nordheim tunneling loại bỏ các electron khỏi cổng nổi. Với Fowler-Nordheim tunneling Các electron bị mắc kẹt trong cổng nổi cho dù một thiết bị có chứa tế bào bộ nhớ flash có nhận được năng lượng do sự cô lập điện được tạo ra bởi lớp oxit hay không. Đặc điểm này cho phép bộ nhớ flash cung cấp lưu trữ liên tục.
Ưu và nhược điểm của bộ nhớ flash
Ưu điểm của bộ nhớ flash:
- Flash là dạng bộ nhớ bán dẫn ít tốn kém nhất.
- Không giống như bộ nhớ truy cập ngẫu nhiên động(DRAM)và RAM tĩnh(SRAM),bộ nhớ flash không dễ bay hơi, cung cấp mức tiêu thụ điện năng thấp hơn và có thể bị xóa trong các khối lớn.
- NOR flash cung cấp tăng tốc độ đọc ngẫu nhiên, trong khi flash NAND nhanh với đọc và ghi nối tiếp.
- SSD với chip nhớ flash NAND mang lại hiệu suất cao hơn đáng kể so với phương tiện lưu trữ từ tính truyền thống, chẳng hạn như ổ CỨNG và băng.
- Ổ đĩa flash cũng tiêu thụ ít năng lượng hơn và tạo ra ít nhiệt hơn ổ cứng.
- Hệ thống lưu trữ doanh nghiệp được trang bị ổ đĩa flash có độ trễ thấp, được đo bằng micro giây hoặc mili giây.
Nhược điểm chính của bộ nhớ flash là cơ chế hao mòn và nhiễu tế bào với tế bào khi các khuôn trở nên nhỏ hơn. Các bit có thể thất bại với số lượng chu kỳ chương trình/xóa quá cao , cuối cùng phá vỡ lớp oxit bẫy các electron.
Sự suy giảm có thể làm biến dạng giá trị ngưỡng do nhà sản xuất thiết lập mà tại đó một khoản phí được xác định là số không hoặc một. Các electron có thể thoát ra và bị mắc kẹt trong lớp cách nhiệt oxit, dẫn đến lỗi và lỗi bit.
Kết
Bộ nhớ có rất nhiều lọai và được cấu tạo khác nhau, tùy nhu cầu sử dụng của lập trình viên. Hiểu được các đặc tính của flash sẽ giúp chúng ta dễ dàng debug khi lập trình, thiết kế phần cứng …
Cám ơn bạn đã đón đọc, cùng vào hội Anh Em Nghiện Lập Trình để cùng trao đổi nhé