4. $ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Thread(s) per core: 2
Core(s) per socket: 4
CPU socket(s): 2
NUMA node(s): 2
Vendor ID: GenuineIntel
CPU family: 6
Model: 44
Stepping: 2
CPU MHz: 1600.000
BogoMIPS: 4799.88
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 12288K
NUMA node0 CPU(s): 0-3,8-11
NUMA node1 CPU(s): 4-7,12-15
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 44
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
stepping : 2
cpu MHz : 1600.000
cache size : 12288 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
bogomips : 4800.59
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
5. # dmidecode
Memory Device
Array Handle: 0x0035
Total Width: 72 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: DIMM A1
Bank Locator: CHANNEL A
Type: Other
Type Detail: Other
Speed: 1333 MHz
Manufacturer: NOT SUPPORT
Serial Number: NOT SUPPORT
Asset Tag: NOT SUPPORT
Part Number: NOT SUPPORT
# dmidecode
Memory Device
Array Handle: 0x0035
Total Width: 72 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: DIMM A2
Bank Locator: CHANNEL A
Type: Other
Type Detail: Other
Speed: 1333 MHz
Manufacturer: NOT SUPPORT
Serial Number: NOT SUPPORT
Asset Tag: NOT SUPPORT
Part Number: NOT SUPPORT
15. O – Смещение внутри строки
S – Идентификатор строки в кеше
T – Метка внутри строки кеша для привязки к полному адресу
Notes de l'éditeur
Производители процессоров и разработчики ОС делают очень много хороший оптимизаций, но чтобы они сработали нужна некоторая помощь со стороны программиста.
Сегодня эффективные по цене решения как правило достигаются с использованием горизонтального масштабирования, а именно сборки систем из множества обычных серверов вместо дорогих специализированных решений.
DMA – Direct Memory Access (конкурирует с процессором за шину)AGP – Advanced Graphic Port (подключался к северному мосту потому что южный тогда был медленный)
NUMA – Non-Uniform Memory AccessAMD – OpteronIntel – NehalemПамять общая но доступ к ней неоднороден20% задержка при обращении к «чужой» памяти
RAM – Random Access Memory6 Транзисторов на ячейкуИспользуется в кеш-памяти на процессоре
1 запирающий транзистор + 1 небольшой конденсаторКонденсаторы небольшие чтобы можно было много запихнуть в чипПоэтому они быстро разряжаются (leackage) и их надо часто обновлять (refresh)Цикл обновлениясовременных чипов: 64 мс
Synchronous Dynamic RAM64 bit (8 bytes) Databus
Synchronous Dynamic RAM64 bit (8 bytes) Databus
Thread-ыимеют только регистры и то не всеЯдра имеют все отдельное кроме больших кешейВсе данные которые обрабатывает процессор проходят через кешВ кеше хранятся cache lines размером 64 байта (64 бита шины данных х 8 передач)AMD, VIA – Exclusive cacheIntel – Inclusive cacheCache coherency
Dirty lines - только в одном процессореClean lines – могут быть во всехСинхронизация с главной памятью,инвалидация когда видна команда записи на строку в своем кеше сделанную в другом процессоре
Последовательный доступ, ускоряется процессором как прямой так и обратный
Последовательный доступ, ускоряется процессором как прямой так и обратный
Последовательный доступ, ускоряется процессором как прямой так и обратный