03.09.2024
Rumah / Aneka ragam / Apa itu RAM ECC? RAM yang di-buffer - apa itu? Unit fungsional berurutan. Mendaftarkan dan mendaftarkan memori Daftarkan memori

Apa itu RAM ECC? RAM yang di-buffer - apa itu? Unit fungsional berurutan. Mendaftarkan dan mendaftarkan memori Daftarkan memori

Semua orang tahu bahwa perangkat komputasi modern memilikinya RAM, di mana informasi disimpan hanya selama operasi. RAM dibuat dalam bentuk modul dengan sirkuit mikro (chip) yang memiliki sekumpulan sel untuk menyimpan informasi bit. Setiap sel memori dirancang untuk menyimpan angka nol atau satu. 8 sel tersebut menyimpan 8 bit (ini sudah 1 byte). Chip semacam itu dibuat berdasarkan semikonduktor. Namun implementasi modul dan PC memiliki sejumlah perbedaan serius, yang akan kita bahas dalam artikel ini.

Memori paritas.

Pada tahap awal perkembangan teknologi komputer, teknologi produksi elemen semikonduktor belum berkembang dengan baik. Oleh karena itu, ada kemungkinan kehilangan informasi saat menulis ke sel memori mana pun: mereka menulis satu ke dalamnya, tetapi tidak ditulis (tetap nol). Untuk mengontrol proses penulisan ke memori, teknologi verifikasi data sederhana diciptakan.

Sebelum menulis satu byte (8 bit), jumlah semua bit dalam byte tersebut dihitung. Tetapi tidak seluruh checksum diingat (untuk menghemat memori), tetapi hanya bit terakhirnya, yang nilainya (nol atau satu) disimpan di tempat khusus. Nilai bit ini (0 atau 1) bergantung pada apakah jumlah bitnya genap atau ganjil selama penambahan. Oleh karena itu, bit ini kemudian disebut bit paritas.

Setelah byte asli ditulis ke sel memori, jumlah bit dari byte yang disimpan tersebut dihitung, dan paritas dari jumlah ini dibandingkan dengan yang sebelumnya (nilainya disimpan dalam bit paritas). Jika paritas checksumnya bertepatan, maka penulisan ke memori dianggap berhasil. Dan jika tidak cocok, maka pesan kesalahan akan muncul. Teknologi ini disebut kontrol paritas.

Memori tanpa paritas.

Seiring waktu, sirkuit mikro yang lebih andal mulai bermunculan. Kemungkinan terjadinya kesalahan di dalamnya menjadi lebih kecil. Pada saat yang sama, komponen elektronik menjadi lebih murah. Produksi dan penjualan komputer telah meluas. Bagi sebagian pengguna, kesalahan komputer tidaklah kritis. Oleh karena itu, model mulai dirilis di pasaran yang menggunakan memori tanpa kontrol paritas. Menyingkirkan bit kesembilan "ekstra" (untuk setiap byte) dan biaya "ekstra" untuk menghitung checksum telah memungkinkan untuk mengurangi biaya komputer dan membuatnya dapat diakses oleh banyak konsumen. Komputer seperti ini telah menjadi sangat populer di kalangan sistem desktop.

Namun, di industri tertentu, sistem pertahanan militer dan sektor perbankan, tidak dapat diterimanya kesalahan dalam sistem komputasi tetap menjadi salah satu tugas terpenting.

Memori dengan pemantauan dan koreksi kesalahan.

Teknologi paritas tidaklah sempurna. Ia tidak dapat mendeteksi, misalnya, “hilangnya” 2 bit secara bersamaan (paritas dalam hal ini tidak berubah). Oleh karena itu, diputuskan untuk memasukkan setiap bit data yang ditulis ke dalam memori bukan dalam satu checksum, tetapi dalam beberapa checksum. Dengan sistem kontrol seperti itu, beberapa kesalahan dapat dideteksi secara bersamaan, alamatnya, dan, sebagai tambahan, memperbaiki kesalahan ini. Teknologi ini disebut Error Correction Code (ECC), karena dihitung kode yang memungkinkan kesalahan diperbaiki.

Tentu saja, register tambahan diperlukan untuk menyimpan checksum, yang membuat modul memori tersebut lebih mahal, namun secara umum, sistem berbasis memori ECC lebih toleran terhadap kesalahan. Modul memori seperti ini paling banyak digunakan dalam sistem server.

Memori dengan kontrol paritas dan teknologi ECC dapat digunakan di sistem server dan desktop. Dalam kasus pertama, hal ini dibenarkan oleh pentingnya tugas yang harus diselesaikan (di mana biaya kesalahan sekecil apa pun sangat tinggi), dan dalam kasus kedua hal ini tidak selalu disarankan (dari sudut pandang ekonomi: bagaimanapun juga, untuk gunakan modul dengan kontrol kesalahan, Anda harus memiliki motherboard yang lebih mahal yang mendukung teknologi ini, jika tidak, kontrol kesalahan tidak akan dijalankan).

Memori yang disangga.

Dalam sistem komputasi, kendali penulisan/pembacaan ke dan dari memori dilakukan oleh pengontrol memori khusus. Pengontrol ini harus memiliki akses ke semua sel memori dan menyediakan transfer informasi dari bus ke memori dan sebaliknya. Sistem desktop sering kali menggunakan prosesor dengan pengontrol memori terintegrasi. Beberapa kelemahan penerapan ini adalah sebagai berikut:

Hanya ada satu pengontrol, tetapi banyak sel memori yang perlu dikontrol - ada batasan jumlah bank memori yang dilayani secara bersamaan sambil mempertahankan kinerja tinggi;

Melalui satu bus data dari prosesor atau komponen komputer lainnya, perintah kontrol dan data perlu dikirimkan ke semua modul memori yang digunakan (beban pada bus meningkat).

Untuk memperbaiki situasi, diputuskan untuk mengimplementasikan beberapa fungsi pengontrol di setiap modul memori. Untuk melakukan ini, chip khusus diintegrasikan ke dalam modul memori, bertindak sebagai buffer, yang menerima perintah kontrol dan pengaturan alamat dari prosesor pusat (dalam hal ini, aliran data ke memori berjalan di sepanjang bus yang sejajar dengan aliran perintah. ). Ini adalah bagaimana memori buffer muncul.

Kemudian, fungsi koreksi kesalahan (ECC) mulai diterapkan di buffer ini, dan memori juga dapat diperluas tanpa beban tambahan pada bus data. Chip tambahan untuk mengimplementasikan buffer dikenal sebagai register, dan memori itu sendiri dikenal sebagai memori terdaftar.

Seiring waktu, modul memori dengan buffer penuh (FB - buffered penuh) muncul, ke dalam buffer (register) di mana tidak hanya sinyal kontrol, tetapi juga data mulai ditransmisikan secara berurutan dalam satu utas. Saat menggunakan buffer pementasan, ada beberapa perlambatan memori karena dibutuhkan satu siklus pementasan untuk menulis ke buffer.

Memori semacam itu harganya jauh lebih mahal daripada memori yang tidak terdaftar karena adanya chip register tambahan dan penggunaan teknologi yang kompleks. Namun, karena ergonomisnya, kemampuannya untuk meningkatkan volume, dan juga karena kontrol kesalahan, ini banyak digunakan dalam sistem server, di mana pekerjaan yang stabil dan bebas kesalahan dengan volume data yang besar sangatlah penting.

Masalah kompatibilitas.

Modul memori buffered digunakan di sistem desktop dan server pada tahap awal pengembangannya, namun munculnya memori terdaftar menghilangkan kemungkinan menggunakannya di PC.

Dalam sistem desktop, penggunaan memori register tidak praktis (sangat mahal), dan seringkali tidak mungkin, karena sebagian besar motherboard yang digunakan di desktop tidak mendukung memori register. Sebaliknya, motherboard yang digunakan dalam sistem server modern dirancang untuk bekerja hanya dengan memori register, karena peningkatan daya (tanpa mengubah platform) dan kemampuan untuk mengontrol kesalahan merupakan faktor yang lebih penting bagi server daripada biaya.

Seringkali, ketika memilih komponen, kita menemukan berbagai istilah dan konsep yang tidak dapat dipahami. Kalau memilih RAM bisa DDR, DDR2, DDR3, DDR4, RDRAM, RIMM, dll. Jika semuanya kurang lebih jelas dengan jenis utama RAM, dan dukungan untuk setiap jenis ditunjukkan dalam deskripsi motherboard, maka parameter seperti ECC menimbulkan beberapa pertanyaan bagi banyak orang. Apa itu memori ECC? Apakah ECC RAM bisa digunakan di komputer rumah dan apa perbedaan utama antara ECC RAM dan non-ECC RAM?

Apa itu memori ECC?

Ini adalah jenis RAM khusus dengan perangkat keras koreksi kesalahan bawaan. Modul memori tersebut dikembangkan khusus untuk server, di mana persyaratan kebenaran data dan keandalan pemrosesannya jauh lebih tinggi daripada komputer pribadi.

ECC-Ram secara otomatis mengenali perubahan data spontan di blok penyimpanan, yaitu kesalahan yang terjadi. Memori desktop biasa tanpa dukungan mekanisme koreksi disebut non-ECC.

Apa kemampuan memori ECC dan bagaimana cara kerjanya?

Memori koreksi kesalahan dapat mendeteksi dan mengoreksi 1 bit data yang diubah di setiap kata mesin. Apa maksudnya? Jika data antara penulisan dan pembacaan diubah karena suatu alasan (yaitu terjadi kesalahan), maka ECC RAM akan mengoreksi nilainya ke nilai yang benar. Fungsionalitas seperti itu memerlukan dukungan dari pengontrol RAM. Dukungan ini dapat diberikan oleh chipset motherboard atau pengontrol RAM bawaan pada prosesor modern.

Algoritma koreksi kesalahan didasarkan pada kode Hamming, namun algoritma lain digunakan untuk memperbaiki lebih dari satu kesalahan. Dalam praktiknya, modul memori digunakan, di mana untuk setiap 8 chip memori ditambahkan chip lain yang menyimpan kode ECC (8 bit untuk setiap 64 bit memori utama).

Mengapa nilai sel memori RAM terdistorsi?

