Страницы:Кликните, чтобы указать произвольную страницуназад12
Ruins: Организация DDR3 SDRAM на логическом уровне и оптимизация доступа
PRODIGY
Junior Member
7/7 ответов
7 лет на iXBT, с августа 2017
Инфо Ответить
P
PRODIGY Junior Member
7 лет назад / 12 сентября 2017 13:35
есть исходник, который классно демонстирует логику работы с шиной SMBus.
SPD на SMBus шине. после запуска компа, биос выключает эту шину.
её отправили в хвост архитектуры к южному мосту. если мы хотим прочитать её, нужно чз южный мост регистры чипсета настроить. класс 0C5000h (см.Несвижский). приведу цитату из хакера..

1) Программирование конфигурационных регистров LPC Bridge.
Локализуем в конфигурационном пространстве блок регистров с координатами:
1     Bus = 0,
2  Device = 1Fh,
3Function = 0.
Это устройство LPC Bridge, входящее в состав "южного моста" Intel ICH4.
Его идентификаторы: Vendor ID = 8086h, Device ID = 24C0h.

В этом блоке, по адресу 00F2h расположен 8-битный регистр 'Function Disable Register'.
Бит 3 указанного регистра управляет разрешением доступа к конфигурационным регистрам контроллера SMBus: 0=доступ разрешен, 1=доступ запрещен. Устанавливаем указанный бит в "0", т.е. разрешаем доступ. Это необходимо, т.к. в некоторых платах, BIOS перед загрузкой ОС оставляет этот бит в состоянии "1", при этом доступ к контроллеру SMBus по умолчанию запрещен.

2) Программирование конфигурационных регистров контроллера SMBus.
Локализуем в конфигурационном пространстве блок регистров с координатами:
1     Bus = 0,
2  Device = 1Fh,
3Function = 3.
Это устройство 'SMBus Controller', входящее в состав "южного моста" Intel ICH4.
Его идентификаторы: Vendor ID = 8086h, Device ID = 24C3h.

Назначаем диапазон портов ввода-вывода для контроллера SMBus, для этого записываем значение базового адреса диапазона в регистр SMB_BASE по адресу 0020h. В регистре Command Register, расположенном по адресу 0004h устанавливаем бит 0 (I/O Space Enable bit) в "1", что обеспечивает разрешение доступа к диапазону портов ввода-вывода контроллера SMBus.

Разрешаем функционирование контроллера SMBus, для этого устанавливаем в "1" бит 0 регистра по адресу 0040h (это бит SMBus Host Enable регистра SMBus Host Configuration). Если BIOS, перед загрузкой ОС, оставил контроллер SMBus в разрешенном состоянии (это можно определить по состоянию разрешающих битов, описанных выше), программа не должна повторно выполнять его разрешение, в этом случае пропускаем данные действия. Подробности в [2].

3) Начинаем взаимодействие с контроллером SMBus через его диапазон портов ввода-вывода.
Базовый адрес этого диапазона, присвоенный контроллеру на шаге 2, ниже обозначен как SMB_Base. Если контроллер уже был включен на момент запуска программы и шаг 2 был пропущен, то в качестве SMB_Base используем исходное значение базового адреса (установленное процедурой BIOS POST).

Обнуляем статусные биты в регистре Host Status (SMB_Base+0) для подготовки контроллера к очередной операции. Биты этого регистра используют дисциплину Read/Write Clear, и обнуляются при записи "1" в них. Подробности в [2].

4) Передаем 8-битный адрес ячейки микросхемы SPD, которую требуется прочитать.
Он записывается в регистр Host Command (SMB_Base+3). При выполнении транзакции на шине SMBus, значение этого регистра передается в поле Command. Подробности в [11-12].

5) Передаем 8-битный адрес микросхемы SPD, к которой выполняется обращение.
Он записывается в регистр Transmit Slave Address (SMB_Base+4). При выполнении транзакции на шине SMBus, значение этого регистра передается в поле Slave Address. Формат адреса устройства: биты 7-4 при адресации SPD всегда равны 1010b. Биты 3-1 определяют номер микросхемы SPD для одного из восьми модулей DIMM: 000b=DIMM0 … 111b=DIMM7. Бит 0 определяет тип операции: 0=запись, 1=чтение.

Пример: для чтения SPD модуля DIMM2 необходимо установить 10100101b = A5h.

