Рис. 15. Модуль ядра процессора.
Декодирование осуществляется с точностью до наоборот: если при делении кодового слова С на полином G декодер внезапно получает остаток, то он может рапортовать наверх об ошибке. Соответственно, если кодовое слово разделилось нацело, его передача завершилась успешно.
В качестве ПЗУ для хранения программы, выполняемой процессорным блоком, предлагается использовать электрически стираемую перепрограммируемую флэш-память (EPROM) объемом 128 Мегабайт
Флэш-память - особый вид энергонезависимой, перезаписываемой полупроводниковой памяти. Рассмотрим подробнее: энергонезависимая - не требующая дополнительной энергии для хранения данных (энергия требуется только для записи), перезаписываемая - допускающая изменение (перезапись) хранимых в ней данных и полупроводниковая (твердотельная) то есть не содержащая механически движущихся частей (как обычные жёсткие диски или CD), построенная на основе интегральных микросхем (IC-Chip).
В отличие от многих других типов полупроводниковой памяти, ячейка флэш-памяти не содержит конденсаторов - типичная ячейка флэш-памяти состоит всего-навсего из одного транзистора особой архитектуры. Ячейка флэш - памяти прекрасно масштабируется, что достигается не только благодаря успехам в миниатюризации размеров транзисторов, но и благодаря конструктивным находкам, позволяющим в одной ячейке флэш-памяти хранить несколько бит информации. Флэш-память исторически происходит от ROM (Read Only Memory) памяти, и функционирует подобно RAM (Random Access Memory). Данные флэш хранит в ячейках памяти, похожих на ячейки в DRAM, но в отличие от DRAM, при отключении питания данные из флэш-памяти не пропадают. Не смотря на такие отличительные способности Flash-памяти, замены памяти SRAM и DRAM флэш-памятью не происходит из-за двух особенностей флэш - памяти: флэш работает существенно медленнее и имеет ограничение по количеству циклов перезаписи (от 10.000 до 1.000.000 для разных типов) [14].
Для взаимосвязи модуля ядра процессора с модулем периферийных устройств предлагается использовать соответствующий интерфейс.
Модуль периферийных устройств предлагается сформировать из следующих элементов: 2 Мегабайта резервной ОЗУ (SAVED RAM), которая сохраняет данные вовремя отключения питания; 128 Мегабайт электрически перепрограммируемой памяти, которая содержит данные по работе с шиной ARINC в течение одного месяца; 128 Кбайт электрически стираемой перепрограммируемой постоянной памяти (EEPROM), для хранения программы встроенного контроля процессорного модуля Ш * интерфейс внутренней шины, который обеспечивает взаимосвязь карты с
другими модулями блока ATSU и самолетными системами; интерфейс контрольного сигнала блока питания, который связывает мо-
дуль источника питания выходом процессорного блока.
Программируемая логическая интегральная схема, которая управляет
сигналами прерываний, управляет двумя внутренними таймерами, управляет последовательным каналом RS232, контролирует таймеры и работу микропроцессора, а также управляет доступами к синхронно-динамической памяти и электрически перепрограммируемой памяти, управляет интерфейсом внутренней шины и обеспечивает взаимосвязь с блоком питания.
Предлагаемая схема реализации модуля периферийных устройств приведена на (рис. 16).