Salah satu penyebab utama distorsi data adalah sinar kosmik. Meskipun kita berada di Bumi di bawah perlindungan atmosfer, sinar kosmik membawa partikel elementer tertentu yang dapat mempengaruhi perangkat elektronik, termasuk memori komputer. Di bawah pengaruh energi partikel-partikel ini, keadaan sel memori dapat berubah, yang menyebabkan distorsi dan kesalahan data. Menariknya, paparan sinar kosmik meningkat seiring ketinggian, sehingga sistem komputer yang terletak di ketinggian memerlukan perlindungan yang lebih baik.

Cara kerja memori berkemampuan ECC

Salah satu mekanisme untuk memantau kesalahan dalam RAM adalah dengan menggunakan teknologi paritas, yang memungkinkan Anda mencatat fakta bahwa telah terjadi kesalahan pada data, namun tidak memungkinkan Anda untuk memperbaiki data.

Untuk koreksi ECC digunakan kode Hamming. ECC melindungi sistem komputer dari pengoperasian yang salah karena kerusakan memori dan mengurangi kemungkinan kegagalan sistem yang kritis. Memori yang mendukung ECC berjalan 2-3% lebih lambat dibandingkan memori non-ECC, tergantung pada aplikasinya.

Alasan menggunakan memori ECC

Tidak ada alasan obyektif untuk menggunakan RAM berkemampuan ECC di komputer desktop. Karena kemungkinan terjadinya kesalahan data sangat rendah, dalam skenario penggunaan PC normal, sangat kecil kemungkinan terjadinya kesalahan akan menyebabkan masalah atau kegagalan kritis dalam pengoperasian PC. Skenario terburuknya adalah kemunculannya layar biru kematian BSOD. Selain itu, penggunaan ECC RAM sulit karena prosesor desktop dan motherboard Kebanyakan dari mereka tidak mendukung RAM jenis ini.

Penggunaan RAM dengan koreksi kesalahan ECC relevan untuk server dan segmen korporasi, dimana persyaratan toleransi kesalahan dan keandalan sangat tinggi, dan kebenaran data dapat mempengaruhi hasil perhitungan dan pengoperasian sistem secara keseluruhan. .

Anda suka? -

Anda dapat memilih tiga Jenis memori utama yang digunakan dalam mikrokontroler:

● memori program, yang merupakan memori permanen yang dirancang untuk menyimpan kode program dan konstanta. Memori ini tidak mengubah isinya selama eksekusi program;

● memori data, dimaksudkan untuk menyimpan variabel (hasil) selama eksekusi program;

daftar memori yang terdiri dari register internal mikrokontroler. Mari kita pertimbangkan fitur dari masing-masing jenis memori yang terdaftar.

Memori program.

Kebutuhan akan memori tersebut disebabkan oleh fakta bahwa mikrokontroler tidak berisi perangkat memori seperti hard drive di komputer tempat program yang dapat dijalankan dimuat. Oleh karena itu, kode program harus disimpan secara permanen di mikrokontroler.

Semua jenis memori program adalah menjadi non-volatil memori, atau memori hanya-baca (ROM), yang isinya disimpan setelah mikrokontroler dimatikan.

Selama eksekusi, program dibaca dari memori ini, dan unit kontrol (dekoder perintah) memastikan penguraian kode dan pelaksanaan operasi yang diperlukan. Isi memori program tidak dapat diubah (diprogram ulang) saat program sedang berjalan. Oleh karena itu, fungsi mikrokontroler tidak dapat berubah sampai isi memori programnya dihapus (jika memungkinkan) dan diprogram ulang (diisi dengan instruksi baru).

Harap dicatat bahwa lebar mikrokontroler (8, 16 atau 32 bit) ditunjukkan sesuai dengan lebar bus datanya.

Jika suatu perangkat dikatakan 8-bit, itu berarti jumlah data yang dapat ditangani oleh mikrokontroler.

Dalam arsitektur Harvard, instruksi bisa lebih besar dari data untuk memungkinkan seluruh instruksi dibaca dalam satu siklus clock. Misalnya, Mikrokontroler PIC Tergantung pada modelnya, perintah dengan lebar 12, 14 atau 16 bit digunakan. DI DALAM Mikrokontroler AVR lebar perintahnya selalu 16 bit. Namun, semua mikrokontroler ini memiliki bus data 8-bit.

Pada perangkat berarsitektur Princeton, lebar data biasanya menentukan lebar (jumlah jalur) bus yang digunakan. Pada mikrokontroler Motorola 68HC05, instruksi 24-bit terletak di tiga sel memori program 8-bit. Untuk sepenuhnya mengambil perintah seperti itu, perlu dilakukan tiga siklus membaca memori ini.

Mari kita pilih dan pertimbangkan lima jenis memori tetap non-volatil, atau memori hanya-baca (ROM), digunakan untuk menyimpan program.

Memori topeng.

Mask ROM (Mask-ROM atau hanya ROM) diproduksi pada tahap produksi mikrokontroler untuk program yang sepenuhnya di-debug. Dengan menggunakan program ini, pola topeng dibuat pada masker foto kaca. Photomask yang dihasilkan dengan mask digunakan untuk membentuk koneksi antar elemen yang membentuk memori program.

ROM bertopeng pertama muncul pada awal tahun 1960an dan masih digunakan sampai sekarang manfaat seperti biaya rendah untuk produksi massal produk dan keandalan penyimpanan program yang tinggi.

