Linux - Belleğinizin hızını yazılım aracılığıyla tanımlamanın bir yolu var mı?


9

Yazılım yoluyla belleğinizin hızını tanımlamanın bir yolu var mı? Fedora 9'dayım ve şu anda içinde bulunduğum DIMM'lerin hızını öğrenmek istiyorum.

Bir 'lshw' denedim ama hızı göstermiyor. Anakartın 3 farklı hızı desteklediğini biliyorum, ama orada ne olduğunu bilmiyorum ve kutuyu kapatmak istemiyorum.

Herhangi bir fikir?

Teşekkürler,

EDIT: dmidecode göre ram '30 ns 'bulundu. Kart sadece 400, 533, 667 Mhz RAM'i destekliyorsa nasıl 33 MHz olabilir?

DÜZENLEME 2: Bunu yapmak için başka araçlar var mı?



DÜZENLEME 3: Teslim oldum ve birkaç dakika güç kesip davayı açtım. 667 MhZ olduğu ortaya çıktı - bu model: http://www.directron.com/rm12864aa667.html . Aslında yazılım yoluyla 667 olduğunu anlayamama rağmen, HD'nin cevabını doğru olarak işaretledim, çünkü bu iş için en iyi araç gibi görünüyor.




İşte demidecode --type bellek çıkışı

# dmidecode 2.7
SMBIOS 2.4 present.

Handle 0x0008, DMI type 5, 20 bytes.
Memory Controller Information
    Error Detecting Method: 64-bit ECC
    Error Correcting Capabilities:
        None
    Supported Interleave: One-way Interleave
    Current Interleave: One-way Interleave
    Maximum Memory Module Size: 1024 MB
    Maximum Total Memory Size: 2048 MB
    Supported Speeds:
        70 ns
        60 ns
        50 ns
    Supported Memory Types:
        DIMM
        SDRAM
    Memory Module Voltage: 3.3 V
    Associated Memory Slots: 2
        0x0009
        0x000A
    Enabled Error Correcting Capabilities:
        None

Handle 0x0009, DMI type 6, 12 bytes.
Memory Module Information
    Socket Designation: DIMM0
    Bank Connections: 9 11
    Current Speed: 30 ns
    Type: Unknown FPM Parity SDRAM
    Installed Size: 1024 MB (Single-bank Connection)
    Enabled Size: 1024 MB (Single-bank Connection)
    Error Status: OK

Handle 0x000A, DMI type 6, 12 bytes.
Memory Module Information
    Socket Designation: DIMM1
    Bank Connections: 9 11
    Current Speed: 30 ns
    Type: Unknown FPM Parity SDRAM
    Installed Size: 1024 MB (Single-bank Connection)
    Enabled Size: 1024 MB (Single-bank Connection)
    Error Status: OK

Handle 0x002F, DMI type 16, 15 bytes.
Physical Memory Array
    Location: System Board Or Motherboard
    Use: System Memory
    Error Correction Type: None
    Maximum Capacity: 4 GB
    Error Information Handle: Not Provided
    Number Of Devices: 2

Handle 0x0031, DMI type 17, 27 bytes.
Memory Device
    Array Handle: 0x002F
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 1024 MB
    Form Factor: DIMM
    Set: None
    Locator: DIMM0
    Bank Locator: BANK0
    Type: SDRAM
    Type Detail: Synchronous
    Speed: Unknown
    Manufacturer: Manufacturer0
    Serial Number: SerNum0
    Asset Tag: AssetTagNum0
    Part Number: PartNum0

Handle 0x0033, DMI type 17, 27 bytes.
Memory Device
    Array Handle: 0x002F
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 1024 MB
    Form Factor: DIMM
    Set: None
    Locator: DIMM1
    Bank Locator: BANK1
    Type: SDRAM
    Type Detail: Synchronous
    Speed: Unknown
    Manufacturer: Manufacturer1
    Serial Number: SerNum1
    Asset Tag: AssetTagNum1
    Part Number: PartNum1