6) Запускаем выполнение транзакции, параметры которой были подготовлены на шагах 4 и 5.
Для этого необходимо записать код операции в регистр Host Control (SMB_Base+2). В соответствии с документом [2], для запуска операции передачи байта используется код 01001000b = 48h. Отметим, что направление передачи байта (чтение или запись), определяется битом 0 регистра Transmit Slave Address, установленного на шаге 5.

7) После выполнения шага 6, контроллер SMBus начинает операцию чтения байта из SPD.
Программа должна ожидать завершения операции. Опрашиваем состояние бита Host Busy, это бит 0 регистра Host Status (SMB_Base+0). По значению Host Busy=1 определяем момент начала операции, затем ожидаем Host Busy=0, то есть завершения операции. Отсутствие ожидаемого события в течение заданного интервала (около 50 мс) интерпретируется как ошибка – таймаут шины.

8) Считываем из регистра Host Data 0 (SMB_Base+5) байт, прочитанный из SPD.
Его значение достоверно только при отсутствии ошибок.

9) Проверяем отсутствие ошибок.
Для этого считываем регистр Host Status (SMB_Base+0) и анализируем статусные биты. Согласно документу [2], после успешного завершения транзакции, состояние битов 4-1 должно быть 0001b. Маскируем указанное битовое поле и проверяем его значение.

Добавление от 12.09.2017 13:35:

001NEWIODELAY EQU OUT 0EBh, AL
002  
003PCIAddr   dd 0
004SMBusAddr dw 0
005  
006VDID_PIIX4    =71138086h; 82371AB/EB/MB PIIX4/E/M Power Management Controller.
007VDID_VIA596A  =30501106h; VT82C596/A/B Power Management Controller
008VDID_VIA686A  =30571106h; VT82C686/A/B Power Management Controller
009  
010VDID_AMD756PM =740B1022h; AMD-756 Power Management Controller
011VDID_AMD766PM =74131022h; AMD-766 Power Management Controller
012VDID_AMD768PM =74431022h; AMD-768 ACPI Controller
013VDID_AMD8111PM=746B1022h; AMD-8111 ACPI System Management Controller
014  
015;********************************************
016;* Функция поиска адреса SMBus              *
017;* Результат в SMBusAddr                    *
018;* В EAX PCI адрес                          *
019;********************************************
020  
021FindSMBusAddr:
022PUSH EBX
023PUSH ECX
024PUSH EDX
025  
026MOV EBX, 0C0500h      ; Класс SMBus
027MOV ECX, 80000000h    ; Счетчик он же адрес
028.Label1:
029  
030AND ECX, 0FFFFFF00h   ; Выравниваем
031MOV EAX, ECX
032MOV DX,  0CF8h
033OUT DX,  EAX          ; Устанавливаем адрес
034MOV DX,  0CFCh
035IN  EAX, DX           ; Читаем регистр
036CMP EAX, 0FFFFFFFFh   ; Не существующее устройство.
037JE  .Label2
038  
039CMP EAX, VDID_VIA596A
040JNE .Label9
041  
042ADD ECX, 80h          ; Для VDID_VIA596A
043MOV EAX, ECX
044MOV DX,  0CF8h
045OUT DX,  EAX          ; Устанавливаем адрес
046MOV DX,  0CFCh
047IN  EAX, DX           ; Читаем регистр
048  
049JMP .Label3
050  
051.Label9:
052CMP EAX, VDID_VIA686A
053JE  .Label7
054CMP EAX, VDID_PIIX4
055JNE .Label8
056.Label7:
057  
058ADD ECX, 90h          ; Для VDID_PIIX4 и VDID_VIA686A
059MOV EAX, ECX
060MOV DX,  0CF8h
061OUT DX,  EAX          ; Устанавливаем адрес
062MOV DX,  0CFCh
063IN  EAX, DX           ; Читаем регистр
064  
065JMP .Label3
066  
067.Label8:
068CMP EAX, VDID_AMD756PM
069JE  .label5
070CMP EAX, VDID_AMD766PM
071JE  .label5
072CMP EAX, VDID_AMD768PM
073JE  .label5
074CMP EAX, VDID_AMD8111PM
075JE  .label5
076JMP .Label4
077.label5:
078  
079ADD ECX, 58h          ; Для VDID_AMD_PM
080MOV EAX, ECX
081MOV DX,  0CF8h
082OUT DX,  EAX          ; Устанавливаем адрес
083MOV DX,  0CFCh
084IN  EAX, DX           ; Читаем регистр
085  
086JMP .Label3
087  
088  
089.Label4:
090ADD ECX, 08           ; Регистр отвечающий за класс устройства
091MOV EAX, ECX
092MOV DX,  0CF8h
093OUT DX,  EAX          ; Устанавливаем адрес
094MOV DX,  0CFCh
095IN  EAX, DX           ; Читаем регистр
096SHR EAX, 8            ;
097CMP EAX, EBX 
098  
099JNE .Label2      
100MOV CL,  10h-4h       ; Ура нашли SMBus
101  
102MOV EBX, 6
103.Label6:
104  
105ADD ECX, 4h           ; BAR1-BAR6
106MOV EAX, ECX
107MOV DX,  0CF8h
108OUT DX,  EAX          ; Устанавливаем адрес
109MOV DX,  0CFCh
110IN  EAX, DX           ; Читаем регистр
111TEST AX, 0FFF0h
112JNZ  .Label3          ; Выходим
113DEC EBX
114JNZ .Label6
115  
116JMP .Label3           ; Выходим
117  
118.Label2:
119ADD ECX, 256
120  
121               
122CMP ECX, 80FFFF00h    ; Максимум 256 шин.              
123JNE .Label1
124MOV ECX, 0FFFFFFFFh   ; Не нашли
125MOV EAX, 0
126.Label3:
127AND AX,  0FFF0h       ; Зануляим 4 бита.
128MOV [SMBusAddr],AX    ; сохроняем адресс SMBus
129  
130XOR EAX, EAX          ; Сбрасываем адрес PCI
131MOV DX,  0CF8h        ; Чтобы не было претензий.
132OUT DX,  EAX          ;
133  
134AND ECX, 0FFFFFF00h   ; Сбрасываем индекс регистра
135MOV EAX, ECX
136POP EDX
137POP ECX
138POP EBX
139RET

Добавление от 12.09.2017 13:36:

001ORG 100h
002CALL FindSMBusAddr
003MOV  AX,[SMBusAddr]
004CMP  AX,0
005JNZ  .SMBusFound   
006MOV  AH,9
007MOV  DX,str_SMbusNotFound
008INT  21h
009RET ; Выход из программы
010  
011.SMBusFound:
012MOV  ESI,str_SMBusAddr+11
013CALL WordToHEX
014  
015MOV  AH,9
016MOV  DX,str_SMBusAddr
017INT  21h
018  
019MOV  AH,9
020MOV  DX,str_FoundDivece
021INT  21h
022  
023MOV  ECX, 07Fh              ; Всего 128 адреесов
024.Loop:
025MOV  AL, CL
026CALL TestSMBusDevice
027TEST AL,1
028JZ   .Next
029MOV  AL,CL
030MOV  ESI,str_Divece
031CALL ByteToHEX
032MOV  AH,9
033MOV  DX,str_Divece
034INT  21h
035  
036.Next:
037LOOP .Loop
038RET  ; Выход из программы
039  
040  
041str_FoundDivece      db 'Found Divece :',0Dh,0Ah,'$'
042str_Divece           db '  ',0Dh,0Ah,'$'
043str_SMBusAddr        db 'SMBusAddr :    ',0Dh,0Ah,'$'
044str_SMbusNotFound    db 'SMBusAddr : Not Found',0Dh,0Ah,'$'
045  
046include "FindSMBus.inc"
047     
048;********************************************
049;* Функция тестирования устройства          *
050;* В AL, адрес устройства на SMBus          *
051;* Результат в EAX =1 есть 0 нет            *
052;********************************************
053TestSMBusDevice:
054PUSH EDX
055PUSH ECX
056MOV  DX, [SMBusAddr]
057ADD  DX, 4           ;+4 Адреес устройства XMIT_SLVA
058SHL  AL, 1
059OR   AL, 1           ; Чтение
060OUT  DX, AL
061  
062NEWIODELAY
063DEC  DX              ;+3 HST_CMD Регистр команды, для EEPROM это адрес ячейки
064XOR  AL,AL
065OUT  DX,AL
066NEWIODELAY
067  
068DEC  DX              ;+2 Начать передачу HST_CNT
069MOV  AL, 01001000b   ;START=1 SMB_CMD =010b Byte Data
070OUT  DX, AL
071  
072XOR  EAX,EAX
073  
074SUB  DX, 2           ;+0 Начать передачу HST_STS
075;MOV  CX, 03D00h      ; Время выполнения команды 0.0078125 секунд для передачи 128Бит в 2 конца  32768 бит/с
076MOV  CX, 0800h      ; Время выполнения команды 0.0012207  секунд для передачи 40ит в 2 конца  32768 бит/с
077.Loop:
078NEWIODELAY
079IN   AL, DX
080TEST AL, 2
081JNZ  .ok
082LOOP .Loop
083                    ; Тайм аут истек
084ADD  DX,2
085MOV  AL,2           ; Выставляем Kill бит
086OUT  DX,AL
087  
088SUB  DX,2
089IN   AL, DX
090  
091.ok:
092NEWIODELAY
093OUT  DX, AL          ; Очищаем выставленные биты
094  
095AND  AL, 02H         ;INTR  команда завершилась?
096SHR  AL, 1           ; Удачна завершилось ошибки не смотри
097POP  ECX
098POP  EDX
099RET
100  
101  
102  
103;********************************************
104;* Функции перевода числа в HEX строку      *
105;* EAX - число                              *
106;* ESI адресс                               *
107;********************************************
108HEX_ASCII db '0123456789ABCDEF'
109ByteToHEX:
110PUSH EAX
111PUSH EBX
112ADD  ESI, 1
113XOR  EBX, EBX
114MOV  BL,  AL
115AND  EBX, 0Fh
116MOV  BL,  [HEX_ASCII+EBX]
117MOV  [ESI],BL
118DEC  ESI
119  
120SHR  EAX, 4
121MOV  BL,  AL
122AND  EBX, 0Fh
123MOV  BL,  [HEX_ASCII+EBX]
124MOV  [ESI],BL
125  
126POP  EBX
127POP  EAX
128RET
129  
130WordToHEX:
131PUSH EAX
132PUSH EBX
133ADD  ESI, 3
134XOR  EBX, EBX
135MOV  BL,  AL
136AND  EBX, 0Fh
137MOV  BL,  [HEX_ASCII+EBX]
138MOV  [ESI],BL
139DEC  ESI
140  
141SHR  EAX, 4
142MOV  BL,  AL
143AND  EBX, 0Fh
144MOV  BL,  [HEX_ASCII+EBX]
145MOV  [ESI],BL
146DEC  ESI
147  
148SHR  EAX, 4
149MOV  BL,  AL
150AND  EBX, 0Fh
151MOV  BL,  [HEX_ASCII+EBX]
152MOV  [ESI],BL
153DEC  ESI
154  
155SHR  EAX, 4
156MOV  BL,  AL
157AND  EBX, 0Fh
158MOV  BL,  [HEX_ASCII+EBX]
159MOV  [ESI],BL
160  
161POP  EBX
162POP  EAX
163RET