Kekurangan ROM topeng - setiap perubahan dalam program aplikasi dikaitkan dengan investasi uang dan waktu yang signifikan untuk membuat kumpulan topeng foto baru dan implementasinya dalam produksi.

Memori yang dapat diprogram satu kali.

Memori ini (One–Time Programmable ROM - OTPROM) dapat diprogram oleh pengguna dan pada keadaan awalnya berisi sel dengan satu bit. Hanya sel memori yang isinya bernilai 0 yang dapat diprogram. Untuk melakukan ini, rangkaian pulsa tegangan tinggi diterapkan ke sel memori.

Level tegangan, jumlah pulsa, dan parameter waktunya harus benar-benar sesuai dengan spesifikasi teknis. Setelah angka nol ditulis, tidak mungkin mengembalikan nilai tunggal tersebut. Untuk alasan ini, memori disebut sekali dapat diprogram ROM. Namun, perlu ditegaskan hal itu pemrograman tambahan(tidak tersentuh) sel dengan satu bit.

Mikrokontroler dengan ROM yang dapat diprogram satu kali digunakan dalam produk yang diproduksi dalam jumlah kecil.

Memori yang dapat diprogram ulang dengan penghapusan ultraviolet.

Sel memori Erasable Programmable ROM (EPROM) adalah transistor gerbang mengambang injeksi longsoran. Dalam keadaan awal (sebelum menulis), ketika sel diakses, sel logis dibaca. Pemrograman memori dilakukan dengan menulis angka nol logis ke dalam sel yang sesuai. Memori EP ROM dapat diprogram berulang kali, teknologinya mirip dengan ROM yang dapat diprogram satu kali.

Sebelum setiap sesi pemrograman, lakukan operasi penghapusan untuk mengembalikan keadaan asli sel memori. Untuk tujuan ini, jendela khusus disediakan di rumah mikrokontroler, yang disinari dengan sinar ultraviolet. Jumlah sesi penghapusan/pemrograman ROM adalah 25–100 kali, tergantung pada teknologi pemrograman (nilai tegangan suplai yang ditentukan, jumlah dan durasi pulsa) dan teknologi penghapusan (rentang gelombang sumber radiasi ultraviolet).

Mikrokontroler dengan memori EPROM digunakan dalam prototipe aplikasi yang dikembangkan karena biayanya yang tinggi.

Untuk menurunkan harga, chip EPROM dimasukkan ke dalam wadah tanpa jendela (versi EPROM dengan pemrograman satu kali). Karena biayanya yang lebih rendah, versi EPROM sering digunakan sebagai pengganti ROM yang dapat diprogram dengan masker.

Memori yang dapat diprogram ulang dan dapat dihapus secara elektrik.

Transistor dengan struktur MNOS (Metal, Silicon Nitride, Silicon Oxide, Semiconductor) digunakan sebagai elemen memori yang dapat dihapus secara elektrik (Electrically Erasable Pro grammable ROM - EEPROM atau E2 PROM), sehingga ROM memiliki biaya yang relatif rendah (relatif ke EPROM) dan memungkinkan jumlah maksimum siklus penghapusan/pemrograman 10 4 –10 6 . Selain itu, teknologi pemrograman memori EEPROM memungkinkan Anda untuk mengimplementasikannya penghapusan byte Dan pemrograman byte, tanpa melepas pengontrol dari papan, yang memungkinkan Anda memperbaruinya secara berkala perangkat lunak.

Terlepas dari kelebihannya, jenis memori ini tidak banyak digunakan untuk menyimpan program karena dua alasan:

● ROM tipe EEPROM memiliki kapasitas terbatas;

● ROM tipe FLASH telah muncul, yang memiliki karakteristik pengguna serupa, namun biaya lebih rendah.

Jenis memori FLASH.

Memori FLASH (FLASH ROM) yang dapat diprogram secara elektrik dan dapat dihapus secara elektrik diciptakan sebagai alternatif antara ROM yang dapat diprogram sekali berbiaya rendah dan berkapasitas tinggi serta ROM EEPROM yang mahal. kapasitas kecil. Memori FLASH (seperti EEPROM) mempertahankan kemampuan untuk dihapus dan diprogram beberapa kali.

Transistor pengalamatan untuk setiap sel telah dihapus dari sirkuit ROM, yang, di satu sisi, tidak memungkinkan untuk memprogram setiap bit memori secara terpisah, dan di sisi lain, memungkinkan untuk meningkatkan kapasitas memori. Oleh karena itu, memori tipe FLASH dihapus dan diprogram halaman atau blok.

Jadi, secara fungsional, memori FLASH sedikit berbeda dengan EEPROM. Perbedaan utama terletak pada metode penghapusan informasi yang direkam: jika dalam memori EEPROM penghapusan dilakukan secara terpisah untuk setiap sel, maka dalam memori FLASH dilakukan di seluruh blok. Dalam mikrokontroler dengan memori EEPROM, setiap bagian program perlu diubah tanpa perlu memprogram ulang seluruh perangkat.

Saat ini, MCU dengan FLASH mulai menggantikan MCU dengan ROM yang dapat diprogram satu kali (dan bahkan disamarkan).

Pemrograman ROM.