Makine hangi satıcıdan geliyor? Onların sitesinde arayamaz mısın?
MDMarra

Hayır, özel yapım bir makine
barfoon 13

Yanıtlar:


18

dmidecode aradığınız araçtır.


Burada çok fazla bilgi var - ama hız ns, MHz'deki hızı istiyorum?
barfoon

Benim dmidecode beni ns ve MHz hızları verir, ancak gerekirse aritmetik (veya çalışan birimler) birkaç saniye dönüşüm gerçekleştirecek.
womble


1
Peki 30 ns bellek = 33 MHz? Benim matematik orada doğru mu? 1 / (30 / 1.000.000) = Hz
cinsinden

3
@ barfoon: Evet, 30ns == 33MHz. Daha hızlı hesaplama, MHz olarak 1000 / (ns) == hızdır.
womble

13

Benim Debian, lshw Bana bu bilgileri vermek.

# lshw -version
B.02.13
# lshw -short -C memory
H/W path             Device     Class       Description
=======================================================
/0/1                            memory      128KiB BIOS
/0/5/6                          memory      20KiB L1 cache
/0/5/7                          memory      1MiB L2 cache
/0/27                           memory      System Memory
/0/27/0                         memory      256MiB DIMM DDR Synchronous 400 MHz (2.5 ns)
/0/27/1                         memory      256MiB DIMM DDR Synchronous 400 MHz (2.5 ns)
/0/27/2                         memory      256MiB DIMM DDR Synchronous 266 MHz (3.8 ns)
/0/27/3                         memory      256MiB DIMM DDR Synchronous 400 MHz (2.5 ns)
/0/28                           memory      Flash Memory
/0/28/0                         memory      512KiB Chip FLASH Non-volatile
/0/0                            memory      
/0/2                            memory      

bu harika, ama benim versiyonumda açıklamanın altındaki hızı göstermiyor.
Neyse

2

Bellek bölümü için dmidecode çıktısını gönderebilir misiniz? ( dmidecode - tip belleği )

Bunu okumak isteyebilirsiniz: http://www.howtoforge.com/dmidecode-finding-out-hardware-details-without-opening-the-computer-case

"NS", belleğin cevap verebildiği hızı "nanosaniye" olarak gösterir. Sayı ne kadar düşükse hız o kadar hızlı olur. Maalesef bu tam bir Mhz numarasını belirtmiyor. DMIDECODE'nin Mhz'i de üretmesi gerekiyor. Çıktının en altında kontrol edin ya da basitçe dmidecode --type memory | grep Mhz


Dmidecode sürümünüzü 2.8 veya üzerine yükseltmenizi öneririm. Rpm'yi buradan alabilirsiniz: icewalkers.com/rpm/dmidecode/fedora-core-9/download/… ve sadece rpm -i dmidecode * rpm Ver. 2.7 hafızanızın çalıştığı Mhz'i göstermeyi desteklemiyor.
David Rickman

1

Belleğin hızını gerçekten karşılaştırmak istiyorsanız, 32bit işlemci 386 korumalı modda yapamazsınız, çünkü sayfa hataları ve sayfa tablolarının düzeni sonuçlarda çok ağırlaşacaktır.

En iyi bahsiniz, karşılaştırmayı hafızadaki fiziksel adreslere doğrudan erişebileceğiniz 16bit "gerçek mod" da kodlamaktır.

Kolayca özelleştirilebilen güzel bir önyükleme kodu için GRUB önyükleyici stage1 kaynağını kontrol edin. stage1, sabit diskinizin ilk 512 baytında bulunan MBR'dir. Bunu kaynak dizin stage1 / stage1.S dosyasında bulabilirsiniz; çok yorumlanmış ve kolayca anlaşılabilir.

MBR'yi ihtiyaçlarınıza göre özelleştirdikten sonra, aşağıdaki yöntemi kullanarak derleyin:

$ BOOT=mbr
$ gcc -O2 -fno-builtin -nostdinc -falign-jumps=1 -falign-loops=1 -falign-functions=1 -Wundef -g -c $BOOT.S
$ gcc  -g  -nostdlib -Wl,-N,-Ttext,7C00 -o $BOOT.exec  $BOOT.o  
$ objcopy -O binary $BOOT.exec $BOOT

Artık hazır bir x86 MBR var. Kodunuzu gerçek makinede çalıştırmadan önce Qemu veya Bochs gibi bir sanal makinede test etmek arzu edilir; ayrıca derleme / hata ayıklama döngüsünü de kolaylaştıracaktır.

Umarım yardımcı olur


1
Makineyi açmadan sadece RAM'inin hangi frekansta derecelendirildiğini bilmek istediğini düşünüyorum.
MDMarra

1

Gerçekten şanslıysanız, aradığınız araç bir el feneri. Hafızayı açıp etikette bulunan bir çıkartmaya bakıp görebilirsiniz. Olarak olsa bunu almak için ne kadar kolay için davanızı tamamen bağlıdır, orada uzun sen kadar makineyi kapatmak gerekmez gerçekten gerçekten gerçekten dikkatli. Makine içleri üzerinde çalışırken ne kadar deneyimli olduğunuzu bilmiyorum, ama bunu anlamak için Linux yazılım komutlarını kullanamadığımda denediğim bir sonraki şey bu.


1

EDIT: dmidecode göre ram '30 ns 'bulundu. Kart sadece 400, 533, 667 Mhz RAM'i destekliyorsa nasıl 33 MHz olabilir?

Sanırım böyle bir şey:

SIMM / DIMM üzerindeki her bir çip 30ns veya 33MHz'de çalışır. SIMM başına 8 çip vardır, bu nedenle 8 x 33MHz = 266MHz; veya DIMM başına 16 çip vererek 533 MHz verir.

Böylece her çip 33 MHz'de çalışırken, tüm bellek modülü 533 MHz'de veri iletebilir.


Bu cevabın en mantıklı olduğuna inanıyorum, yukarıda dmidecode çıktısını yayınladım
barfoon

Ne yazık ki raporlanan hız 30ns ve gerçek bellek hızı 667MHz gibi bir şey gördüğüm kadar basit değil ... Bu yüzden ikisi arasında net bir ilişki olduğundan emin değilim.
olefebvre

@pgs - Senkron Dram böyle çalışmaz. Tüm yongalara paralel olarak erişilir. Bu 30ns değerinin, satır ve sütun adresi gecikmelerini dikkate alarak ilk sözcüğe erişmek için toplam süre olması daha olasıdır. İlk kelimeye erişmek toplam 30ns sürse bile, sonraki kelimeler çok daha hızlı çıkmalıdır . Modern CPU'lar, önbellek, dal tahmini ve diğer optimizasyonları kullanarak bu gecikmeleri gizlemek için çok çaba harcıyor.
Mark Booth

1

Bunun biraz geç olduğunu biliyorum, ama:

Desteklenen zamanlamaları alır ve yarıya indirirseniz, verilen 30 oranına uyarlar. Sonra bunu yarıya indirir ve 10000'i bölerseniz, (800, 666, 571.4) verir.

Zamanlamalarla veri hızı arasındaki bağlantının karmaşık olabileceğine rağmen, neden hiçbir fikrim yok; Ayrıca, bunlardan biri çift veri hızı olabilir.


1

Açıklığa kavuşturmak için, sonunda gördüğünüz 33mhz bellek bios belleğinizdir :)

    Type: Flash
    Type Detail: Non-Volatile
    Speed: 33 MHz
    Manufacturer: ATMEL

