Arvuti RAM mälu
Sissejuhatus
TODO
Mõisted
- registered ehk buffered memory - RDIMM - süsteemi saab reegline lülitada rohkem RDIMM mälu kui UDIMM mälu, https://en.wikipedia.org/wiki/Registered_memory
- unregistered ehk unbuffered memory - UDIMM
- DIMM -dual in-line module - http://en.wikipedia.org/wiki/Dual_in-line_memory_module
- DDR - double data rate
- DDR2
- DDR3 - http://en.wikipedia.org/wiki/DDR3_SDRAM
- SDRAM - Synchronous dynamic random-access memory, http://en.wikipedia.org/wiki/Synchronous_dynamic_random-access_memory
- DRAM - Dynamic random-access memory, http://en.wikipedia.org/wiki/Dynamic_random_access_memory
- SRAM - Static random-access memory, http://en.wikipedia.org/wiki/Static_random_access_memory
Tööpõhimõte
TODO
Kasulikud lisamaterjalid
Mälu markeeringu lugemine
Kasulikud lisamaterjalid
Mälu testimine
Üks populaarne utiliit x86 arhitektuuril arvuti RAM mälu testimiseks on http://en.wikipedia.org/wiki/Memtest86
- tihtipeale sisaldub ta live cd plaatidel, nt RIP Linux juures menüüvalikuna
- samuti saab seda paigaldada nt Debian Squeeze paketihaldusest
RIPLinux
2010 aasta arvuti
kus
- protessoriks on Intel Core i7
- esitatud on L1, L2 ja L3 mahud; maksab tähele panna kuidas Lx cache kiirused kahanevad mida protsessorist kaugemale, ning mahud jällegi suurenevad
- RAM mälu on 12 GB
- lisaks on toodud muud mälu ja arvutit iseloomustavad parameetrid, erinevad kiirused jms
- Pass 1 - esimene ring teste on käimas
Võrlduseks 2005 aasta Intel D945GNT arvuti, maksab märgata erinevusi
Debiani paketihaldusest
Tarkvara paigaldamiseks sobib öelda
# apt-get install memtest86+
Tulemusena on /boot kataloogis failid
# ls -l /boot/memtest86+* -rw-r--r-- 1 root root 165084 Oct 21 2010 /boot/memtest86+.bin -rw-r--r-- 1 root root 167264 Oct 21 2010 /boot/memtest86+_multiboot.bin
ning tekitatud /boot/grub/grub.cfg faili vastavad menüüvalikud, mida arvuti alglaadimisel saab kasutada. Memtest86+ oskab töötada ka üle serial konsooli, nt sedasi
### BEGIN /etc/grub.d/20_memtest86+ ### menuentry "Memory test (memtest86+)" { insmod part_gpt insmod ext2 set root='(hd0,gpt2)' search --no-floppy --fs-uuid --set 5b5231cb-c2a9-41e8-aee5-c1727888da35 linux16 /memtest86+.bin console=ttyS0,9600 }
EDAC
EDAC (Error Detection and Correction) http://buttersideup.com/edacwiki/Main_Page ...
# apt-get install edac-utils
# dmesg | grep EDAC EDAC MC: Ver: 2.1.0 Apr 11 2012 EDAC MC0: Giving out device to 'i7core_edac.c' 'i7 core #0': DEV 0000:ff:03.0 EDAC PCI0: Giving out device to module 'i7core_edac' controller 'EDAC PCI controller': DEV '0000:ff:03.0' (POLLED) EDAC MC1: Giving out device to 'i7core_edac.c' 'i7 core #1': DEV 0000:fe:03.0 EDAC PCI1: Giving out device to module 'i7core_edac' controller 'EDAC PCI controller': DEV '0000:fe:03.0' (POLLED) EDAC i7core: Driver loaded, 2 memory controller(s) found.
# edac-util --report=full mc0:csrow0:CPU#0Channel#0_DIMM#0:CE:0 mc0:csrow1:CPU#0Channel#1_DIMM#0:CE:0 mc0:csrow2:CPU#0Channel#2_DIMM#0:CE:0 mc0:noinfo:all:UE:0 mc0:noinfo:all:CE:0 mc1:csrow0:CPU#1Channel#0_DIMM#0:CE:0 mc1:csrow1:CPU#1Channel#1_DIMM#0:CE:0 mc1:csrow2:CPU#1Channel#2_DIMM#0:CE:0 mc1:noinfo:all:UE:0 mc1:noinfo:all:CE:0
Bitiviga
Bitiviga (ingl. k. bit error) võib esineda suurema tõenäosusega mitte-ECC mälu kasutamisel ning seisneb bit väärtuse nö ilma põhjuseta juhuslikus muutumises. Nt võiks see avalduda selles, et laadides andmebaasi dump'i
- tekib kodeeringuviga
- saab teate, et välisvõti keelab andmete tabelisse laadimist
4 GB piir
Mõned 2005 aasta ümbruse arvutid on nö peaaegu 64 bit, nt D945GNT. See väljendub asjaolus, et kuigi saab kasutada 64 bit tuuma ja muud tarkvara ning arvuti BIOS tunneb ära 4 GB mälu näeb operatsioonisüsteem sellest ca 3.3 GB. Selle põhjuseks on emaplaadi manuaali kohaselt asjaolu, et arvuti riistvara ei suuda adresseerida üle 4GB (ilmselt seotud 2^32 = 4 294 967 296) - sellega tuleb lisaks nö tavaliselt mälule, kus programmid töötavad adresseerida PCI-E configuration space, Digital Media Interface, Local APIC jms. Ning tulemusena jääbki operatsioonisüsteemile kasutada nö free käsu väljundi järgi ca 3.3 GB.
decode-dimms
Tundub, et decode-dimms tarkvara töötab DDR2, DDR3 jt mäludega, aga mitte DDR4 puhul. Debian keskkonnas sobib paigaldamiseks öelda
# apt-get install i2c-tools
ja paketis sisaldub programm decode-dimms
Ubuntu keskkonnas sobib paigaldamiseks öelda
# apt-get install decode-dimms
Kasutamiseks tuleb laadida tuuma moodus eeprom
# modprobe eeprom
ja öelda
# decode-dimms ... Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0050 Guessing DIMM is in bank 1 ---=== SPD EEPROM Information ===--- EEPROM CRC of bytes 0-116 OK (0x9A9A) # of bytes written to SDRAM EEPROM 176 Total number of bytes in EEPROM 256 Fundamental Memory type DDR3 SDRAM Module Type UDIMM ---=== Memory Characteristics ===--- Fine time base 1.000 ps Medium time base 0.125 ns Maximum module speed 1600 MHz (PC3-12800) Size 8192 MB Banks x Rows x Columns x Bits 8 x 16 x 10 x 64 Ranks 2 SDRAM Device Width 8 bits Bus Width Extension 0 bits tCL-tRCD-tRP-tRAS 11-11-11-28 Supported CAS Latencies (tCL) 11T, 10T, 9T, 8T, 7T, 6T, 5T ---=== Timing Parameters ===--- Minimum Write Recovery time (tWR) 15.000 ns Minimum Row Active to Row Active Delay (tRRD) 6.000 ns Minimum Active to Auto-Refresh Delay (tRC) 48.125 ns Minimum Recovery Delay (tRFC) 260.000 ns Minimum Write to Read CMD Delay (tWTR) 7.500 ns Minimum Read to Pre-charge CMD Delay (tRTP) 7.500 ns Minimum Four Activate Window Delay (tFAW) 30.000 ns ---=== Optional Features ===--- Operable voltages 1.5V, 1.35V RZQ/6 supported? Yes RZQ/7 supported? Yes DLL-Off Mode supported? Yes Operating temperature range 0-95 degrees C Refresh Rate in extended temp range 2X Auto Self-Refresh? Yes On-Die Thermal Sensor readout? No Partial Array Self-Refresh? No Thermal Sensor Accuracy Not implemented SDRAM Device Type Standard Monolithic ---=== Physical Characteristics ===--- Module Height (mm) 30 Module Thickness (mm) 2 front, 2 back Module Width (mm) 133.5 Module Reference Card B ---=== Manufacturer Data ===--- Module Manufacturer Crucial Technology DRAM Manufacturer Micron Technology Manufacturing Date 2016-W43 Assembly Serial Number 0xE035F71D Part Number CT102464BD160B.M16 Revision Code 0x4650 Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0051 Guessing DIMM is in bank 2 ---=== SPD EEPROM Information ===--- EEPROM CRC of bytes 0-116 OK (0x9A9A) # of bytes written to SDRAM EEPROM 176 Total number of bytes in EEPROM 256 Fundamental Memory type DDR3 SDRAM Module Type UDIMM ...
kus
- TODO
Mälu omaduste määramine
Tundub, et dmidecode abil saab hinnata
- millise mälu kasutamine on antud arvutis võimalik
- millist mälu parasjagu kasutatakse
ECC (kuna total width > data width) ja unbuffered mälu
Memory Device Array Handle: 0x1000 Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 4096 MB Form Factor: DIMM Set: 2 Locator: DIMM_A3 Bank Locator: Not Specified Type: DDR3 Type Detail: Synchronous Unbuffered (Unregistered) Speed: 1333 MHz Manufacturer: 00CE000080CE Serial Number: 86F06F3E Asset Tag: 02103800 Part Number: M391B2873FH0-CH9 Rank: 1
# dmidecode --type 16 Handle 0x1000, DMI type 16, 15 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: Multi-bit ECC Maximum Capacity: 16 GB Error Information Handle: Not Provided Number Of Devices: 4
ECC (kuna total width > data width) ja buffered
Memory Device Array Handle: 0x1000 Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 8192 MB Form Factor: DIMM Set: 1 Locator: DIMM_A2 Bank Locator: Not Specified Type: DDR3 Type Detail: Synchronous Registered (Buffered) Speed: 1600 MHz Manufacturer: 00CE00B300CE Serial Number: 180FFDE6 Asset Tag: 03144163 Part Number: M393B1G70QH0-YK0 Rank: 1 Configured Clock Speed: 1333 MHz
# dmidecode --type 16 Handle 0x1000, DMI type 16, 23 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: Multi-bit ECC Maximum Capacity: 192 GB Error Information Handle: Not Provided Number Of Devices: 6
ilma ECC (kuna total width = data width) ja unbuffered (kuna pole kirjas, et on registered ega buffered)
# dmidecode memory .. Memory Device Array Handle: 0x0028 Error Information Handle: 0x0032 Total Width: 64 bits Data Width: 64 bits Size: 2048 MB Form Factor: DIMM Set: None Locator: CHANNEL B Bank Locator: CHANNEL B-DIMM 0 Type: DDR3 Type Detail: Synchronous Speed: 1333 MHz Manufacturer: Kingston Serial Number: 74261F8B Asset Tag: A1_AssetTagNum2 Part Number: 99U5471-002.A00LF Rank: 2 ...
# dmidecode --type 16 Handle 0x0028, DMI type 16, 15 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: None Maximum Capacity: 16 GB Error Information Handle: 0x0029 Number Of Devices: 4