Perhatikan bahwa memori Mask ROM hanya diprogram di pabrik selama pembuatan MK. Memori tipe OTPROM dan EPROM memberi pengembang kemampuan pemrograman menggunakan programmer dan sumber tegangan tinggi yang dihubungkan ke pin MK yang sesuai.

Memori EEPROM dan FLASH diklasifikasikan sebagai multi-program, atau dapat diprogram ulang, ingatan. Peningkatan daya yang diperlukan untuk menghapus/memprogram dibuat dalam modul memori EEPROM dan FLASH dari pengontrol modern menggunakan sirkuit amplifikasi tegangan internal yang disebut generator pompa. Berkat implementasinya pengendalian program Dengan menghidupkan dan mematikan generator pompa, pada prinsipnya dimungkinkan untuk memprogram atau menghapus sel memori FLASH dan EEPROM sebagai bagian dari sistem yang sedang dikembangkan. Teknologi pemrograman ini disebut pemrograman dalam sistem(Dalam Pemrograman Sistem - ISP).

Tidak memerlukan peralatan khusus (programmer), sehingga mengurangi biaya pemrograman. Mikrokontroler dengan memori ISP dapat diprogram setelah dipasang pada papan produk akhir.

Mari kita pertimbangkan bagaimana kemampuan memprogram memori EEPROM di bawah kendali program aplikasi diimplementasikan (dan digunakan). Jika program dengan algoritma pemrograman disimpan dalam modul memori terpisah dengan tegangan suplai nominal, dan memori EEPROM dilengkapi dengan generator pompa, maka pemrograman ISP dari memori EEPROM dapat dilakukan. Keadaan ini menjadikan memori EEPROM sebagai perangkat penyimpanan non-volatil yang ideal untuk menyimpan pengaturan pengguna yang dapat diubah selama pengoperasian produk. Contohnya adalah TV modern yang pengaturan salurannya disimpan saat listrik dimatikan.

Oleh karena itu, salah satu tren dalam meningkatkan memori tetap MK 8-bit adalah integrasi dua modul memori non-volatil ke dalam chip MK: FLASH (atau OTP) untuk menyimpan program dan EEPROM untuk menyimpan konstanta yang dapat diprogram ulang.

Pertimbangkan teknologi (kembali) Pemrograman FLASH– memori dengan generator pompa internal yang dikendalikan oleh program aplikasi. Pertama-tama, mari kita perhatikan dua hal:

● jika MC memiliki memori EEPROM internal untuk menyimpan konstanta yang dapat diprogram ulang, maka memprogram beberapa bit memori FLASH selama pengoperasian produk jadi tidak masuk akal. Jika perlu, lebih baik segera menggunakan mode pemrograman ulang;

● program pemrograman memori FLASH tidak boleh disimpan dalam memori FLASH itu sendiri, karena beralih ke mode pemrograman akan membuat program tersebut tidak dapat dibaca lebih lanjut. Program pemrograman harus ditempatkan di modul memori yang berbeda.

Untuk mengimplementasikan teknologi pemrograman dalam sistem, salah satu port serial MK dipilih, yang dilayani oleh port khusus program monitor komunikasi, terletak di ROM topeng residen MK. Melalui port serial komputer pribadi memuat program ke dalam RAM MK pemrograman Dan terapan program, yang kemudian disimpan dalam memori FLASH. Karena RAM residen MK memiliki volume yang kecil, program aplikasi dimuat dalam blok (bagian) yang terpisah. Jika modul memori mask dengan program pemrograman dipasang di MK, hanya program aplikasi yang dimuat ke dalam RAM.

Mikrokontroler yang mengimplementasikan teknologi pemrograman dalam sistem sering kali menyertakan empat jenis memori:

FLASH – memori program, Mask ROM – memori monitor komunikasi, EEPROM – memori untuk menyimpan konstanta variabel dan RAM untuk data perantara.

Teknologi pemrograman sistem kini semakin banyak digunakan untuk menanamkan program aplikasi ke dalam mikrokontroler yang terletak di papan produk akhir. Dia harga diri- tidak adanya programmer dan keandalan pemrograman yang tinggi karena stabilitas mode internal MK yang ditentukan.

Sebagai contoh, berikut adalah indikator memori FLASH residen keluarga HC08 MK dari Motorola:

● jumlah siklus penghapusan/pemrograman yang dijamin - 10 5;

● jaminan waktu penyimpanan informasi yang tercatat adalah 10 tahun, yang secara praktis merupakan siklus hidup produk; Modul memori FLASH beroperasi dan diprogram pada tegangan suplai MK 1,8 hingga 2,7 V;

● waktu pemrograman yang setara untuk 1 byte memori adalah 60 μs.

Memori data.

Digunakan sebagai memori data penduduk statis memori akses acak (RAM), yang memungkinkan Anda mengurangi frekuensi clock ke nilai kecil yang sewenang-wenang. Isi sel RAM (berlawanan dengan memori dinamis) dipertahankan hingga frekuensi nol. Fitur lain dari RAM statis adalah kemampuan untuk mengurangi tegangan suplai ke tingkat minimum tertentu yang dapat diterima, di mana program kontrol mikrokontroler tidak dijalankan, tetapi isi dalam RAM dipertahankan.

