Страница 2 из 3
Несколько вопросов по Dec AlphaPC 164lx
Добавлено: 13.10.2025,19:31
avalon-samara
Есть AlphaPC 164LX Motherboard Technical Reference Manual под авторством уже Compaq.
На странице 2-10 написано:
"The AlphaPC 164LX uses BA1 as both BA1 and ADDR12. Therefore, four-bank DIMMs using ADDR<11:0> are the maximum size. (Two-bank DIMMs can use ADDR<12:0>"
То есть, там прямым текстом не написано, что линии М12-14 обрезаны, но зато понятно, что ВА1 используется как линия ADDR12, получается комбинированный сигнал - общий для выбора банка и строки. А раз так, то отдельная линия МА12 физически отсутствует. В результате доступен только диапазон адресов, где старшие три бита (12-14) всегда равны нулю и, таки образом, охватывается максимум 512 мб ОЗУ.
Получается, на DIMM слотах есть только линии ADDR0-ADDR11, вместо ADDR12 - BA1.
Несколько вопросов по Dec AlphaPC 164lx
Добавлено: 13.10.2025,19:35
avalon-samara
ikle писал(а): 13.10.2025,18:27
P.S. А проводок кинуть если от Pyxis до слотов? )
С трудом это представляю, ведь сделать на практике синхронные высокочастотные адресные линии едва возможно.
Да и DEC 21174 в корпусе BGA, а не DIP.
Несколько вопросов по Dec AlphaPC 164lx
Добавлено: 13.10.2025,19:41
ikle
avalon-samara писал(а): 13.10.2025,19:31
four-bank DIMMs using ADDR<11:0> are the maximum size.
12×2 + 2 = 26 линий адреса после демультиплексирования: одна планка может быть размером в 2²⁹ = 512MB.
avalon-samara писал(а): 13.10.2025,19:31
Two-bank DIMMs can use ADDR<12:0>"
13×2 + 1 = 27 линий адреса после демультиплексирования: одна планка может быть размером в 2³⁰ = 1GB.
Банк тут — это логически доступное устройство
внутри чипа.
Несколько вопросов по Dec AlphaPC 164lx
Добавлено: 13.10.2025,20:14
ikle
ikle писал(а): 14.08.2025,11:45
Если что, обычные модули без ECC должны без проблем работать с 21174.
Pyxis то умеет без ECC работать, а вот SRM — нет (как минимум в той версии, что у меня): пищит при вставке 64-bit модулей одинаковыми парами, что по 128MB, что по 256MB (и скорее это даже ещё не SRM, а первоначальный SROM загрузчик). Из парных 72-bit у меня только 64MB:
Код: Выделить всё
Digital AlphaPC 164LX 599 MHz Console V5.3-3, Sep 24 1998 14:02:11
...
>>>show memory
128 MBytes of system memory
Bank # Size Base Addr
------ ---------- ---------
0 128 MB 000000000
Total Bad Pages = 0
Total Good Memory = 128 MBytes
Bcache Size = 2 MB
>>>
Причём, если вставить 256MB планки без ECC во вторые слоты, а в первые заведомо рабочие 64MB с ECC, то машина тихо игнорирует 256MB модули. А вот если вторые два — 64-bit 128MB модули — так же пищит.
Так что вопрос остаётся открытым.
P.S. На счёт ECC: В TRM не документированы джамперы CF4 — CF6 — есть шанс, что можно ими отрезать ECC.
Несколько вопросов по Dec AlphaPC 164lx
Добавлено: 13.10.2025,20:48
avalon-samara
Но ведь BA1 уже выполняет роль ADDR12, то есть ADDR12 не доступна для адресации памяти.
Далее, демультиплексирование не добавляет реальных линий адреса, она просто распределяет существующие сигналы на банки и столбцы/строки.
Мне кажется, главная ошибка в том, что мы игнорируем тот факт, что ВА1 перекрывает ADR12.
Несколько вопросов по Dec AlphaPC 164lx
Добавлено: 13.10.2025,20:59
avalon-samara
avalon-samara писал(а): 13.10.2025,20:48
P.S. На счёт ECC: В TRM не документированы джамперы CF4 — CF6 — есть шанс, что можно ими отрезать ECC.
Я сейчас подумал, что отрезать ЕСС вполне реально, но линии данных ЕСС все равно будут физически задействованы?
Несколько вопросов по Dec AlphaPC 164lx
Добавлено: 13.10.2025,21:35
ikle
avalon-samara писал(а): 13.10.2025,20:48
Но ведь BA1 уже выполняет роль ADDR12, то есть ADDR12 не доступна для адресации памяти.
И чего, что BA1 и A12 висят на одной линии? Перечитайте то, что вы сами процитировали: 4-хбанковые модули (использующие BA0 и BA1) могут использовать только A0...A11 (то есть не могут использовать A12), а 2-хбанковые (использующие только BA0) могут использовать A0...A12.
avalon-samara писал(а): 13.10.2025,20:48
Далее, демультиплексирование не добавляет реальных линий адреса, она просто распределяет существующие сигналы на банки и столбцы/строки.
Чего? Если у нас n адресных линий, то мы можем в максимуме использовать n адресных линий для задания как строки, так и столбца: то есть в максимуме 2n адресных сигналов для ячейки внутри банка. Адресация банков параллельна.
avalon-samara писал(а): 13.10.2025,20:59
Я сейчас подумал, что отрезать ЕСС вполне реально, но линии данных ЕСС все равно будут физически задействованы?
Сигналы на них будут просто игнорироваться. Причём, скорее всего, только при чтении. Работа с ECC или без — это проблема лишь настройки Pyxis. Pyxis TRM (EC–R12GC–TE), 1.1 21174 Features:
- Quadword ECC support, longword parity, or no parity on system and memory data buses
Там же, 2.2.2 Error Checking and Correction:
The 21174 operates in one of two software selectable modes — ECC or PCA56 longword parity. Use PYXIS_CTRL[ECC_CHK_EN] to enable ECC checking or use PYXIS_CTRL1[LW_PAR_MODE] to enable PCA56 longword parity mode.
Initialization firmware must check the memory banks and the 21164 to determine whether parity or ECC bits are present in the memory and whether the 21164 will support ECC. The firmware then establishes the state of the error checking and error code generation based on this criteria. If the memory does not provide ECC/parity bits, then all memory error checking should be turned off.
— Последние два предложения говорят, что это чисто проблема FW, может система работать без ECC или нет.
avalon-samara писал(а): 13.10.2025,19:35
С трудом это представляю, ведь сделать на практике синхронные высокочастотные адресные линии едва возможно.
Во-первых, закрывающая скобочка в конце моего вопроса — это безглазый смайлик, отмечающий ироничность фразы. Во-вторых, а где вы тут увидели «высокочастотные линии»? Тут SDR и 66 MHz — период 15 нс, а, насколько я помню, дорожка на FR4 в два сантиметра даёт задержку что-то около 3 нс — так что проводок вполне реален (а вот то, что там BGA будет проблемой, если контакт на другую сторону не выведен). Но, всё таки, см. первый пункт сего параграфа.
P.S. Вот только Pyxis TRM использует понятие банков не в смысле банков SDRAM-модулей. Последние, насколько я понимаю, он называет суббанками.
Несколько вопросов по Dec AlphaPC 164lx
Добавлено: 13.10.2025,22:02
ikle
ikle писал(а): 13.10.2025,20:14
На счёт ECC: В TRM не документированы джамперы CF4 — CF6
А они зато документированы в ebfw/srom/lx164/srom.s:
Код: Выделить всё
* (conf-6) bit6: Mini-Debugger (0=enabled 1= disabled) [23]
* (conf-5) bit5: BC_Speed<0> [19]
* (conf-4) bit4: BC_Speed<1> [20]
* (conf-3) bit3: PASSWORD Bypass
*
* BC_Speed<1:0> Bcache
* ------------ -------
* 00 Reserved
* 01 Reserved
* 10 Reserved
* 11 9ns (default)
*
— К ECC не имеют никакого отношения.
А вот дальше в этом коде интересности:
Код: Выделить всё
//++
// ===========================================================================
// = srom_size_memory - size the main memory for volume =
// ===========================================================================
//
// OVERVIEW:
//
// This function will size the main memory on an bank per bank basis
//
// FORM OF CALL:
//
// bsr r26,srom_size_memory
//
// ARGUMENTS:
//
// none
//
// RETURNS:
//
// r10 - size mask with total size of configurable memory
// r11 - upper LW is speed of slowest DIMM on memory bus
// lower LW is 1 if all DIMMs have ECC bits, else 0
//
// FUNCTIONAL DESCRIPTION:
//
// This code uses the following definitions and assumptions:
//
// 1. A PC164LX / EV56+PYXIS based board will contain from 1 to
// two populated banks of SDRAM DIMMS. Each bank will
// consist of two DIMMS to create the 128 bit wide memory
// bus.
// 2. Each DIMM is JEDEC JC-42.5-95.164 compliant or better.
// Thus each DIMM will have a JEDEC compliant IIC ROM
// containing full DIMM specification data.
// 3. DIMMS in each bank must be IDENTICAL in almost every
// way. In addition all DIMMS will must meet a minimum
// set of timing specifications determined by reading the
// IIC ROM on each DIMM. SDRAM DIMMS come in many more
// speed variants than older 72 pin SIMMs, and many are too
// slow for EV56 + PYXIS.
// 4. Single, Dual, and Quad bank DIMMS are supported in sizes
// from 16MB up to 256MB using either 16Mbit or 64Mbit SDRAMS.
// 5. PYXIS supports eight total banks, though PC164LX only uses
// two.
//
//
// This function will size the amount of memory in the system by
// reading the IIC ROM for each DIMM. Banks containing mismatched
// DIMMS will cause an error beep code and prevent normal machine
// operation.
//
// A data structure of the following format is built as a
// result of the memory sizing. It represents the DIMM size
// in a given bank. PC164LX has two banks, and PYXIS supports eight.
//
// PC164LX size_mask (DIMMs):
// =========================
// 63 56 55 48
// +--------------+----------------+
// | 8MB | 16MB |
// +--------------+----------------+
//
// 47 40 39 32
// +--------------+----------------+
// | 32MB | 64MB |
// +--------------+----------------+
//
// 31 24 23 16
// +--------------+----------------+
// | 128MB | 256MB |
// +--------------+----------------+
//
// 15 8 7 0
// +--------------+----------------+
// | 512MB | 1GB (!!) |
// +--------------+----------------+
//
// Each bit within the size fields corresponds to a memory dimm size.
// This means that for a particular bank only one bit can be set in a
// particular field:
//
// I.E.
//
// if bank 1 is configured as a set of 128MB DIMMs then
// bit 1 = 0 (it IS NOT a 1GB DIMM)
// bit 9 = 1 (it IS a 512MB DIMM)
// bit 17 = 0 (it IS NOT a 256MB DIMM)
//
...
— Не особо понятное описание, как минимум, два вывода из него можно сделать:
- модули в паре должны иметь практически идентичные SPD;
- 164LX явно должна поддерживать модули в 256MB.
Идём дальше:
Код: Выделить всё
// BCR0-BCR7 - Bank Config Reg
// [0] bank_enable if set
// [4:1] Bank Size
// 1000 2GB ** PYXIS is capable of these configs
// 0000 1GB ** but is not tested or documented.
// 0001 512MB
// 0010 256MB
// 0011 128MB
// 0100 64MB
// 0101 32MB
// 0110 16MB
// 0111 8MB
// [5] Sub Bank Enable
// [6] ROW sel 0=12, 1=14
// [7] 4BANK
— Если я правильно понимаю, то SROM для 164LX поддерживает 256MB планки (и, даже, может теоретически работать с 512MB и 1GB планками).
Ещё на счёт совместимости планок:
Код: Выделить всё
// The following tests are made against each DIMM before it is
// sized. These checks insure electrical compatibility with
// PC164LX & PYXIS, considering the huge range on many of the
// DIMM characteristics.
//
// Any DIMM which does not pass these initial checks will cause
// a fatal error with beep codes, as the whole memory subsystem
// will become unusable.
И далее про ECC:
— Что такое «PC164LX I»? Первая ревизия AlphaPC 164LX?
Несколько вопросов по Dec AlphaPC 164lx
Добавлено: 13.10.2025,22:17
avalon-samara
ikle писал(а): 13.10.2025,21:35
И чего, что BA1 и A12 висят на одной линии? Перечитайте то, что вы сами процитировали: 4-хбанковые модули (использующие BA0 и BA1) могут использовать только A0...A11 (то есть не могут использовать A12), а 2-хбанковые (использующие только BA0) могут использовать A0...A12
Да, Вы правы. Действительно, 2х банковые модули могут использовать А0...А12.
ikle писал(а): 13.10.2025,21:35
Во-первых, закрывающая скобочка в конце моего вопроса — это безглазый смайлик, отмечающий ироничность фразы.
Я так погрузился в этот вопрос, что не заметил)
Теперь я сам немного в замешательстве, очень интересно, чем закончатся Ваши поиски.
Несколько вопросов по Dec AlphaPC 164lx
Добавлено: 13.10.2025,22:33
ikle
Идём дальше:
Код: Выделить всё
// : //check for DIMM pair mismatch on odd slot numbers
// : if ((dimm_slot&1)==1)
// : : if (match_col==col) && (match_row==row)
// : : : //everything checks for DIMM so populate bitmap
// : : : //each dimm is 8 bytes wide
// : : : dimm_size=1<<(col+row+3+sub_bank+SDRAM_4bank)
// : : : mputs("DIMM") mputs(" siz") mputs("e:0x")
// : : : putl dimm_size mputs("MB ")
// : : : //2^27 is largest DIMM supported, set bit corresponding to
// : : : //size of dimm and position of slot. 2^27*8=1GB
// : : : size_mask |= 1<<[((27-row-col)<<3)+(dimm_slot>>1)]
// : : else
// : : : mputs("Error! DIMM Size mismatch slots #")
// : : : putl(dimm_slot-1) mputs(" and #") putl(dimm_slot)
// : : : feature_mask |= 1<<((slot>>1)+56) //put a mismatch flag in
// : : : maybe beep(1,1,3)
// : : end
// : else
// : : match_row=row
// : : match_col=col
// : end
— Тут говорится о поддержке 1GB планок, максимум (2GB на банк, 4GB всего). А ещё оно тут в SROM-порт пишет, что нашло: надо бы адаптер сделать (
говорят, там RS-423).
Connector J29 supports an RS-232 or RS-422 terminal connection to this port by using 1488 and 1489 line driver and receiver components. Additional external logic is not required.
Обычный TTL-UART адаптер нужен, то есть (J29.2 — TX, J29.3 — Gnd, J29.5 — RX).
Несколько вопросов по Dec AlphaPC 164lx
Добавлено: 14.10.2025,00:12
ikle
AlphaPC 164LX Motherboard Product Brief:
И, далее:
Samsung DIMM Part Number List for 164LX Motherboard:
| Density | Part Number | Configuration | # of Banks | Base of Component |
| 16MB | KMM374S203CT-GH/GL | 2M X 72 | (2 Bank) | 16 Mbit |
| 32MB | KMM374S403CT-GH/GL | 4M X 72 | (2 Bank) | 16 Mbit |
| 64MB | KMM374S823BT-GH/GL | 8M X 72 | (4 Bank) | 64 Mbit |
| 128MB | KMM374S1623BT-GH/GL | 16M x 72 | (4 Bank) | 64 Mbit |
| KMM374S1723T-GH/GL | 16M x 72 | (4 Bank) | 128 Mbit |
| 256MB | KMM374S3323T-GH/GL | 32M x 72 | (4 Bank) | 128 Mbit |
— Официально поддерживались 4-банковые 72-битные 256MB модули.
Да и тут есть
статья про 164LX от ТС, в которой говорится:
В моей конфигурации на данный момент установлено четыре модуля по 128 мегабайт каждый, в наличие у меня есть 4 модуля по 256 мегабайт, но с ними возникли проблемы — вся память определяется в SRM, но при прохождении теста памяти в SRM возникают ошибки, также в ОС TRU64 UNIX с этой памятью возникает kernel panic.
Кстати, на фото в этой статье явно буферизованная или регистровая 128MB SDRAM.
Ещё нашлась
статья на Хабре, в которой говорится:
Оперативная память — обычные DIMM SDRAM с ECC, модули без ECC и регистровые модули не поддерживаются.
Отыскать четыре планки по 256 Мбайт не составило больших проблем — 1 Гбайт как раз максимальный поддерживаемый объем памяти.
UPD: Ещё один владелей 164LX подтвердил, что у него стоят и работают две 256MB ECC планки.