Немного ночного лампового бреда.

Не, ну реально - как сделать хранилище программ и данных на ламповом компьютере?

ТЗ:

На технологиях известных в 60-е годы разработать и собрать два блока памяти со следующими техническими характеристиками:



Для хранения программ. Объем 400кбит, со словом в 4 бит. Итого 100к инструкций. Доступ - последовательный; по смещению (для организации циклов).

Для хранения данных. Объем 30кбайт. Доступ - последовательный.



Среднее время доступа к следующей ячейке 5мкс.



Первый вариант - тонна ферритовой памяти.

Доступ - рандомный, вырождается до последовательного или по смещению на раз. Время доступа к любой ячейке - единицы микросекунд.

Но вот с объемом - беда. Общее число ячеек - 640тысяч штук. Если брать распространенные советские матрицы памяти 16х16, потребуется 2.5 тысячи штук! Если брать интегральными кубами то немного меньше - "всего лишь" 156. На ebay столько нет...



Второй вариант - диски, ленты, барабаны и прочее. Объемы запредельные. Технология магнитной ленты известна в 60-х годах, но ничто не мешает мне использовать современные материалы и технологии считывания.

Да и на магнитную ленту записать мегабайты информации - раз плюнуть. Проблема - время доступа. Единицы микросекунд даже сейчас, с пластины HDD получить нетривиально. Но на жестких дисках есть кэш.

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

Но тут уже вопрос - а как собственно данные то хранить? Магнитный барабан? или может быть лента?



Магнитный барабан - вращаем со скоростью 100об/сек. на один оборот - 1000 инструкций. кэш - 1000 инструкций. делаем оборот - записали в кэш. также записали в кэш предыдущее и следующее кольца. Все. разница в скорости доступа 1:1000 даст нам идеальную картину - как только мы переходим в следующее кольцо (а оно уже есть в кэше с минимальным временем доступа), новое кольцо тут же подгружается в кэш.



Лента. С лентой легко в последовательный доступ. Но проблематично с доступом к следующей ячейке. Кэш тут особо не засунешь. С ленты хорошо будет программу считывать в основную память (я помню про перфоленту)...



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