Tingkat penyimpanan memiliki nilai sekitar satu volt, yang memungkinkan untuk menyimpan data, jika perlu, dengan mengalihkan MK ke daya dari sumber otonom (baterai atau akumulator). Beberapa MCU (misalnya DS5000 dari Dallas Semiconductor) memiliki catu daya otonom di casingnya, yang menjamin penyimpanan data dalam RAM selama 10 tahun.

Ciri khas mikrokontroler adalah jumlah memori akses acak (RAM) yang relatif kecil (ratusan byte) yang digunakan untuk menyimpan variabel. Hal ini dapat dijelaskan oleh beberapa faktor:

● keinginan untuk menyederhanakan perangkat keras MK;

● menggunakan aturan tertentu saat menulis program yang bertujuan untuk mengurangi jumlah memori RAM (misalnya, konstanta tidak disimpan sebagai variabel);

● distribusi sumber daya memori sedemikian rupa sehingga, alih-alih menempatkan data dalam RAM, penggunaan perangkat keras secara maksimal (pengatur waktu, register indeks, dll.);

● orientasi program aplikasi untuk bekerja tanpa menggunakan data dalam jumlah besar.

Fitur tumpukan.

Dalam mikrokontroler, untuk mengatur pemanggilan subrutin dan menangani interupsi, sebagian dari memori RAM disebut tumpukan. Selama operasi ini, konten penghitung program dan register utama (akumulator, register status, indeks, dan register lainnya) disimpan, dan ketika kembali ke program utama, konten tersebut dipulihkan. Izinkan kami mengingatkan Anda bahwa tumpukan bekerja berdasarkan prinsip: yang terakhir masuk - yang pertama keluar(Terakhir Masuk, Keluar Pertama-LIFO).

Arsitektur Princeton menggunakan RAM untuk mengimplementasikan banyak fungsi perangkat keras, termasuk fungsi stack. Dalam ruang alamat memori, area terpisah dialokasikan untuk instruksi, register tujuan umum, register fungsi khusus, dll. Hal ini mengurangi kinerja pengontrol, karena akses ke area memori yang berbeda tidak dapat dilakukan secara bersamaan.

Mikroprosesor dengan arsitektur Harvard dapat mengalamatkan memori program, memori data (termasuk ruang I/O), dan stack secara paralel (simultan).

Misalnya, ketika perintah subrutin CALL diaktifkan, beberapa tindakan dilakukan secara bersamaan.

Dalam arsitektur Princeton, ketika instruksi CALL dijalankan, instruksi berikutnya diambil hanya setelah isi penghitung program dimasukkan ke dalam tumpukan.

Karena kecilnya kapasitas RAM pada mikrokontroler kedua arsitektur, masalah mungkin timbul saat menjalankan program:

● jika tumpukan terpisah dialokasikan, maka setelah diisi, konten penunjuk tumpukan berubah secara siklis, akibatnya penunjuk tumpukan mulai merujuk ke sel tumpukan yang sebelumnya diisi. Oleh karena itu, setelah terlalu banyak instruksi CALL, akan ada alamat pengirim yang salah pada tumpukan yang ditulis, bukan alamat yang benar;

● jika mikroprosesor menggunakan area memori umum untuk menampung data dan tumpukan, maka jika tumpukan meluap, data akan ditimpa. Mari kita lihat fitur menyimpan isi register di stack karena tidak adanya perintah memuat ke tumpukan (PUSH) dan popping dari tumpukan (POP). Dalam mikrokontroler seperti itu, alih-alih instruksi PUSH dan POP, dua instruksi digunakan dan register indeks yang secara eksplisit menunjuk ke area tumpukan. Urutan perintah harus sedemikian rupa sehingga interupsi antara perintah pertama dan kedua tidak mengakibatkan hilangnya data. Di bawah ini adalah simulasi perintah PUSH dan POP dengan memperhatikan kebutuhan di atas.

DORONGAN ; Memuat data ke indeks pengurangan tumpukan; Pindah ke sel tumpukan berikutnya pindahkan [indeks], kartu as; Simpan isi akumulator dalam tumpukan POP; Data pop dari tumpukan bergerak ace, ; Tempatkan nilai tumpukan ke dalam indeks kenaikan akumulator; Pindah ke sel tumpukan sebelumnya

Jika program diinterupsi setelah instruksi pertama, maka isi tumpukan tidak akan hilang setelah pemrosesan interupsi selesai.

Daftarkan memori.

Mikrokontroler (seperti sistem komputer) memiliki banyak register yang digunakan untuk manajemen berbagai komponen internal dan perangkat eksternal. Ini termasuk:

● mendaftar inti prosesor(akumulator, register status, register indeks);

● mendaftar pengelolaan(register kendali interupsi, register kendali pengatur waktu);

● register input/output data (register data dan register kontrol input/output paralel, serial atau analog).

Berdasarkan cara penempatan register pada ruang alamat, kita dapat membedakan:

● mikrokontroler, dimana semua register dan memori data berada satu ruang alamat, yaitu register digabungkan dengan memori data. Dalam hal ini, perangkat I/O dipetakan memori;

● mikrokontroler di mana perangkat input/output terpisah dari total ruang alamat memori. Keuntungan utama dari metode penempatan register I/O dalam ruang alamat terpisah adalah menyederhanakan skema untuk menghubungkan memori program dan data ke bus umum. Ruang I/O terpisah memberikan keuntungan tambahan pada prosesor arsitektur Harvard dengan menyediakan kemampuan membaca instruksi saat register I/O sedang diakses.

Cara register diakses memiliki dampak yang signifikan terhadap kinerjanya. Dalam prosesor dengan arsitektur RISC, semua register (seringkali akumulator) ditempatkan pada alamat yang ditentukan secara eksplisit, yang memberikan fleksibilitas lebih besar dalam mengatur pengoperasian prosesor.

Tentang memori eksternal.

Jika memori program dan memori data tetap tidak mencukupi untuk aplikasi yang sedang dikembangkan, memori eksternal tambahan dihubungkan ke mikrokontroler. Diketahui dua metode utama:

● koneksi memori eksternal menggunakan antarmuka bus (seperti dalam sistem mikroprosesor). Banyak mikrokontroler memiliki perangkat keras khusus untuk koneksi ini;

● menghubungkan memori ke perangkat input/output Dalam hal ini, memori diakses melalui perangkat ini perangkat lunak. Metode ini memungkinkan Anda untuk menggunakan perangkat sederhana I/O tanpa mengimplementasikan antarmuka bus yang rumit. Pilihan metode tergantung pada aplikasi spesifik.

Anotasi: Prinsip pengoperasian register sebagai elemen memori elektronik dipertimbangkan.

Register adalah IC dengan tingkat integrasi sedang, dirancang untuk mengingat dan menyimpan kata multi-bit.

Daftar kait

paling sederhana daftar adalah koneksi paralel dari beberapa pemicu (Gbr. 8.1a). UGO dari register kait ditunjukkan pada Gambar. 8.1,b. Jika daftar dibangun di atas pemicu pengunci, disebut daftar-"memalangi". Biasanya, IC register mencakup penguat buffer dan elemen kontrol, seperti yang ditunjukkan pada Gambar. 8.2, sebuah. Ditampilkan di sini adalah diagram fungsional dari 8-bit D- latch register KR580IR82 dengan tiga status keluaran. UGO-nya ditunjukkan pada Gambar. 8.2,b.


Beras. 8.1. Register kait empat bit dengan keluaran langsung: a - diagram fungsional; b - UGO

Negara bagian ketiga(dua yang pertama berlogika 0 dan berlogika 1) adalah keadaan keluaran IC yang terputus dari sumber daya dan titik bersama. Nama lain untuk kondisi ini adalah resistansi tinggi, status impedansi tinggi, status Z[ , Dengan. 61 - 63; , Dengan. 68 - 70].

Hal ini tercapai negara bagian ketiga solusi sirkuit khusus [, hal. 117 - 118] di bagian keluaran elemen logika, ketika transistor keluaran elemen logika terkunci dan tidak mensuplai tegangan suplai atau potensial ground (bukan 0 dan bukan 1) ke output.

Daftar KR580IR82 terdiri dari 8 blok fungsional (Gbr. 8.2, a). Termasuk masing-masingnya D-pemicu kait dengan perekaman tepi jatuh dan katup keluaran 3 keadaan yang kuat. STB- masukan strobo, - izin transmisi - sinyal yang mengontrol keadaan ketiga: jika , maka informasi ditransfer dari masukan ke keluaran yang sesuai, jika , semua keluaran ditransfer ke keadaan ketiga. Ketika dan, IC beroperasi dalam mode driver bus - informasi dari input ditransmisikan ke output tidak berubah.

Saat melamar tepi belakang sinyal informasi yang dikirimkan “diikat” ke dalam pemicu, yaitu apa yang ada pada saat penyerahan diingat di sana . Sampai jumpa, penyangga daftar akan menyimpan informasi ini, apa pun informasinya D-masukan. Ketika ujung depan diterapkan saat menyimpan, keadaan keluaran akan berubah sesuai dengan perubahan masukan yang bersangkutan. Jika , maka semua penguat keluaran dipindahkan ke keadaan ketiga. Dalam hal ini, terlepas dari keadaan masukannya, semua keluarannya daftar dipindahkan ke negara bagian ketiga.

Semua pin register dapat memiliki level nol aktif, yang ditampilkan pada UGO dalam bentuk sinyal terbalik dan penunjukan pin.

Ada banyak variasi register, misalnya register geser [, Bab 8], di mana flip-flop saling berhubungan sedemikian rupa sehingga mengirimkan informasi secara berurutan dari satu flip-flop ke flip-flop lainnya [, hal. 109 - 122], namun di sini kita akan fokus pada register kait dan penerapannya.

Daftarkan memori

Memori register - file register - adalah memori akses super-acak (SRAM) - rangkaian beberapa register yang dirancang untuk menyimpan beberapa kata multi-bit.

Pada Gambar. 8.3 menunjukkan contoh implementasi SRAM, terdiri dari empat 8-bit register(koneksi RG2 dan RG3 tidak ditampilkan, dilakukan dengan cara yang sama). Diberikan SRAM memiliki volume informasi 4x8 bit - 4 kata 8 bit, atau 4 byte. Di Sini DI - masukan data- bus data masukan, LAKUKAN - keluaran data- bus data keluaran, Wr- tulis sinyal ke SRAM, R.D.- sinyal untuk membaca informasi dari SRAM, VSD - bus data internal.