Добавление от 12.09.2017 13:37:

001ORG 100h
002CALL FindSMBusAddr
003MOV  AX,[SMBusAddr]
004CMP  AX,0
005JNZ  .SMBusFound   
006MOV  AH,9
007MOV  DX,str_SMbusNotFound
008INT  21h
009RET ; Выход из программы
010  
011.SMBusFound:
012MOV  ESI,str_SMBusAddr+11
013CALL WordToHEX
014  
015MOV  AH,9
016MOV  DX,str_SMBusAddr
017INT  21h
018  
019MOV  AH,9
020MOV  DX,str_FoundDivece
021INT  21h
022  
023MOV  ECX, 07Fh              ; Всего 128 адреесов
024.Loop:
025MOV  AL, CL
026CALL TestSMBusDevice
027TEST AL,1
028JZ   .Next
029MOV  AL,CL
030MOV  ESI,str_Divece
031CALL ByteToHEX
032MOV  AH,9
033MOV  DX,str_Divece
034INT  21h
035  
036.Next:
037LOOP .Loop
038RET  ; Выход из программы
039  
040  
041str_FoundDivece      db 'Found Divece :',0Dh,0Ah,'$'
042str_Divece           db '  ',0Dh,0Ah,'$'
043str_SMBusAddr        db 'SMBusAddr :    ',0Dh,0Ah,'$'
044str_SMbusNotFound    db 'SMBusAddr : Not Found',0Dh,0Ah,'$'
045  
046include "FindSMBus.inc"
047     
048;********************************************
049;* Функция тестирования устройства          *
050;* В AL, адрес устройства на SMBus          *
051;* Результат в EAX =1 есть 0 нет            *
052;********************************************
053TestSMBusDevice:
054PUSH EDX
055PUSH ECX
056MOV  DX, [SMBusAddr]
057ADD  DX, 4           ;+4 Адреес устройства XMIT_SLVA
058SHL  AL, 1
059OR   AL, 1           ; Чтение
060OUT  DX, AL
061  
062NEWIODELAY
063DEC  DX              ;+3 HST_CMD Регистр команды, для EEPROM это адрес ячейки
064XOR  AL,AL
065OUT  DX,AL
066NEWIODELAY
067  
068DEC  DX              ;+2 Начать передачу HST_CNT
069MOV  AL, 01001000b   ;START=1 SMB_CMD =010b Byte Data
070OUT  DX, AL
071  
072XOR  EAX,EAX
073  
074SUB  DX, 2           ;+0 Начать передачу HST_STS
075;MOV  CX, 03D00h      ; Время выполнения команды 0.0078125 секунд для передачи 128Бит в 2 конца  32768 бит/с
076MOV  CX, 0800h      ; Время выполнения команды 0.0012207  секунд для передачи 40ит в 2 конца  32768 бит/с
077.Loop:
078NEWIODELAY
079IN   AL, DX
080TEST AL, 2
081JNZ  .ok
082LOOP .Loop
083                    ; Тайм аут истек
084ADD  DX,2
085MOV  AL,2           ; Выставляем Kill бит
086OUT  DX,AL
087  
088SUB  DX,2
089IN   AL, DX
090  
091.ok:
092NEWIODELAY
093OUT  DX, AL          ; Очищаем выставленные биты
094  
095AND  AL, 02H         ;INTR  команда завершилась?
096SHR  AL, 1           ; Удачна завершилось ошибки не смотри
097POP  ECX
098POP  EDX
099RET
100  
101  
102  
103;********************************************
104;* Функции перевода числа в HEX строку      *
105;* EAX - число                              *
106;* ESI адресс                               *
107;********************************************
108HEX_ASCII db '0123456789ABCDEF'
109ByteToHEX:
110PUSH EAX
111PUSH EBX
112ADD  ESI, 1
113XOR  EBX, EBX
114MOV  BL,  AL
115AND  EBX, 0Fh
116MOV  BL,  [HEX_ASCII+EBX]
117MOV  [ESI],BL
118DEC  ESI
119  
120SHR  EAX, 4
121MOV  BL,  AL
122AND  EBX, 0Fh
123MOV  BL,  [HEX_ASCII+EBX]
124MOV  [ESI],BL
125  
126POP  EBX
127POP  EAX
128RET
129  
130WordToHEX:
131PUSH EAX
132PUSH EBX
133ADD  ESI, 3
134XOR  EBX, EBX
135MOV  BL,  AL
136AND  EBX, 0Fh
137MOV  BL,  [HEX_ASCII+EBX]
138MOV  [ESI],BL
139DEC  ESI
140  
141SHR  EAX, 4
142MOV  BL,  AL
143AND  EBX, 0Fh
144MOV  BL,  [HEX_ASCII+EBX]
145MOV  [ESI],BL
146DEC  ESI
147  
148SHR  EAX, 4
149MOV  BL,  AL
150AND  EBX, 0Fh
151MOV  BL,  [HEX_ASCII+EBX]
152MOV  [ESI],BL
153DEC  ESI
154  
155SHR  EAX, 4
156MOV  BL,  AL
157AND  EBX, 0Fh
158MOV  BL,  [HEX_ASCII+EBX]
159MOV  [ESI],BL
160  
161POP  EBX
162POP  EAX
163RET
igotm
Member
1600/1602 ответов
11 лет на iXBT, с ноября 2013
Чаще пишет Р Р† "Программирование" (99%)
Инфо Ответить
i
igotm Member
7 лет назад / 12 сентября 2017 19:01
А можем мы обсудить стратегии работы с памятью - которые не затрагивают нижний уровень?

Чтобы код, без заморочек, "одинаково"(стремился к максимальной производительности) производительно работал и на том что есть сейчас и на том что будет.

Поясняю:
Например, перед расчетами - когда запрашиваются куски памяти из разных мест и это может вызвать неоптимальную загрузку (множественные перекрывающиеся загрузки) кэшируемых кусков памяти...
Так вот... Перед этим - провоцируем загрузку в кэш всего куска памяти с которым будет вестись работа мелкими порциями. Зная что в кэш оно по любому влезает (иначе вообще - смысл теряется: вернее задача меняется на другую).
То есть пресекаем случай когда мы перегружаем кэш куском, который начинается раньше запрошенного. Процессор и контроллер памяти просто не знает - что это все тот же большой массив памяти который помещается в современный кэш, но запрашивается в том стиле - который ни с какой стороны не подсказывает оптимальный вариант работы с памятью. Для, внимание, - данной задачи.

То есть:
1) Знаем что они умные, эти механизмы.
2) НО, не всезнайские, не телепаты они, ну...
3) Значит - подсказываем - и с наслаждением пользуемся их "ушлостью". В вопросах, в которых они (вместе с компилятором) соображают САМИ (куда лучше, чем мега-брутальные прогеры вооруженные ассемблером и готовые каждые 10 лет обнаруживать, что компилятор умнее, если уметь его - правильно попросить: подсказать ему то, о чем он - сам ну никак не догадается).

