Linux - มีวิธีการระบุความเร็วของหน่วยความจำของคุณผ่านซอฟต์แวร์หรือไม่


9

มีวิธีการระบุความเร็วของหน่วยความจำของคุณผ่านซอฟต์แวร์หรือไม่ ฉันใช้ Fedora 9 อยู่และกำลังมองหาความเร็วของ DIMM ที่ฉันมีอยู่ในขณะนี้

ฉันลองใช้ 'lshw' แต่ไม่แสดงความเร็ว ฉันรู้ว่ามาเธอร์บอร์ดรองรับความเร็วที่แตกต่างกัน 3 ระดับ แต่ฉันไม่รู้ว่ามีอะไรอยู่ในนั้นและไม่ต้องการปิดกล่อง

ความคิดใด ๆ

ขอบคุณ

แก้ไข: ฉันได้พบว่า ram เป็น '30 ns' ตาม dmidecode จะเป็น 33 MHz ได้อย่างไรถ้าบอร์ดรองรับ 400, 533, 667 Mhz RAM เท่านั้น?

แก้ไข 2: มีเครื่องมืออื่นที่จะทำเช่นนี้?



แก้ไข 3: ฉันยอมแพ้จริง ๆ และจบลงด้วยการปิดเครื่องสักครู่แล้วเปิดเคส มันเปิดออกมาเป็น 667 MhZ - รุ่นนี้: http://www.directron.com/rm12864aa667.html แม้ว่าจะไม่สามารถคิดได้ว่าเป็น 667 ผ่านทางซอฟต์แวร์ แต่ฉันได้ทำเครื่องหมายคำตอบของ HD ว่าเป็นคำตอบที่ถูกต้องซึ่งน่าจะเป็นเครื่องมือที่ดีที่สุดสำหรับงานนี้




นี่คือผลลัพธ์ของ demidecode - ประเภทหน่วยความจำ

# 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

ผู้ขายรายนี้เป็นเครื่องจักรจากอะไร คุณไม่สามารถค้นหามันบนเว็บไซต์ของพวกเขา?
MDMarra

ไม่มันเป็นเครื่องจักรที่สร้างขึ้นเอง
barfoon

คำตอบ:


18

dmidecode เป็นเครื่องมือที่คุณกำลังมองหา


มีข้อมูลมากมายที่นี่ - แต่ความเร็วอยู่ใน ns ฉันต้องการความเร็วเป็น MHz หรือไม่
barfoon

dmidecode ของฉันให้ความเร็วฉันใน ns และ MHz แต่ไม่กี่วินาทีของเลขคณิต (หรือหน่วยที่ทำงาน) จะทำการแปลงหากจำเป็น
womble


1
ดังนั้นหน่วยความจำ 30 ns = 33 MHz? คณิตศาสตร์ของฉันถูกต้องหรือไม่ 1 / (30 / 1,000,000) = ความเร็วใน Hz
barfoon

3
@barfoon: ใช่ 30ns == 33MHz การคำนวณที่เร็วขึ้นคือ 1000 / (ns) == ความเร็วเป็น MHz
womble

13

บน Debian ของฉันlshwให้ข้อมูลนั้นแก่ฉัน

# 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      

นี่เป็นสิ่งที่ยอดเยี่ยม แต่สำหรับเวอร์ชั่นของฉันมันไม่แสดงความเร็วภายใต้คำอธิบาย ขอบคุณนะ,
barfoon

2

คุณสามารถโพสต์เอาต์พุตของ dmidecode สำหรับส่วนหน่วยความจำได้หรือไม่? ( dmidecode - หน่วยความจำประเภท )

คุณอาจต้องการอ่านสิ่งนี้: http://www.howtoforge.com/dmidecode-finding-out-hardware-details-without-opening-the-computer-case

"NS" อ้างอิง "นาโนวินาที" ความเร็วที่หน่วยความจำสามารถตอบกลับได้ ยิ่งตัวเลขลดความเร็วก็ยิ่งเร็วเท่านั้น น่าเสียดายที่นี่ไม่ได้อ้างอิงหมายเลข Mhz ที่แน่นอน DMIDECODE ควรที่จะส่งออก Mhz เช่นกัน ตรวจสอบที่ด้านล่างสุดของเอาต์พุตหรือเพียงแค่dmidecode - ประเภทหน่วยความจำ | grep Mhz


ฉันขอแนะนำให้คุณอัพเกรด dmidecode เป็น 2.8 หรือใหม่กว่า คุณสามารถคว้ารอบต่อนาทีได้ที่นี่: icewalkers.com/rpm/dmidecode/fedora-core-9/download/… และเพียงแค่ rpm -i dmidecode * rpm Ver 2.7 ไม่รองรับการแสดง Mhz ที่หน่วยความจำของคุณทำงาน
David Rickman

1

หากคุณต้องการกำหนดมาตรฐานความเร็วของหน่วยความจำอย่างแท้จริงคุณไม่สามารถทำได้ในโหมดที่ได้รับการป้องกันของโปรเซสเซอร์ 32 บิต 386 เนื่องจากข้อบกพร่องของหน้าและเค้าโครงของหน้ากระดาษจะมีน้ำหนักมากในผลลัพธ์

ทางออกที่ดีที่สุดของคุณคือการเข้ารหัสเกณฑ์มาตรฐานในโหมด 16 บิต "โหมดจริง" ที่คุณสามารถเข้าถึงที่อยู่ทางกายภาพของหน่วยความจำโดยตรง

สำหรับรหัส bootup ที่ดีที่สามารถปรับแต่งได้ง่ายให้ตรวจสอบซอร์ส GRUB bootloader stage1 stage1 เป็น MBR ที่อยู่ใน 512 ไบต์แรกของฮาร์ดดิสก์ของคุณ คุณจะพบไฟล์ดังกล่าวในไฟล์ไดเรกทอรี stage1 / stage1.S มันแสดงความคิดเห็นอย่างหนักและเข้าใจง่าย

เมื่อคุณกำหนด MBR ให้ตรงกับความต้องการของคุณแล้วให้รวบรวมโดยใช้วิธีการต่อไปนี้:

$ 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

ตอนนี้คุณพร้อม x86 MBR แล้ว เป็นที่พึงประสงค์ในการทดสอบรหัสของคุณบนเครื่องเสมือนเช่น Qemu หรือ Bochs ก่อนที่จะเรียกใช้บนเครื่องจริง มันจะทำให้วงจรการรวบรวม / การดีบักง่ายขึ้น

หวังว่ามันจะช่วย


1
ฉันคิดว่าเขาแค่อยากรู้ว่า RAM ของเขามีความถี่เท่าไรโดยไม่ต้องเปิดเครื่อง
MDMarra

1

หากคุณโชคดีจริงๆเครื่องมือที่คุณกำลังมองหาคือไฟฉาย หน่วยความจำบางอย่างที่คุณสามารถเปิดเคสและดูและดูสติกเกอร์ที่มีอยู่บนฉลาก ขึ้นอยู่กับกรณีของคุณแม้ว่าจะเป็นวิธีการที่ง่ายก็คือการได้รับมันและคุณไม่จำเป็นต้องปิดเครื่องได้นานเท่าที่คุณจริงๆ จริงๆ จริงๆระมัดระวัง ฉันไม่รู้ว่าคุณมีประสบการณ์เกี่ยวกับการทำงานกับเครื่องจักรภายในหรือไม่ แต่นี่คือสิ่งต่อไปที่ฉันลองเมื่อฉันไม่สามารถใช้คำสั่งซอฟต์แวร์ Linux เพื่อหาคำตอบได้


1

แก้ไข: ฉันได้พบว่า ram เป็น '30 ns' ตาม dmidecode จะเป็น 33 MHz ได้อย่างไรถ้าบอร์ดรองรับ 400, 533, 667 Mhz RAM เท่านั้น?

ฉันเดาว่ามันเป็นอย่างนี้:

ชิปแต่ละตัวใน SIMM / DIMM ทำงานที่ 30ns หรือ 33MHz SIMM มี 8 ชิปต่อหนึ่งดังนั้น 8 x 33MHz = 266MHz หรือ 16 ชิปต่อ DIMM ให้ 533 MHz

ดังนั้นในขณะที่ชิปแต่ละตัวทำงานที่ 33 MHz โมดูลหน่วยความจำทั้งหมดสามารถส่งข้อมูลที่ 533 MHz


ผมเชื่อว่าคำตอบนี้จะทำให้ความรู้สึกมากที่สุด, ive โพสต์การส่งออกของ dmidecode ข้างต้น
barfoon

น่าเสียดายที่มันไม่ง่ายอย่างที่ฉันได้เห็นสิ่งที่รายงานความเร็ว 30ns และความเร็วหน่วยความจำจริงเป็น 667MHz ... ดังนั้นฉันไม่แน่ใจว่ามีความสัมพันธ์ที่ชัดเจนระหว่างสองคนนี้
olefebvre