Setiap daftar memiliki alamat dua bit, yang disuplai ke input dekoder. Misalnya, yang paling kiri pada Gambar. 8.3 daftar RG1 memiliki alamat , selanjutnya - (tidak ditampilkan pada gambar), selanjutnya - (tidak ditampilkan), dan yang paling kanan daftar RG4 memiliki alamatnya.

Jika ada sinyal perekaman aktif, decoder sesuai dengan kode alamat mengeluarkan salah satunya register sinyal aktif, yang membawa informasi dari bus data masukan D.I. direkam dalam yang dipilih daftar. Pada informasi trailing edge dalam hal ini daftar"buncis"

Jika, misalnya, pada D.I. informasi dan alamat yang diberikan daftar sama dengan , maka sinyal aktif pada output “3” decoder akan diterapkan untuk mendaftarkan RG4. Register yang tersisa akan memiliki level sinyal yang tidak aktif saat ini, sehingga informasi dari bus data input akan ditulis ke RG4, dan informasi yang direkam sebelumnya akan disimpan di register yang tersisa.

Ketika sinyal baca aktif, semua 8 multiplexer diaktifkan (diagram menunjukkan yang pertama, kedua dan kedelapan, sisanya terhubung dengan cara yang sama), karena sinyal aktif diterapkan ke input pengaktifannya. Sesuai dengan pengajuan pada dekoder alamat, multiplekser mengalihkan informasi dari register yang dipilih ke bus data keluaran. Misalnya, , alamat pendaftarannya adalah . Kemudian di semua multiplexer, mereka semua mulai memilih informasi sesuai dengan alamatnya. Oleh karena itu, ke bus keluaran MELAKUKAN bit bus internal dengan nomor 25 akan disuplai dari multiplexer pertama, 26 - dari multiplexer kedua, 27 - dari multiplexer ketiga, 28 - dari multiplexer keempat, 29 - dari multiplexer kelima, 30 - dari multiplexer keenam, 31 - dari multiplexer ketujuh dan 32 - dari multiplexer kedelapan. Jadi, informasi itu merupakan salinan dari isinya daftar RG 4 dengan alamat ditransmisikan ke bus data keluaran LAKUKAN - keadaan keluaran multiplekser tidak berubah.

Ada dua jenis utama memori akses acak (RAM); Ini adalah memori buffer - atau memori register - dan memori tanpa buffer. Memori yang tidak di-buffer lebih cepat, dan seringkali jauh lebih murah, dibandingkan memori yang di-buffer. Jadi, ini adalah jenis modul yang dapat ditemukan di hampir semua komputer desktop dan laptop rumahan. Memori yang di-buffer lebih mahal dibandingkan jenis yang tidak di-buffer, dan juga lebih lambat karena cara memori tersebut menangani penyimpanan dan pemulihan data.
Namun, memori yang di-buffer jauh lebih stabil daripada bentuk yang tidak di-buffer, itulah sebabnya memori ini terutama digunakan pada komputer mainframe dan server.

Memori tanpa buffer sejauh ini merupakan bentuk modul memori komputer yang paling umum ditemukan dalam penggunaan sehari-hari. Modul memori ini lebih murah untuk diproduksi dibandingkan dengan modul memori buffer, sebagian karena penggunaannya yang umum di komputer rumahan dan komersial, dan juga karena penggunaan yang lebih sedikit. perangkat keras. Modul memori tanpa buffer tidak memiliki perangkat keras internal yang bertindak sebagai register instruksi antara chip RAM dan pengontrol memori komputer. Hal ini menghasilkan kinerja yang lebih cepat, namun meningkatkan risiko kesalahan kehilangan memori kritis yang terjadi karena sifat penempatan dan pengambilan informasi yang acak, terutama selama periode aktivitas yang intens.

Paling sering disebut sebagai memori terdaftar adalah memori buffer. Anehnya, memori yang tidak di-buffer tetap mempertahankan namanya dan tidak diubah menjadi memori yang tidak terdaftar. Memori yang di-buffer berbeda dari tipe yang tidak di-buffer karena memori ini memiliki register perangkat keras yang menyimpan informasi dalam cache selama satu siklus clock chip memori. Meskipun operasi ini mungkin mengakibatkan waktu kerja chip memori menjadi lebih lambat, operasi ini memberikan stabilitas tambahan dan mengurangi risiko kesalahan memori.

Dalam penggunaan rumah tangga secara umum, perbedaan kecepatan antara kedua jenis modul memori tersebut tampaknya dapat diabaikan. Selama periode pertukaran informasi yang intens, latensi yang diamati menggunakan register muncul. Memori buffer biasanya digunakan di komputer server dan sistem mainframe untuk memberikan stabilitas dan perlindungan terhadap kerusakan yang dapat terjadi pada modul tanpa buffer ketika modul tersebut digunakan dalam jumlah besar secara terus-menerus. Meskipun modul buffer lebih mahal dan umumnya lebih lambat untuk dioperasikan, stabilitas memori dan keamanan data lebih dari cukup untuk mengimbanginya dalam lingkungan produksi.