То есть принцип "честной игры" с платформой на которой реализуется та или иная задача. Чтоб потом не говорить - ах оно такое тупое, типа научил там всё уму разуму... запрогал ещё один велосипед шестиколесный... с двумя рулями... дайте, теперь мне, медаль побольше...

То есть - никак не умаляя способности прирожденных ассемблерщиков, любителей ковырятся как можно ближе к железу (драйвера кто пишет?... они...).

Наиболее общие и эффективные технологии оптимальной работы с памятью?

И... Интересные (полезные иногда) частные?
rGlory
Expert
5958/6048 ответов
23 года на iXBT, с марта 2001
50 фото на iXBT.photo
Чаще пишет Р Р† "Программирование" (97%)
США, Philadelphia, PA
Инфо Ответить
rGlory Expert
7 лет назад / 12 сентября 2017 21:15
PRODIGY
есть исходник, который классно демонстирует логику работы с шиной SMBus.
Какое отношение это имеет к теме топика?
Ваш ответ:

Нет значка Нет значка Р’РѕС‚ тут! Лампочка Восклицание Р’РѕРїСЂРѕСЃ Класс! Улыбка Злость Огорчение РџРѕРіРѕРІРѕСЂРёРј? Краснею Подмигивание Ругаю РћРґРѕР±СЂСЏСЋBIUdelSxsupxsuboffsp spoilerqurlimgvideo• list1. list1 codeprecenter-hr-rusQWE→ЙЦУ
файлыочистить
Ваше имя: Авторизуйтесь Предпросмотр В полную форму
вставить выделенную цитату в окно ответа
Если Вы считаете это сообщение ценным для дискуссии (не обязательно с ним соглашаться), Вы можете поблагодарить его автора, а также перечислить ему на счет некоторую сумму со своего баланса (при отзыве благодарности перечисленная сумма не будет вам возвращена).
Также вы можете оценить сообщение как неудачное.
В течение суток можно 20 раз оценить сообщения разных участников (купите Premium-аккаунт, либо оплачивайте оценки сверх лимита).
Если Вы считаете это сообщение ценным для дискуссии (не обязательно с ним соглашаться), Вы можете поблагодарить его автора, а также перечислить ему на счет некоторую сумму со своего баланса (при отзыве благодарности перечисленная сумма не будет вам возвращена).
Также вы можете оценить сообщение как неудачное.
В течение суток можно 20 раз оценить сообщения разных участников (купите Premium-аккаунт, либо оплачивайте оценки сверх лимита).
Страницы:Кликните, чтобы указать произвольную страницуназад12
Последние обсуждения в Конференции
23:40Виски (ранее: Сорта шотландского виски. Личные впечатления. Просьба дополнять и задавать вопросы.) Кулинария
23:40Adobe Premiere Pro - удобный редактор видео. Видеозахват
23:39Посвящается Alexij_Niconow. Кто таков и с чем его едят? Флуд
23:39Vision Pro - VR гарнитура от Apple MacLife
23:39Отечественные сериалы: обсуждаем, отслеживаем премьеры РљРёРЅРѕ
23:39Будет ли война России с Украиной? Политика
23:39Intel Atom и "все все все" Тех. поддержка
23:39Как вы относитесь к обязательной платной диагностике в мастерских?! Рынок
23:38Иммиграция. Как выжить за рубежом? Общий
23:36Расскажите кстати анекдот (только ржачный, не про Вовочку и не про Штирлица) Юмор
23:33iXBT.photo в 2025-м году планируется закрыть. Просим перенести все свои фотографии на другие ресурсы как можно раньше (ранее: мелкие советы и предложения по улучшению фотогалереи) iXBT.com
23:31HP ProLiant MicroServer: почти готовое решение для домашнего сервера РќРђРЎ
23:30S.T.A.L.K.E.R. 2 - теперь официально Игры
23:29Выбор эллиптического тренажера. РЎРїРѕСЂС‚
23:27AMD vs Intel: что лучше? Тестируем, сравниваем. Приветствуется технический анализ. Процессоры
23:26Телевизоры TCL - информация и опыт использования ДК TV
23:24Всё о сабвуферах ДК аудио
23:19ИИ - осознание себя? ИИ
23:18Строительство частного дома. Из чего , почем, где и зачем ? Ремонт
23:14Выбор качественного сетевого фильтра с базовым функционалом РљРѕСЂРїСѓСЃР°, БП
Последние темы без ответов
вчераBattlefield 2042 drweb Игры
вчераМышь лагает и плавает при запуске любого приложения Тех. поддержка
вчераLLM Qwen – возможности, опыт использования, ограничения ИИ
вчераНе могу прошить UUID на материнской плате ASRock H55M-LE ни с помощью amidedos ни ее версии под Windows - осталось только слить дамп биоса, редактировать в HEX-редакторе и шить обратно? Тех. поддержка
2 дня[Решено] Установил и успешно запустил пакет motion под OpenWRT, но не могу зайти на его админку и получить видеопоток с помощью VLC-плеера Unix
2 дняDenon dcd-3000 ремонт Стерео
4 дняThecus 4560/2520 поиск прошивки. РќРђРЎ
4 дняИИ-агенты - что, зачем, как... ИИ
давноКуплю мини/микро ATX компьютер KOMOK
давноCounter-Strike экранизация РљРёРЅРѕ
23:31Renault может вернуться в Россию, но свой завод, на котором сейчас выпускают «Москвичи», точно не получит
23:29Ключевой модуль лунной станции Gateway готовится к финальному путешествию через Атлантику перед стартом к Луне
23:22Космический аппарат Tianwen-2 прибыл на космодром Сичан для подготовки ко встрече с астероидом и кометой
23:06iPhone 16E оказался не только дороже, чем ожидалось, но и слабее. Его GPU урезан относительно iPhone 16
23:03Физики научились «видеть» движение электронов в молекулах
22:40Сингапурские учёные синтезировали сверхпрочный материал, который в восемь раз превзошёл прочность графена
22:35GeForce RTX 5070 и RTX 5060 тоже не будут доступны с нормальными ценами? У Nvidia какие-то проблемы с чипами, и массовое производство сдвигается
22:34«Пользы от нее очень мало». Илон Маск заявил о бесполезности Международной космической станции и позвал на Марс
22:32Астрономы обнаружили древние «пушистые звёздные ясли», меняющие теорию формирования звёзд
22:25В шаровом скоплении NGC 6093 обнаружен уникальный двойной пульсар с необычной орбитой
20+ лет назад в этот день обсуждали
2002Требуется максимально устойчивая связь Дом.интернет
2003Не перекачиваются фотки с Nikon Coolpix 4500 Фото
2003Нельзя загрузить с NTFS, если он второй primary OРЎ Рё СЃРёСЃС‚. РџРћ
2003AverMedia TVPhone и аналоговая камера Видеозахват
2003Ребят,а помогите выбрать серверный Big-Tower с хорошим охалждением винтов РљРѕСЂРїСѓСЃР°, БП
2003Навигация в новостях iXBT iXBT.com
2004Можно ли инфу спасти после проделок "Partition Magic"? Посмотрите фотку Накопители
2004Canon i250 глюк которій не проходит по гарантии. Периферия
2004Как навеки спарить КПК и два (или более) PC через один USB-Bluetooth донгл? Планшеты
2005не пойму пример составления балансового отчета Общий