@pgs - Dram แบบซิงโครนัสไม่ทำงานอย่างนั้น ชิปทั้งหมดเข้าถึงได้ในแบบคู่ขนาน มีความเป็นไปได้สูงว่า 30ns นี้เป็นเวลาทั้งหมดในการเข้าถึงคำแรกโดยคำนึงถึงเวลาในการตอบสนองแถวและคอลัมน์ของบัญชี แม้ว่าจะใช้เวลาทั้งหมดในการเข้าถึง 30ns คำแรกคำที่ตามมาควรจะออกมามากขึ้นเร็วขึ้น CPU สมัยใหม่ใช้ความพยายามอย่างมากในการซ่อนความล่าช้าดังกล่าวโดยใช้แคชการทำนายสาขาและการเพิ่มประสิทธิภาพอื่น ๆ
มาร์กบูธ

1

ฉันรู้ว่ามันช้าไปหน่อย แต่:

หากคุณใช้เวลาที่กำหนดและลดลงครึ่งหนึ่งอัตราดังกล่าวจะพอดีกับอัตราที่กำหนดไว้ที่ 30 จากนั้นถ้าคุณแบ่งครึ่งนี้และแบ่ง 10,000 ค่าด้วยค่าครึ่งหนึ่งจะให้ (800, 666, 571.4)

ฉันไม่รู้ว่าทำไมถึงแม้ว่าฉันจะเชื่อมต่อระหว่างการกำหนดเวลาและอัตราข้อมูลอาจมีความซับซ้อน นอกจากนี้หนึ่งในนั้นอาจเป็นอัตราข้อมูลคู่


1

เพียงชี้แจงหน่วยความจำ 33mhz ที่คุณเห็นในตอนท้ายคือหน่วยความจำไบออสของคุณ :)

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

หากคุณต้องการใช้เครื่องมือที่ดีกว่าให้ติดตั้ง lm_sensors ( https://wiki.archlinux.org/index.php/Lm_sensors ) และ i2c-tools ( https://www.archlinux.org/packages/?name=i2c- เครื่องมือ )

จากนั้นคุณจะได้รับรายละเอียดเฉพาะเกี่ยวกับหน่วยความจำของคุณมากขึ้นด้วย dimm-decode (นี่คือตัวอย่างของเอาต์พุต):

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? decode-dimmsฉันคิดว่าคุณหมายถึง อย่างไรก็ตามมันไม่ได้ผลสำหรับฉัน: ตรวจพบ 0 SDRAM DIMMs
underscore_d

0

หากเป็นไปได้ลองเรียกใช้ Memtest IIRC มันจะแสดง troughout รวมถึงความเร็วหน่วยความจำที่มุมซ้ายบน (เช่น 20000MB / s @ 667MHz เช่น)


0

การกำหนดเวลาด้วย DDR sdram นั้นมีค่าตั้งแต่ 8 และจาก 2 จากสิ่งที่ฉันจำได้ DDR หมายถึงอัตราการส่งข้อมูลเป็นสองเท่า (โปรดตรวจสอบสิ่งนี้เพราะฉันไม่พบข้อมูลที่จะตรวจสอบอีกครั้ง) หน่วยความจำนั้นสามารถถ่ายโอนได้ทั้งสองทาง (เข้าและออก) ในเวลาเฉลี่ย

เหตุผลง่าย DDR ตั้งเวลาเร็วกว่าความถี่บัสที่กำหนดสองเท่า โปรดอย่าสับสนระหว่างความถี่บัสและความจุอัตราการถ่ายโอนสำหรับรถบัส บัสจะทำการถ่ายโอน 32, 64, 128 หรือ 256 บิตที่ความถี่บัส หนึ่งชุดของข้อมูล 128 บิตต่อวงจรหนึ่งคือข้อมูลจำนวนมาก

ตัวอย่างเช่น: พบ DDR400 บนรถเมล์ที่ 200 MHz ชื่ออื่นคือ PC3200 ในการรับ 400 ถึง 3200 คุณจะพบกับปัจจัยที่ 8 ปัจจัยนี้คือการตรวจสอบทุกสิ่งที่ DDR (1/2/3/4 ... )

ลิงค์ต่อไปนี้ดีพอที่จะรับข้อมูลเบื้องต้น (และอาจดีกว่าและสมบูรณ์กว่าคำอธิบายของฉัน :))

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.