SIMM & Speccy
(C) JtN/4D/10.03.99
Может я вас разочарую, но схем не будет. И вовсе не из-за то-
го, что мне, как обычно, лень. В принципе, если вы владелец
обычного Пентагона, Скорпиона, или "неоцветненного" (в CP/M ко-
нечно) Профи, то проблем нет. Из всех оставшихся я знаю только
Профи (версии 4 и 5). В них требуется одновременно читать 2 бай-
та из RAM, но и это не так сложно (кому надо пишите).
Теперь немного справочной информации: Микросхемы DRAM органи-
зованы в виде матрицы, строки и столбцы которой выбираются им-
пульсами RAS (Row Access Strobbe) и CAS (Column Access Strobe).
Для сохранения информации к каждой строке матрицы необходимо об-
ращаться с периодом около 3OOmc. В pC сигнал со счетчика, выра-
батываемый каждые 1Smkc, вызывает холостой цикл обращения к па-
мяти для регенерации очередной строки. Микросхемы DRAM имеют ем-
кость до ЧМбит, время доступа 50-25Ohc и организованы по 1 или 4
бита в корпусе. Цифровая часть обозначения микросхемы имеет вид:
NC-T, где N=1,4 - разрядность ячеек, бит; C=64,128,256,000... -
количество ячеек
(64:64К, 000:1М);
Т - время доступа в наносекундах или десятках наносекунд.
Микросхемы могут упаковываться в DIPkopnyca, устанавливаемые в
кроватки; собираться в модули SIPP (Single InLine Pin Package) и
SIMM (Single InLine Memory Module), устанавливаемые в специаль-
ные гнезда. SIPP модули имеют 30 штырьковых выводов, SIMM 30 или
72 печатных вывода. SIPP - редко используемые, совпадают по раз-
водке со стандартными SIMM ЗOpin.
Подключение. Если у вас обычный Спектрум без всяких цветных
(расширенных) режимов, то есть вам не надо в один и тот же мо-
мент времени читать более одного байта из памяти, то подключение
сводится к установке одного регистра или буфера (кому как удоб-
ней) и регенерации 10 и возможно 11 бита - дополнительных строк
модулей (SIMM'ы имеют строк в 2 (а некоторые в 4) раза больше,
чем РУ7 и следовательно их нужно регенерировать). Но в принципе,
если сигналы MA8, MA9 кинуть на "землю", то можно обойтись без
регенерации, при этом потеряв значительную часть памяти. Пара
советов: т.к. во всех Спектрумах память регенерируется видео-
контроллером (ВК), то сигналы регенерации следует искать там.
Найдите сигналы ВК, которые подаются через мультиплексоры на
МАО-МА7 во время, когда /RAS=0 - т.е. активен. Эти сигналы в ре-
генерации не участвуют, следовательно их можно задействовать,
выбрав из них тот, частота которого больше (в Профи Это DA11, в
Скорпионе (возможно!) ARF) - назовем его DAr. Далее отрезаем его
и вешаем на "землю" вход мультиплексора, также найдите сигнал
адресной шины процессора (обзовем его Ar), соответствующий DAr и
отрежьте от мультиплексора - этот бит (вход мультиплексора) уве-
личит память в 2 раза, т.е. его нужно повесить на какой-нибудь
порт. Оставшиеся сигналы: Ar и DAr нужно повесить на собственный
мультиплексор (см. рис.1), с которого будем иметь еще один бит
расширения памяти. Таким образом, прорегенерировав один бит мо-
дуля вы учетверите его емкость! Ну и наконец еще одна проблема.
Она заключается в том, что SIMM'ы не имеют раздельных входов и
выходов данных, а в большинстве Спектрумов они раздельны, т.е.
для чтения из памяти используется внутренняя шина, с которой
данные кидаются через регистры на видео или шину процессора
(CPUmemREG). Но и тут не все так плохо, просто ставим регистр
наоборот, относительно CPUmemREG, который будет открываться во
время записи в память (см. рис.2). Если у кого-то возникли сом-
нения по работоспособности - скажу, что у меня все это неплохо
работает уже несколько месяцев. Замечание: во время подключения
Simm ЗOpin выяснилось, что его сигнал CAS инверсный, то есть ес-
ли подключаете Simm 72pin, то CAS вешаете на CAS, а если ЗOpin,
то сначала не забудьте его проинвертировать. Теперь поключайте
Simm и работайте с версией DOSa by Reanimator (4.12F).
Приложение.
Рис.1
┌──┬────┬─┐
GND──6┤A0│ │ │7
DAr──5┤A1│ │A├──MA8
EXb──4┤A2│ │ │
Ar──3┤A3│КП12│ │ MA9 --> SIMM
GND──1┤0E│ │ │ CPU - active when
├──┤ │ │ CPU have access to
14│SE│ │ │ memory
/RAS───┤0 │ │ │ EXb -> Extended port
CPU──2┤1 │ │ │ DAr, Ar - see above
└──┴────┴─┘
Рис.2
2┌────┬────┬────┐14 ┌──┬──┬──┐
DB──┤ DC │ │ D ├──DB'┌ ┤ 0│RG│0 ├ ┐
├────┤DRAM├────┤ │ ┤ 1│ │1 ├ │
┌ ┤ A0 │ │ │ │ ┤ 2│ │2 ├ │
│ ┤ A1 │ │ │ DB│ ┤ 3│ И│3 ├ │DB'
│ ┤ A2 │ │ │ │ ┤ 4│ Р│4 ├ │
MA│ ┤ A3 │ 565│ │ │ ┤ 5│ 2│5 ├ │
│ ┤ A4 │ РУ7│ │ │ ┤ 6│ 2│6 ├ │
│ ┤ A5 │ │ │ └ ┤ 7│ │7 ├ ┘
│ ┤ A6 │ │ │ 9├──┤ ├──┤
│ ┤ A7 │ │ │ +5В──┤ C│ │ │
└ ┤ A8 │ │ │ 1│ │ │ │
├────┤ │ │ WE──┤0E│ │ │
RAS─┤/RAS│ │ │ └──┴──┴──┘
├────┤ │ │
CAS─┤/CAS│ │ │
├────┤ │ │
WE─┤/WE │ │ │
└────┴────┴────┘
DB - CPU DATA BUS.
DB'- SUB DATA BUS - внутр. шина памяти.
Таблица 1.
Организация модулей SIMM.
┌───────┬────────────────┬───────────────┐
│Емкость│ С паритетом │Без паритета │
│ ├────────┬───────┼──────┬────────┤
│ BYTE │ ЗOpin │ 72pin │ЗOpin │ 72pin │
├───────┼────────┼───────┼──────┼────────┤
│ 256K │ 256K*9 │ - │256K*8│ - │
│ 1M │ 1M*9 │256K*36│ 1M*8 │ 256K*32│
│ 2M │ - │512K*36│ - │ 512K*32│
│ 4M │ 4M*9 │ 1M*36 │ 4M*8 │ 1M*32 │
│ 8M │ - │ 2M*36 │ - │ 1M*32 │
│ 16M │ - │ 4M*36 │ - │ 4M*32 │
│ 32M │ - │ 8M*36 │ - │ 8M*32 │
│ 64M │ - │ 16M*36│ - │ 16M*32 │
└───────┴────────┴───────┴──────┴────────┘
Таблица 2.
Назначение выводов модулей SIMM ЗOpin.
┌────┬─────┬─────┬────┬─────┬─────────┐
│Pin │ STD │ IBM │Pin │ STD │ IBM │
├────┼─────┼─────┤────┼─────┼─────────┤
│ 1 │ +5В │ +5В │ 16 │ DBЧ │ DBЧ │
│ 2 │ CAS │ CAS │ 17 │ MA8 │ MA8 │
│ 3 │ DBO │ DBO │ 18 │ MA9 │ MA9 │
│ 4 │ MAO │ MAO │ 19 │ MA10│ RAS1 │
│ 5 │ MA1 │ MA1 │ 20 │ DBS │ DBS │
│ 6 │ DB1 │ DB1 │ 21 │ WE │ WE │
│ 7 │ MA2 │ MA2 │ 22 │ GND │ GND │
│ 8 │ МАЗ │ МАЗ │ 23 │ DBб │ DBб │
│ 9 │ GND │ GND │ 24 │ N.C.│ PrD │
│ │ │ │ │ │ (GND) │
│ 10 │ DB2 │ DB2 │ 25 │ DB7 │ DB7 │
│ 11 │ МАЧ │ МАЧ │ 26 │ DB8 │ PrD │
│ │ │ │ │ Out │ (1M=GND)│
│ 12 │ MAS │ MAS │ 27 │ RAS │ RAS │
│ 13 │ DBЗ │ DBЗ │ 28 │ CAS │ N.C. │
│ │ │ │ │Parity │
│ 14 │ MAб │ MAб │ 29 │ DB8 │ DB8 │
│ │ │ │ │ In │ In/Out │
│ 15 │ MA7 │ MA7 │ 30 │ +5В │ +5В │
└────┴─────┴─────┴────┴─────┴─────────┘
STD - стандартный SIMM (SIPP)
IBM - SIMM фирмы IBM
Таблица 3.
Назначение выводов модулей SIMM 72pin.
┌────┬──────┬────┬──────┬────┬──────┐
│Pin │ Name │Pin │ Name │Pin │ Name │
├────┼──────┼────┼──────┼────┼──────┤
│ 1 │ GND │ 25 │ DB22 │ 49 │ DB8 │
│ 2 │ DBO │ 26 │ DB7 │ 50 │ DB24 │
│ 3 │ DB16 │ 27 │ DB23 │ 51 │ DB9 │
│ 4 │ DB1 │ 28 │ MA7 │ 52 │ DB25 │
│ 5 │ DB17 │ 29 │ BSO │ 53 │ DB10 │
│ 6 │ DB2 │ 30 │ +5В │ 54 │ DB26 │
│ 7 │ DB18 │ 31 │ MA8 │ 55 │ DB11 │
│ 8 │ DBЗ │ 32 │ MA9 │ 56 │ DB27 │
│ 9 │ DB19 │ 33 │ RASЗ │ 57 │ DB12 │
│ 10 │ +5В │ 34 │ RAS2 │ 58 │ DB28 │
│ 11 │ CASp │ 35 │ DP2 │ 59 │ +5В │
│ 12 │ MAO │ 36 │ DPO │ 60 │ DB29 │
│ 13 │ MA1 │ 37 │ DP1 │ 61 │ DB13 │
│ 14 │ MA2 │ 38 │ DPЗ │ 62 │ DBЗO │
│ 15 │ МАЗ │ 39 │ GND │ 63 │ DB14 │
│ 16 │ МАЧ │ 40 │ CASO │ 64 │ DBЗ1 │
│ 17 │ MAS │ 41 │ CAS2 │ 65 │ DB15 │
│ 18 │ MAб │ 42 │ CASЗ │ 66 │ BS2 │
│ 19 │ Rsv. │ 43 │ CAS1 │ 67 │ PDO │
│ 20 │ DBЧ │ 44 │ RASO │ 68 │ PD1 │
│ 21 │ DB20 │ 45 │ RAS1 │ 69 │ PD2 │
│ 22 │ DBS │ 46 │ BS1 │ 70 │ PDЗ │
│ 23 │ DB21 │ 47 │ WE │ 71 │ BSЗ │
│ 24 │ DBб │ 48 │ Rsv. │ 72 │ GND │
└────┴──────┴────┴──────┴────┴──────┘
Обозначения:
PD - Presence Detect - индентификатор
наличия и типа.
N.C.- No Connection - свободный вывод.
DBi - биты данных.
DB8 - бит паритета для SIMMЗO.
DPi - бит паритета i-го байта.
MA - мультиплексированный адрес.
RAS, CAS - стробы выборки строки и столб-
ца соответсвенно.
WE - запись.
BS - выборка блока.
Rsv - Reserved.
В статье использованы материалы из книги М.Гука "Аппаратные
средства IBM PC", издательство "Питер Пресс", 1996.
Other articles: