Техника

Вопрос о кольцевой памяти.

Существовал такой вид оперативной памяти. Сначала делался на линиях задержки, потом - на длинных сдвиговых регистрах. Данные там движутся по кругу, в кольце. Сегодня пытался осмыслить как это работало, и пришел к мысли, что невозможно различить где начало данных, а где их конец, и непонятно как делать выборку. Но как-то оно работало, и очень интересно - как?
Ирина Семенова
Ирина Семенова
72 041
У программируемого микрокалькулятора Б3-21 был кольцевой стек. При последующем развитии (Б3-34, МК-56) от него отказались.
А работало - очень просто, числа из операционного регистра специальной командой последовательно заносилось в круговой стек и «программист» должен был помнить (держать в голове) в какой последовательности эти числа туда были загружены. Это позволяло, по сравнению со стеком FIFO (First Input First Output на Б3-34), в ряде случаев сэкономить пару-тройку команд и регистров весьма ограниченных программной и регистровой памятЕй.
Аня Левакова
Аня Левакова
69 535
Лучший ответ
У одного бита нет "начала" или "конца", у него есть только "наличие" или "отсутствие". А в ферритовой памяти каждое колечко - это лишь один бит. Считывание происходит поочередно из целого ряда колечек, и так набирается многоразрядное число.
Сергей Семёнов
Сергей Семёнов
83 382
Предполагаю, что был некий маркерный байт. Гуглить лень :)
Когда у нас была машина Минск-32 и память на кольцах я тоже ломал голову, но прошло 45 лет и голова больше не болит по этому поводу.
Вывод - время лечит
Оксана Фурсикова память на ферритовых кольцах или кольцевая память (память с последовательным доступом)? В Минске память на ферритах с произвольным доступом.
"невозможно различить где начало данных" - для этого есть счетчик адреса.
" непонятно как делать выборку" - ждать когда подойдет нужный байт. Поэтому при первой же возможности перешли на произвольный доступ - трубки Вильямса и ферритовую память.
"как это работало" - а так же как и на линиях задержки, магнитных барабанах и кассетах для Спектрума и Радио-86РК. Все это называется памятью с последовательным доступом.
Я не спец, но насколько я понимаю, "кольцо" делится на кластеры, у каждого из которых есть свой "адрес" следовательно компьютеру не составит труда отличить кластер -- 00000001, от кластера 00000002 и так далее по возрастающей
Гришина Елена
Гришина Елена
96 380
Начало данных может быть 00, FF, АА, 55 и т. д. В принципе любой заранее оговоренный байт или группа байтов.
А никуда этот тип памяти и не делся..
Елена Немо
Елена Немо
38 331
Вячеслав Продан где применяется? Именно на регистрах сдвига.. т. е. с последовательным доступом?
В линиях задержки - синхроимпульс. (начиная с локаторов, откуда скорее всего и пошла байка про ртутные антены ). Сдвиговый регистр - по счетчику сидящему на общем тактовом генераторе и сигнале сброс. (это из самого простого, но было и по маркеру)
Да, кольцевые буферы используются и сейчас. Выход прост: например, в навигационных сообщениях точкой 'начала' является метка времени, с неё происходит синхронизация парсера. Эта (метка времени) такая группа бит, которая принимает определённое фиксированное значение, заданное в интерфейсном контрольном документе. Меняют метку времени очень редко и задают несимметрично — прочитать 'задом наперёд' её не получится, равно как и спутать с чем-либо ещё. Кроме того, из-за периодической структуры навигационного сообщения она сама периодически повторяется во времени.