LINUX.ORG.RU

как обычно на ARM-платформах обеспечивается непрерывное представление 16 битной памяти подключенной к 32 разрядной шине?

 , data-bus,


0

2

при прямом мепинге мы получаем дыры через каждые два байта но в жизни это как то работает. чья это зона ответственности?

★★★★★

что подразумевается под 16 битной памятью? 16 битная шина данных и минимально адресуемый размер 16 бит? ARM вообще как бы по 32 бита только адресовать может.

Harald ★★★★★
()

ну можно в принципе через промежуточные схемы подключать, с регистрами-защёлками и т.д

Вообще о каком типе памяти идёт речь, SRAM или DRAM?

Harald ★★★★★
()
Ответ на: комментарий от Harald

что подразумевается под 16 битной памятью? 16 битная шина данных и минимально адресуемый размер 16 бит?

16-ти битная шина данных.

ARM вообще как бы по 32 бита только адресовать может.

ARM может использовать две соседние ячейки как одну 32-х битную. я пытаюсь выяснить кто отвечает за это преобразование

cvv ★★★★★
() автор топика
Ответ на: комментарий от Harald

Вообще о каком типе памяти идёт речь, SRAM или DRAM?

SRAM

cvv ★★★★★
() автор топика
Ответ на: комментарий от cvv

ARM может использовать две соседние ячейки как одну 32-х битную. я пытаюсь выяснить кто отвечает за это преобразование

прям таки любой ARM или конкретный кристалл от какого-то производителя? Собственно, даже если эта фича не запилена в кристалле, её можно реализовать во внешней обвязке, чтоб на каждый строб чтения/записи схема выдавала два импульса микросхеме памяти с выставлением одного бита на шине адреса микросхемы и сохранением первых 16 бит в регистре-защёлке

Harald ★★★★★
()
Ответ на: комментарий от cvv

тоесть половина линий данных - на подтяжках

т.е. 16 бит шины данных процессора подключены к земле или питанию? Тогда возможно схема рассчитана на хранение только данных во внешней микросхеме, программист должен помнить, что код писать туда нельзя и старшие 16 бит, прочитанные из этого участка адресного пространства всегда выставлены в 0 или 1

Harald ★★★★★
()
Ответ на: комментарий от Harald

прям таки любой ARM или конкретный кристалл от какого-то производителя?

ну общая картина мне не ясна, но кажется все чипы имени TI и Atmel кажется это умеют

cvv ★★★★★
() автор топика
Последнее исправление: cvv (всего исправлений: 1)

В моей железке контроллер умеет и 16 бит и 32. Конфигурится на этапе инита из флеша.

anonymous
()
Ответ на: комментарий от cvv

А когда одна банка, то при инициализации DRAM контроллера выставляется ширина шины

Dark_SavanT ★★★★★
()

Внешняя память подключается к контроллеру внешней памяти, этот контроллер должен поддерживать конкретный тип памяти он за все отвечает, сама памяь отображается в адресном пространстве процессора как непрерывный массив. Инициализируется он загрузчиком - там выставляются параметры - количество банков, row, col, latency. На х86 то же самое - только там на DIMM установлены микросхемы eeprom где прошиты параметры микросхем памяти и калибровочные коэффициенты учитывающие топологию DIMM, по ним код начальной загрузки настраивает контроллер внешней памяти.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.