Daha iyi bir araç kullanmak istiyorsanız, lm_sensors ( https://wiki.archlinux.org/index.php/Lm_sensors ) ve i2c-tools ( https://www.archlinux.org/packages/?name=i2c- araçları )

Daha sonra dimm-decode ile hafızanız hakkında daha fazla ayrıntı elde edebilirsiniz (işte bir çıktı örneği):

Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0055
Guessing DIMM is in                             bank 6

---=== SPD EEPROM Information ===---
EEPROM CRC of bytes 0-116                       OK (0x4422)
# of bytes written to SDRAM EEPROM              176
Total number of bytes in EEPROM                 256
Fundamental Memory type                         DDR3 SDRAM
Module Type                                     RDIMM

---=== Memory Characteristics ===---
Fine time base                                  2.500 ps
Medium time base                                0.125 ns
Maximum module speed                            1066MHz (PC3-8533)
Size                                            16384 MB
Banks x Rows x Columns x Bits                   8 x 15 x 11 x 64
Ranks                                           4
SDRAM Device Width                              4 bits
tCL-tRCD-tRP-tRAS                               7-7-7-20
Supported CAS Latencies (tCL)                   8T, 7T, 6T

---=== Timing Parameters ===---
Minimum Write Recovery time (tWR)               15.000 ns
Minimum Row Active to Row Active Delay (tRRD)   7.500 ns
Minimum Active to Auto-Refresh Delay (tRC)      50.625 ns
Minimum Recovery Delay (tRFC)                   160.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)       37.500 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-95C
Refresh Rate in extended temp range             1X
Auto Self-Refresh?                              No
On-Die Thermal Sensor readout?                  No
Partial Array Self-Refresh?                     No
Thermal Sensor Accuracy                         0
SDRAM Device Type                               0

---=== Physical Characteristics ===---
Module Height (mm)                              30
Module Thickness (mm)                           4 front, 4 back
Module Width (mm)                               133.5
Module Reference Card                           F

---=== Registered DIMM ===---
# DRAM Rows                                     2
# Registers                                     2
Register manufacturer                           IDT
Register device type                            SSTE32882
Register revision                               0x61
Heat spreader characteristics                   00
SSTE32882 RC0/RC1                               00
SSTE32882 RC2/RC3                               50
SSTE32882 RC4/RC5                               50
SSTE32882 RC6/RC7                               00
SSTE32882 RC8/RC9                               00
SSTE32882 RC10/RC11                             00
SSTE32882 RC12/RC13                             00
SSTE32882 RC14/RC15                             00

---=== Manufacturer Data ===---
Module Manufacturer                             Samsung
DRAM Manufacturer                               Samsung
Manufacturing Location Code                     0x02
Manufacturing Date                              2011-W39
Assembly Serial Number                          xxx
Part Number                                     M393B2K70CM0-YF8

1
dimm-decode? Sanırım demek istedin decode-dimms. Her neyse, benim için çalışmıyor: 0 SDRAM DIMM tespit edildiğini söylüyor.
underscore_d

0

Mümkünse Memtest, IIRC'yi çalıştırmayı deneyin, sol üst köşedeki bellek hızının yanı sıra bellek hızını da gösterir (örneğin 20000MB / s @ 667MHz).


0

DDR sdram ile zamanlamalar 8 VE 2 arasında bir kat vardır. Hatırladığım kadarıyla, DDR Çift Veri Hızı anlamına gelir (lütfen kontrol edin, çünkü tekrar kontrol etmek için bilgi bulamadım). Bu bellek ortalama olarak her iki yolu da içeri ve dışarı aktarabilir.

Nedeni kolaydır. DDR, verilen veri yolu frekansından iki kat daha hızlı zamanlanır. Lütfen veri yolu frekansı ve veri yolu aktarım hızı kapasitesini karıştırmayın. Veri yolu, veri yolu frekansında 32, 64, 128 veya 256 bit aktarır. DÖNGÜ BAŞINA 128 bitlik bir veri seti çok miktarda veridir.

Örnek olarak: 200 MHz'de otobüsler üzerinde DDR400 bulundu. Diğer adı PC3200. 400'den 3200'e ulaşmak için bir faktör 8 bulacaksınız. Bu faktör DDR (1/2/3/4 ...) ne olursa olsun DAİMA doğrulanmıştır.

Aşağıdaki bağlantı, temel bilgileri almak için yeterince iyi (ve muhtemelen açıklamalarımdan daha iyi ve daha eksiksiz :))

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.