Рис. 16. Модуль периферийных устройств.
В качестве программируемой логической интегральной схемы предлагается применить ПЛИС (FPGA) производства компании ACTEL.
Классические FPGA, основанные на SRAM-технологии, имеют в своем составе быстродействующие блоки памяти, но при включении питания эти микросхемы нужно инициализировать, так как данные о конфигурации находятся в специальных ячейках конфигурации, выполненных по технологии статической памяти. Основным достоинством классических FPGA является то, что при проведении разработки и в процессе отладки у разработчика имеется возможность многократно загружать проект в микросхему и проверять результаты своей работы непосредственно на «живом» изделии. При этом стоимость отладки любого этапа проекта невелика. Недостатком работы классических FPGA является сама система загрузки данных в микросхему. Во-первых, для работы таких FPGA необходимо внешнее устройство, в котором хранится файл инициализации. Во-вторых, информация, загружаемая в FPGA, может быть скопирована и использована для получения пиратских копий разрабатываемого изделия. Защититься от такого копирования принципиально невозможно, поскольку
информация о конфигурации передается от одной микросхемы к другой через внешние выводы микросхем по линиям связи, расположенным на печатной плате. Есть и еще один существенный недостаток у классических FPGA, правда, он не так часто бросается в глаза.
Во время работы, особенно в такой аппаратуре, которая работает в долговременном непрерывном режиме без перезагрузки, могут происходить частичные сбои конфигурации. Определить такой сбой не всегда возможно. Исправить частичные сбои конфигурации можно только полной перезагрузкой конфигурации, так как частичная загрузка конфигурации в классических FPGA невозможна [15].
Для хранения данных ARINC наиболее подходит NAND – память.
На сегодня существует масса устройств, где используются микросхемы
NAND Flash, в том числе и в различных носителях информации, таких как SSD накопители, USB Flash, различные Flash card (ММС, RS-MMC, MMCmicro, SD, miniSD, MicroSD, SDHC, CF, xD, SmartMedia, Memory Stick и т. д.)
Принципиально носители информации на NAND Flash из себя представляют микроконтроллер, который обеспечивает работу с микросхемами памяти, а также работу с различными устройствами по заданному стандартами интерфейсу. В большинстве устройств это выглядит как небольшая плата, на которой размещены одна или несколько микросхем NAND Flash памяти в конструктивном исполнении TSOP-48, short TSOP-48 или TLGA-52 и микроконтроллер. Миниатюрные устройства, как правило выполнены в виде одного чипа в который интегрированы как микросхема Nand Flash, так и микроконтроллер.
Основные недостатки NAND Flash памяти - это недостаточно высокая
скорость и не очень большое количество циклов записи, которые способна выдержать микросхема. Для обхода этих проблем, производители контроллеров идут на некоторые ухищрения, такие как организация записи в NAND Flash в несколько потоков, для поднятия быстродействия и организация логических банков разбитых на достаточно крупные блоки и организация сложной системы трансляции.
Для равномерного износа NAND Flash практически во всех контроллерах
организованно разделение адресного пространства на логические банки, которые в свою очередь разделяются на блоки (состоящие из нескольких страниц).
Контроллером ведется учет количества записей в каждый из блоков. Для того чтобы данные пользователя можно было свободно перемещать внутри банка, для этого имеется логическая нумерация блоков т. е. на практике при чтении микросхемы в дамп видим картину что данные пользователя в виде достаточно крупных блоков (16кб - 4Мб) хаотично перемешаны. Порядок работы с пользовательскими данными отражен в трансляторе в виде таблицы в которой указан порядок построения блоков для того чтобы получить упорядоченное логическое пространство.
Для увеличения операций чтения/записи производители контроллеров реализуют функции распараллеливания данных, то есть прямая аналогия с RAID массивом уровня 0 (stripe), только немного более сложная реализация. На практике это выглядит либо в виде внутриблочного распараллеливания (интерлива), на более мелкие подблоки (как правило от 1 байта, до 16Кб), также симметричное распараллеливание (страйп) между физическим банками микросхемы NAND Flash и между несколькими микросхемами.
Стоит понимать, что при таком принципе работы, транслятор накопителя постоянно изменяющаяся таблица, практически при каждой записи в NAND Flash. Исходя из принципа работы с NAND Flash - чтение блока в буфер, внесение изменений и запись блока на место, очевидно, что наиболее опасны для данных являются незавершенные операции записи; например, когда происходит запись измененного транслятора. В результате необдуманного обращения с накопителями: внезапного извлечения их из USB разъема или из разъема кардридера во время записи, чревато разрушением служебных данных, в частности таблицы трансляции.
При разрушение служебных данных, накопитель не может функционировать или в некоторых случаях функционирует неверно. Извлечение данных программными средствами, как правило, не представляется возможным по многим причинам, что оригинальный транслятор отсутствует, либо поврежден, предстоит работа по разбору дампа извлеченного из микросхемы NAND Flash. Многие, наверное, обратили внимание на кажущийся странным размер страниц памяти в NAND Flash. Это объясняется тем, что в каждой странице, кроме данных пользователя имеются служебные данные обычно это представлено в виде 512/16; 2048/64; 4096/128; 4096/208 (существуют и значительно более сложные варианты организации данные/служебка). В служебных данных присутствую различные маркеры (маркер, номера блока в логическом банке; маркер ротации блока; ЕСС; и т. п.). Восстановление пользовательских данных сводится к устранению распараллеливания данных внутри блоков, между банков и между микросхемами памяти для получения цельных блоков. Если есть необходимость, то устраняются внутриблочные ротации, ренумерации и т. п. Дальнейшая задача, состоит в поблочной сборке. Для того чтобы ее осуществить необходимо четко уяснить количество логических банков, количество блоков в каждом логическом банке, количество используемых блоков в каждом банке (задействованы не все) местонахождение маркера в служебных данных, алгоритм нумерации. И только потом производить сбор блоков в конечный файл — образ, из которого можно будет произвести чтение пользовательских данных. В процессе сбора подстерегают подводные камни в виде нескольких блоков-претендентов на одну позицию в конечный файл-образ. После решение данного круга задач, получаем файл-образ с пользовательской информацией.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |


